* Sun Apr 03 2022 nine@detonation.org
- 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
* Sun Mar 27 2022 Stefan Seifert <nine@detonation.org>
- 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.
* Mon Feb 21 2022 nine@detonation.org
- 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)
* Sun Aug 22 2021 nine@detonation.org
- update to version 2021.08
* Fix several issues on the JVM
* Sat Jul 24 2021 nine@detonation.org
- update to version 2021.07
* Implement support for moar::hllincludes config variable
* Fix reproducible build regression
* Wrap QAST::Regex from qbuildsub in QAST::Stmts
* Sat Jul 10 2021 nine@detonation.org
- 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
* Mon May 24 2021 nine@detonation.org
- 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.
* Sun Mar 21 2021 nine@detonation.org
- 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.
* Sun Feb 21 2021 nine@detonation.org
- 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
* Wed May 13 2020 nine@detonation.org
- 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
* Tue Mar 03 2020 nine@detonation.org
- 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
* Tue Jan 28 2020 nine@detonation.org
- 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
* Fri Nov 29 2019 nine@detonation.org
- 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
* Mon Jul 22 2019 nine@detonation.org
- Fix installed perl6 not finding its NQP modules
* Thu Jul 18 2019 nine@detonation.org
- 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
* Tue Mar 19 2019 nine@detonation.org
- 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
* Fri Dec 28 2018 nine@detonation.org
- 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
* Sun Nov 11 2018 nine@detonation.org
- 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
Version: 2018.04.1-bp150.2.7
* Tue May 01 2018 nine@detonation.org
- 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
* Tue Mar 20 2018 nine@detonation.org
- 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
* Thu Feb 01 2018 nine@detonation.org
- 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
* Mon Aug 21 2017 nine@detonation.org
- 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
* Sat Jul 29 2017 nine@detonation.org
- 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.
* Fri Jun 02 2017 nine@detonation.org
- 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.
* Tue Apr 18 2017 nine@detonation.org
- 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
* Sun Mar 19 2017 nine@detonation.org
- update to version 2017.03
* Tue Dec 20 2016 nine@detonation.org
- 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
* Thu Nov 24 2016 nine@detonation.org
- 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
* Sun Oct 16 2016 nine@detonation.org
- 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.
* Fri Oct 07 2016 nine@detonation.org
- 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
* Sun Jul 24 2016 nine@detonation.org
- 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
* Tue Feb 02 2016 nine@detonation.org
- 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
* Mon Jan 04 2016 nine@detonation.org
- update to version 2015.12
* support for JavaScript backend
* new I/O related ops
* ops for multidimensional arrays
* native calling updates
* Thu Jun 11 2015 mls@suse.de
- update to version 2015.05
* bring nqp in sync with moarvm
* use new unicode features
* Fri Aug 22 2014 mls@suse.de
- update to version 2014.08
* use specialization and jit support from MOAR
* lazy deserialization
* many speed improvements
* removed patch: arm-use-fpic.diff
* Mon Mar 03 2014 mls@suse.de
- update to version 2014.02
- switch to moarvm as backend
- fix libdir calculation
new patch: usenqplibdir.diff
* Sun Jul 14 2013 daxim@cpan.org
- update to version 2013.06
* improved jvm support
* Mon Jun 03 2013 daxim@cpan.org
- update to version 2013.05
* start of jvm support