edb3123528
- update to version 2025.05 * Add dispatching logic for an HLL override * Add open mode constants * Add a few capabilities for NQP-level dd * Provide better feedback for ambiguous adverb usage * Micro-optimize Match!cursor_init a bit * Allow --repl-mode even with parameters * Make --repl-mode truly leading * Give interactive mode also access to command-line arguments * Add is-interactive to HLL::Compiler (#827) * Set a more sensible repl-mode by default * Verify some sizes in qast compiler mast * Fix missing register initialization in repeat loops * Use a local for a somewhat hot class member access * Use a local variable for a class member access... * Use locals instead of class variables * Use correct typed accessors where able * Ensure we declare our dynamics even when there's no compunit - Update to version 2024.04: * Add "code_of_method" and "declares_method" methods * Add hint back in * Add minimized fastutil jar * Allow --moar-option='--no-optimize' to actually work * Enable the creation of 'is item' and 'is exact-type' param traits * Eradicate .publish_method_cache from MoarVM backend * Further dd tweaks * Initial stab at a "dd" for NQP * Make sure we catch errors in stringification * Manually sort two elements of an array instead of using .subList().sort() * More efficient way to get a long as a string * More tweaking fetching MRO * Oops, we can type the object key * P6str's StorageSpec can be a singleton * Pre-allocate arrays and use bind_pos instead of push * Rename NQPClassHOW's $!mro to $!MRO * Simplify JVM backend's set_size_internal * Simplify runNFA() a little * Slight tweak in fetching MRO * [JVM] Fix capturenamedshash to actually include objects - Apply spec-cleaner. - Set "Source" to GitHub's URL, so the source tarball may be downloaded through the appropriate OBS service. - Use "%{version}" to declare the related MoarVM dependency, rather than hardcoding MoarVM's version. - update to version 2024.02 * Add optional positional parameter to archetypes method * Make unsigned comparison ops available * Add nqp::chown() op * Add comment token to the grammar * Set .node for statements * Make compilation errors more informative * Add support for RakuAST::Origin::Match * Provide access to QAST::Block's cuid counter for RakuAST * Provide current compiler via $*HLL-COMPILER * Fix back-references when there are aliases * Remove unused apply_transcoding compiler function * Remove unused transcode compiler option * Add nqp::syscall, nqp::register, nqp::delegate ops * Introduce nqp::track and nqp::guard * Use nqp::const::HLL_xxx constants instead of magic numbers * Add all SIG_ELEM constants as nqp::const::xx constants * Only add unique types to the typecache * Add support for TWEAK method * Fix issue with multi_methods in NQPParametricRoleHOW * Implement locking on NQP(Class|ConcreteRole)HOW * Make the positional on "method_table" optional * Make the positional on "(is_)array_type" optional * Make the positional on "role_typecheck_list" optional * Make the positional on "mro" optional * Make the positional on "BUILD(ALL)PLAN" optional * Create nqp::const::EDGE_xxx connstants * Remove dead base64 decoding logic * Add nqp::const::MVM_reg_xxx constants * (is_)array_type don't need any positional argument - update to version 2022.07 * Presize $!mbc and write at offsets instead of pushing * Write each frame directly to the MAST bytecode file... * Speed up "sorted_keys" sub - update to version 2022.03 * Remove some not-needed trys, or convert to nqp::can + the method call * Provide op coerce_ns on MoarVM and JVM * Fix all returned native integers getting treated as signed - Fix build on RHEL7 RHEL doesn't include perl's core libraries in its perl package, so we need to explicitly depend on the modules we need for building. - update to version 2022.02 * Introduce a new generalized dispatch mechanism. It results in a more uniform architecture for all kinds of dispatch, delivering better performance on a range of langauge features. For more information see https://6guts.wordpress.com/2021/09/29/the-new-moarvm-dispatch-mechanism-is-here/ * Native unsigned integers are now first class citizens * Give NQPParametricRoleHOW a role_typecheck_list method * Set NQP HLL on all NQP types * Avoid an implicit array stringification in NQP * Avoid a slurp/flatten in NQP object creation * Avoid lots of string box/unbox in hash key sort * Use natives to reduce some allocation hotspots * Fix miscompilation of sized integers as loop condition * Remove the --rxtrace feature * Access register allocator via compiler instance * Switch most $*MAST_FRAME access away from dynamics * Replace costly $*MAST_FRAME lookup with $frame arg in core op generators * Don't error if no typechecking mode set * move lookups of op generators out of repeated code * Use my constant somewhat in QAST compiler * Add mapping for ctxnt op * Avoid duplicate lookups in NFA merging * Fix SpecialArg unintentionally modifying class' MRO * Don't die on non-primitive objects in $!named * More universal fix for dumping QAST nodes with attached data * Implement the -o form of the --output option * Fix race when checking for global uniques (#760) - update to version 2021.08 * Fix several issues on the JVM - update to version 2021.07 * Implement support for moar::hllincludes config variable * Fix reproducible build regression * Wrap QAST::Regex from qbuildsub in QAST::Stmts - update to version 2021.06 * Simplify loop in optimizer's incorporate_inner * Micro-optimize the sift_down sub in sorted_keys * Remove no longer needed JVM workaround - update to version 2021.05 * Use new nqp::time instead of nqp::time_(i|n) * Finish getting rid of NQPCursor * Remove no longer needed $!slang override in Braid * Disallow explicity specifying op write registers * No need to stringify the float twice in the sprintf implementation. * Hoist the repeated calculation in stringify-to-precision2 to a variable. * Accurately calculate pow_n(10.0, $exp) for stringify-to-precision2. * Convert scientific and shortest to use pow10 and an int for $exp. - update to version 2021.03 * Support some missing Rakudo command line flags * Comment out two lines only needed during debugging * Eliminate the ops sec_n, asec_n and sech_h, which are no longer used. - update to version 2021.02 * Switch spawnprocasync to use a separate arg for the program name * Stub some Archetypes methods expected by Rakudo * Don't bind an int attribute to 0 directly after construction * Improve error message for erroneous <.panic()> syntax * Fix sprintf() with *-specified negative width argument * Start up REPL if "-" given *and* STDIN is a tty * Make HLL::Compiler.execute_stage easier to call from Raku * Give NQPClassHOW a submethod_table method for better compatibility * Dump a QAST::Block's name, too for easier debugging * MoarVM: Allow for explicitly marking the mainline_frame in the bytecode * Add a nested compiler's load_dependency_tasks to the outer compiler's * Add frames created by a nested compiler to the outer comp unit * Allow more interesting constants in NQP * Simplify Cursor!cursor_pass * Micro optimize !cursor_fail * Simplify braid initialization in cursor_init * Introduce / use !cursor_pass_quick * Make sure cursor_pass_quick also reset bstack * Tweaks to regex compiler API * Remove reliance in a $*W object in alt NFA gen * NQP_HOME env var should override a static NQP home * map nqp::setthreadname op to give current thread a name * Register a plain HLL::Compiler object under the 'HLL' name * Support for typechecking against Raku roles * Add a HLL::SysConfig class * Add missing debug type name for easier debuggin * Make mixins concurrency safe * Fix parallel compilation occasionally losing frames * Fix "no such attribute" errors on mixin created by concurrent code - update to version 2020.05 * Add nextdispatcherfor/takenextdispatcher ops * More explicit error when more than one --target is provided (issue #600) * Set return type of intifying a list or hash * Optimize code trying to count elems of a list or hash * Use already calculated value instead of nqp::elems * Save a bunch of allocations in MoarVM::StringHeap * Split MoarVM::StringHeap into an inlineable add and slow add-internal * Simplify some Role accessor methods * Remove an unneeded for+push, use list directly * Add more str coercion cases * Write new strings directly into string heap buf * Write bytecode to output file on the fly * Write header last instead of first and fixing up * Fix sqlite3 running out of memory when importing large profiles * Fix profile kind detection * Support anon declarator on NQP subs * Add QAST::Node::dump_indent_string method to produce indent strings * Modify Node dump routines to use new dump_indent_string method * Add guide lines to QAST::Block node dumps * Remove qlist opcode * Some minor optimizations to NQP matching - update to version 2020.02 * Fix for https://github.com/perl6/nqp/issues/559 * Only do assignment if nfa is not in the cache * cache_add returns the value, so no assignment needed * Completely disable NFA debugging (for now) * Don't call non-existent panic method * Consistently make the . in <.[x]> a no-op * Recognize chain as an assoc - update to version 2020.01 * Fix "Decoder may not be used concurrently" errors with concurrent EVAL * Give HLL/Actions|Grammar a "raku" method * Add NQPAttribute.is_built method * Add NQPAttribute.is_bound method * Change references of HLL language to 'Raku' * Remove HLL dependency * Fix various compiler warnings - update to version 2019.11 * Map nqp::vmeventsubscribe to configure VM Event Subscription * Map new nqp::intify op * Provide better compatibility with Perl6 Metamodel * Use nqp::const for socket family constants * First stab at making num use explicit * Type constrain the value passed to (I|N)Val.new * $/.Int should actually use integer calculations * sprintf fix for the JVM, bartolin++ * profiler: expose "stolen gen2 roots" in sql output * profiler: one line per statement like earlier versions * fix profiling gc/deallocations bug swapping thread/seqnum * output "stage parse" later (for nested output), also flush stderr every line * make sql output smaller with multi-insert statements - Fix installed perl6 not finding its NQP modules - update to version 2019.07 * Make building Perl 6 code reproducible * Several improvements to the profiler * Explicitly mark out mixin types * Add method_names and method_order to NQPConcreteRoleHOW * Add given value to printf bad-directive-type error * Add uname, freemem, and totalmem ops * Protect against self-reference in match dump * Fix precedence issues with |, ||, &, && prefixes * Always produce integers in captures hash * Use a better data structure for Match setup info * Bring back the onlyname optimization * Use flags/bitmask to cheapen/avoid some work * Fix capnames with & * Correct construction of capnames in P5Regex * Add int to constants to avoid a lot of unboxing * Some small optimizations to !cursor_init * Change associativity of exponentiation to 'right' * Allow #?if stage1/stage2, add confprog loading support via cmdline flag - update to version 2019.03 * [moar] Add BINARY_* constants for the new ops * Unmap obsolete mastto* ops * Add some ints and other micro-opts to NFA code * micro-opts to NFA code * Add CONTROL_ANY constant * Fix loss of some line number annotations * Don't use note in the cursor role * Add a local debug map to QAST::Block * Have MoarVM bytecode writer write debug locals * Add local debug names for NQP code * Fix for dyncomp lexical lookup * Show scalar replacement stats on profile overview * Expose Replaced Allocations To SQL Profiler - update to version 2018.12 * Implement is array_type trait for classes * Support "is box_target" trait * Map new ops: buffertocu, serializetobuf, writeint, writeuint, writenum, readint, readuint, readnum, getcp_s * Map MVM_OPERAND_* constants * Several improvements to the profiler * Replace MAST by writing MoarVM bytecode directly * Fix trying to encode synthetics to latin-1 * Fix get_frame_index not finding frame created by BEGIN time EVAL * [moar] Fix nqp::falsey with int32 argument * Add :$transitive named re R#2401 * Allow a fail cursor to be provided in !cursor_init - update to version 2018.10 * [moar] Add coercions from int32, int16, int8, uint32, uint16, uint8 to num, from (u)ints to str and from uints to ints and vice versa. * Add the coerce_us op to QASTCOMpilerMAST for coercions * New ops: getsignals, slice, numify, wantdecont, istype_nd ("no decont"), hllboxtype_*, 2 new atomic ops, hllbool, hllboolfor, fork, decodelocaltime * Compile MoarVM spesh plugin API ops * Map new spesh plugin object literal non-match op * [moar] Implement unary ! on int32s * Several fixes for reproducible builds * Fix STDIN error for non-interactive REPL mode * Fix stringification of Sub when using --target=ast * Remove erroneous decont op in chain compilation * Support hllization of Perl 6 hashes -> NQP hashes * [Impl] !~~by adding NOT_ACCEPTS method * Provide non-decont forms of some object ops * Fix Unhandled lexical type error w/ native int's and Rakudo REPL * Fix missing annotations in QAST dumps * Add callback of nqp::spawnprocasync to catch exception * Emit invoke_v instruction for void context calls * Remove <?before> token in token term:sym<multi_declarator> (#484) * Rename getstrfromname to strfromname (#483) * Allow specification of repr with stub declarator * Don't check var until we actually gonna use it * Micro-opt method LANG * Don't emit decont of callee if unrequired * Improve getattr/bindattr code gen quality * allow more type info to be passed from moarvm * no need to pre-size an array for one element. * also store whether a type holds extra data * put the name of the SC in every type's extra info - update to version 2018.04.1 * Make build of NQP modules reproducible * Profiler Template: Sort by time Instead of Pct * Fix bug with iteration of empty character class * Profiler Template: Allocations modal close by btn * Profiler Template: Sort by time in call graph * Clean up some odd naming in QAST regex compiler * Only load cclass constants if they are needed * Micro-opt in CAPHASH * Remove apparently unused helper method * Prevent boxing of native str * Prevent another unnecessary boxing * Optimize cursor_push_cstack a bit * Optimize a loop in MATCH * Don't emit cstack handling code if unused * Use tryfindmethod in reduce_with_match * Implement nqp::numify op - Remove nqp-disable-faulty-test.diff - tests fixed upstream - Remove nqp-reproducible-build.diff - included in upstream release - update to version 2018.03 * Support for profiling multi threaded programs * Avoid using variables where we don't need any * Fix crashes with native types in conditionals * Make certain conditionals with natives 2.1x faster * Simplify conditional variant lookup * Easyfy matching Block WVals with their QAST::Blocks… * improve pod panic msg * No need to load ModuleLoader multiple times * Make sure the version of jna is 4.0.0 * Remove trailing whitespace * Implement QAST::Var.decl_as * Remove now-unused C 3rdparty deps * Fix slurpies in if ops; jnthn++ for the tip * Fix sprintf with type objects * update docs with more information * rename IO sub "spew" to "spurt" * Map new nqp::tryfindmethod op for MoarVM backend * Use nqp::tryfindmethod in Cursor!reduce * add a new built-in sub: run-command * output start time of gc runs to sql * html profiler: show times a GC run started * Add getppid op (#422) * [moar] Add encodeconf and decodeconf ops * speed up sql output by about 30% - Backport reproducible build support to fix rakudo on Tumbleweed nqp-reproducible-build.diff can be removed in the next release - update to version 2018.01 * Improve handling of flags for '%b' directive * Make || alternations respect :ratchet mode * Allow per-atom backtracking modifiers to override :ratchet * Do not start interactive REPL on non tty input * Check for the backend method in the backend before compiler * Make Int on rakudo's Match return an Int not a nqp level int. * support the new heapsnapshot API * Add nqp::getrusage and constants on MoarVM backend * Map threadlockcount op on MoarVM backend * Suppress warning in /a b+/ * Map the new nativeinvoke OP * Remove support for ornate parenthesis from quoting constructs * Improve error message when space with combiners is encountered * Remove trailing whitespace * Implement --force-stdin-eval-mode command line arg * Rename --force-stdin-eval-mode command line opt * Make NQP's BUILDPLAN more like Perl6's BUILDPLAN * Add the new coerce_II op as fromI_I * Map the new getarg_i op for reading from the args buffer * Remove some @*comp_line_directives accesses (#376) * Add support for '+' flag for %b in sprintf * Add support for a block no-inline flag * Fix wrong coercion in if on moar * Fix crash with named captures in P5 regexes * Use faster nqp::istype instead of ~~ * Implement nqp::chainstatic op * MoarVM: Allow 'chain' op to use child as callee * Use faster nqp::elems instead of + on QAST nodes * Add $!cuid to QAST::Block.dump * Implement QAST::Node.annotate_self * Fix dumping block with null_s cuids * Don't die if parent doesn't have dump method * Fix blocktype display in Block extra node info - add nqp-disable-faulty-test.diff for disabling faulty concurrency test - Remove nqp-fix-ll-exception.diff - included in upstream release - update to version 2017.08 * Fix serious security hole - tried to load modules from current working directory * support hardware_concurrency op from moar and implement for jvm * match renamed opcode "cpucores" in moar * Fix --ll-exception trying to print a NULL * Add nqp::codes to QASTOperationsMAST.nqp * Add a &dies-ok to the setting so that it can be shared across tests * Add eqatim and indexim ops. Fix a bug when using ignoremark * Correct setup of $sharedclass in regex compiler. * Map the low level nativecallinvoke op * output .sql profiler data if template.html not found * Map new atomic ops on MoarVM backend. * Add constant mapping atomic integer type. * Add nqp::hasuniprop op to QASTOperationsMAST.nqp * Add support for %*ENV<NQP_LIB> to MoarVM and JS ModuleLoaders - update to version 2017.07 * Add mapping of the op code get_port_sk * Rename get_port -> getport * Kill of nqp::getcfh. * Give NQP a basic file handle class and use it instead of low level ops. * Update profile dumper to use new handles. * Add a way to get NQP wrapped standard handles. * There is no die in NQP; it's nqp::die. * Un-map the char-level I/O ops for MoarVM. * Add :$all to methods() for Perl 6 compatability * [unicode-grant] Update QASTRegexCompilerMAST to use new indexicim and eqaticim ops * Start conveying decont context in QAST -> MAST. * Do not add condition leading '0' if already present * Add .gist method to NQPRoutine * Map setbuffersizefh op. * add refine_slang to automatically do mixins * Un-map deprecated sync proc ops for MoarVM. * Map nqp::permit op on MoarVM backend. * Remove now-unused MoarVM lexotic of compilation. * Factor out part of compile for easier re-use. * Attach the match (for file positions etc.) to the QAST properly * Fix handling of actions in .refine_slang * Map decodertakecharseof op on MoarVM backend. * Exclude empty messages from check - Backport fix for --ll-exception in nqp-fix-ll-exception.diff which was committed right after the release. - update to version 2017.05 * Some minor optimizations to profiling code * separate the $!to concept back out from $!pos * Use 0 instead of NULL in the profiler SQL output * Rename 'allocators' to 'types' in sql profile * Make 0s strings since they're going to get stringified anyway * Allow tracking of allocations by routine * Fix for RT #130760 - print usage instructions to stderr when an invalid command line option is used * Some cleanup to the SQL profile output * Add primary and foreign key constraints to SQL * Avoid numifying '!' * Convert substr+eq to eqat * Remove deprecated async str I/O ops. - update to version 2017.04 * Handle cloning/setting braids between NQPCursor and Perl6 Cursor * Prevent warnings on action type objects -- use NO_VALUE sentinal * Just use nqp::null raher than a sentinel in define_slang * [moar] Use foldcase in QASTRegexCompilier * Quick, partial, implementation of constant. * rebootstrap to get constant declarator * start to unify NQPMatch with NQPCursor * rebootstrap with temp shim to find lost NQPCursor * finish s/NQPCursor/NQPMatch/ tranformation * PRECURSOR should not trim $!orig * Make errors in QASTOperationsMAST more awesome * s/two/2/ * remove now-useless .CURSOR calls * allow !cursor_init to be used by a BUILD * Make errors in QASTCompilerMAST more awesome * Make sure to push in the sval node before the indexic_s op * Merge pull request #350 from samcv/foldcase * make false match stringify to '' * Match.Int should return, like, an int * submatches come from target, not orig * Re-work --rxtrace to not trash the cache. * Merge branch 'master' into uncurse * reduce old match object to a singleton * put $!braid near $!shared since they're similar * Fix bitrot in moarvm profiler - update to version 2017.03 - replace patches use of the new configure options removed patch: usenqplibdir.diff - update to version 2016.12 * Map MoarVM captureinnerlex op. * Make sprintf %f, %e, and %g handle negative zero * Use heap sort to sort the keys when creating JSON * Use latest versions of css/js from CDNs * Add a --profile-stage option to profile only one compilation stage. * Add SQL as an output option for profiles * Add a type declaration in Cursor.MATCH * Forbid bare \b and \B in regexes * Support calling the handlepayload and handle ops using the nqp:: syntax. * Make NFA builder cope with <before>. * Supply a warning for using \K and instead suggest <( * Add four new pairs of matched delimiters brackets/parens (#330) * Fix bug in --target=ast. * Escape 's in function names for SQL profile output - update to version 2016.11 * $CONTROL_RETURN is 32 on JVM now * Remove some unused variables+accessor methods * fix spelling * Avoid printing out <> when we have dump ast nodes with no flags. * Initial support for line directives - update to version 2016.10 * Add &is to the setting for better failure diagnostics. * Stop using flattenropes op. * Map nqp::indexingoptimized op. * Update bootstrap. * On Moar, use indexingoptimized op. * Just want an object when compiling a callee. * Remove workaround as indexingoptimized is now avaliable on all backends. - update to version 2016.09 * Add code-gen of charclass with ignoremark. * Make HLL::Grammar.O take named arguments. * Remove HLL::Grammar.O(:inherit). * split nonassoc error into list vs non-list forms * add $*SUPPOSING dynvar to mark conjectural parsing * factor out common boolean annotations to flags * use index_s even with ignorecase when scanning for literals * charrange without :m should avoid ordat/ordfirst * Correct type conversion for default arguments. * Support for decoder streams (user level string decoding) * Add LEFT/RIGHT DOUBLE PARENTHESIS in matching brackets list * Properly numify non-ascii tokens in regex/grammars - update to version 2016.07 * Support for new REPL supporting code spread over multiple lines * Workaround for unsigned attribute access bug. * Fix crash in unsinged attributeref code-gen. * Avoid a load of hash allocation/copies. * Performance improvements for regexes and compilation * Use MoarVM's optimized mutli-dispatch path. * Fix icicle graph in profiler * Support new heap profiler * Improved sprintf error reporting * Option for a source-name different from the actual source file * Fix massive memory leak in EVAL * Support BEGIN time EVAL in precompilation * Make mappers in MASTOperations cheaper * Hook up new bytecode loading ops * Improve code-gen by avoiding redundant deconts. * return is now a proper control exception making it much faster - update to version 2016.01 * entry for \0 was missing in character classes * Fixes for multi-line input on the interactive interpreter * Add subsecond file time ops stat_time and lstat_time - update to version 2015.12 * support for JavaScript backend * new I/O related ops * ops for multidimensional arrays * native calling updates - update to version 2015.05 * bring nqp in sync with moarvm * use new unicode features - update to version 2014.08 * use specialization and jit support from MOAR * lazy deserialization * many speed improvements * removed patch: arm-use-fpic.diff - update to version 2014.02 - switch to moarvm as backend - fix libdir calculation new patch: usenqplibdir.diff - update to version 2013.06 * improved jvm support - update to version 2013.05 * start of jvm support - update to version 2012.12 * avoid loosing digits in bignum conversion * improve regex speed * new QAST dumper * remove no longer needed patches - update to version 2012.07 * fix endian issues in serialization - use PIC to fix build on arm - update to version 2012.06.1 * use optimization flags for compilation * improve NFA implementation * implement fast qrpa PMC type - updated to version 2012.05 * deserialization support * qregex fixes - updated to version 2012.03 - initial revision
Stefan Seifert2025-06-15 15:38:03 +00:00
6309c6b840
Accepting request 1175998 from devel:languages:raku
Ana Guerrero2024-05-23 13:35:37 +00:00
6d919b2187
Accepting request 1175983 from home:mschreiner:branches:devel:languages:raku
Stefan Seifert2024-05-23 06:09:07 +00:00
68ec43991a
Accepting request 1164396 from devel:languages:raku
Ana Guerrero2024-04-04 20:25:14 +00:00
9d2af07b29
- Backport fix for --ll-exception in nqp-fix-ll-exception.diff which was committed right after the release.
Stefan Seifert2017-07-29 08:59:02 +00:00
10cf2cbfd7
Accepting request 512993 from home:niner9:branches:devel:languages:perl6
Stefan Seifert2017-07-29 08:39:36 +00:00
998bde0b61
Upgrade to 2016.01 - required by the first rakudo release that implements a stable Perl 6 language version
Michael Schröder2016-02-02 14:04:02 +00:00