./devel/MoarVM, Virtual machine for Rakudo Perl 6

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 2017.06, Package name: MoarVM-2017.06, Maintainer: pkgsrc-users

Short for "Metamodel On A Runtime", MoarVM is a virtual machine built
especially for Rakudo Perl 6 and the NQP Compiler Toolchain. The primary
backend target for the Christmas 2015 release of Perl 6, MoarVM stands
out amongst the various Rakudo and NQP compilation targets by:

- Running the Perl 6 specification test suite in the least time
- Passing more of the Perl 6 specification tests than Rakudo Perl 6 on
other backends
- Having the lowest memory usage
- Having the best startup time
- Being fastest to build both NQP and Rakudo - and thus your Perl 6 and
NQP programs too!
- Being the only backend to support strings at grapheme level


Required to run:
[math/ltm] [devel/libffi] [devel/libatomic_ops] [devel/libuv]

Required to build:
[pkgtools/cwrappers]

Master sites:

SHA1: 84bbf95d7f5c9c313881bb15689ff49381f29604
RMD160: af782c9a9f3127d7aebb4ae1e1a9cc14b84b04a8
Filesize: 4288.54 KB

Version history: (Expand)


CVS history: (Expand)


   2017-06-20 21:06:42 by Benny Siegert | Files touched by this commit (5) | Package updated
Log message:
Update MoarVM to 2017.06. Bump API_DEPENDS too, as functions have been
removed.

2017.06

- Make coerce_s_n work more like the Perl 6 Str.Num method
- Eliminate socket string I/O
- Re-implement synchronous sockets without using libuv, enabling them to
  be passed between threads
- Add ability to get port from already bind-ed socket
- Add cpucores op to get the number of CPU cores
- Fix inconsistency in decode stream take bytes API, so it returns null
  if that number of bytes is not available
- Fix memory leak in syncpipe
- Removed unsed header file in threads.c
- Remove unused args to bind_stdio_handle
- Remove char-level I/O ops and the functions they called
- Remove char-level I/O from synchronous I/O vtables
- Remove unused encoding option in dir handle
- Re-implement print/say debug output ops to encode and then use binary
  I/O
- Eliminate use of libuv in synchronous file handles
- Switch standard handles to use the new synchronous file handle code,
  which means they can now be safely used from multiple threads also
- Remove unused ->filename slot of syncfile
- Debugging aid for introspecting P6opaque objects
- Support merge_bytes in async proc ops, for reading STDOUT and STDERR
  together
- Support binding handles to file descriptors in async procs
- Fix off-by-one in profiler node GC
- Add string eqat/index ignorecase+ignoremark functions
- Add new eqaticim_s and indexicim_s ops ignorecase+ignoremark
- Use norm instead of n for the normalizer variable
- Add improved support for GCB=Prepend
- Improve Regional Indicators support during normalization
- Serialize a Decoder REPR object into null, so incidental file handle
  serialization in Perl 6 does not blow up
- Improve named argument optimization, so we can specialize and throw
  out instructions in more cases
- JIT decodertakeline
- Fix missed opportunity to run JITted code
- Have inline log note what couldn't inline also
- Remove successor when optional named argument is passed, so default
  code can be eliminated
- Flag writers that die when a basic block is eliminated, and disregard
  them in PHI node analysis, provide more precise type information
- Make a basic block elimination pre-pass before the main optimization
  work
- Set dead writer when deleting instructions also, to further aid PHI
  merges
- Track which basic blocks are part of a jump list
- Delete pointless goto instructions (those at the end of a basic block
  that simply go to the next block)
- Remove bad Windows quoting option async proc code
- Actually log inlines to stderr as the comment up top claims
- Make find_separator only look at the last chars, which is far cheaper
- Add help text for environment variables to Configure
- Move NFG initialization into nfg.c
- Cache CRLF grapheme value
- Cache maximum separator length, to save recomputing it for every line
  that is read
- Cache a list of final separator graphemes, for faster stopper
  detection in streaming decoders
- Introduce a max final grapheme codepoint filter, for faster stopper
  detection in streaming decoders
- Add a UTF-8 decoding fast-path that doesn't need to go through the
  full normalizer
- Keep last freed chars buffer handy for re-use in streaming decoder
- Make a smarter guess at decode result buffer size in streaming decoder
- Don't copy when we can steal decoder output, saving a memory copy in
  most line reading operations
- Various micro-optimizations to UTF-8 decoding fast path
- Fix newline translation in various encoding's streaming decoder

2017.05

- Mark profiler call graphs iteratively instead of recursively
- Keep around line number annotations in spesh, for more accurate source
  position information for coverage data in specialized code
- Introduce "telemeh", a high-precision-time low-impact logger
- Fix error reporting in chdir
- Fix memory leak on error in chdir
- Travis: readlink doesn't have `-f` on MacOS so make our own solution
- Fix bug in index ignorecase and equal at ignorecase
- Fix all known remaining bugs in indexic and eqatic
- Zero slot when popping a VMArray, to avoid junk reads if it grows
  again later
- Add can_fit_into_8bit funct, put logic used many places into one
  function
- Use -1 instead of 0 when long right-shifting negative smallints
- Remove workaround for tommath issue #56, which is now fixed upstream
- Don't crash on reading a closed dir handle
- Remove deprecated async string I/O ops

2017.04

- Shorten the nursery when creating large bigints, to bring GC forward
  and resolve excessive memory use
- Use correct format for repeat/concat errors
- Fix bug in indexic_s if expanding codepoint is the last codepoint
- Special case "\r\n" in MVM_nfg_is_concat_stable for performance
  reasons
- Further optimize MVM_nfg_is_concat_stable to speed up concatenation
- Do not set use rpath if installing into proper system locations
- Optimize passes_quickcheck_and_zero_ccc to be much faster
- Give this_repr constants more meaningful names to aid debugging
- Streamline MVM_bigint_radix and MVM_radix for Nd Unicode #'s
- Fix case-insensitive string compare bug when synthetics are in the
  haystack
- Improve description for "should eventually be unreachable" error
- Correctly detect and handle overflow in mp_get_int64
- Split into mp_get_int64 and mp_get_uint64
- Only allocate and normalize for cp's that require it in
  MVM_string_chr, and short-circuit Unicode property test for codepoints
below 0x300
- Provide a better error when failing to encode surrogates in UTF-8
- Add a cast to suppress a compiler warning in strings/ops.c
- Factor out code from equal_at_ignore_case for use in index_ignore_case
  also
- Use both hex and decimal for UTF8 encoding error messages
- Add parentheses in various places to suppress compiler warnings
- Use PRIu64 in fprintf's to fix compiler warning about incorrect types
- Add a check that introspection->is_tty is not NULL, avoiding a crash
- Mention debug_name in errors about uncomposed repr
- Add new --coverage option for Configure.pl
- First prototype of a per-line coverage reporter, enabled by setting
  MVM_COVERAGE_LOG
- Cope with a native type with no nativesize, but signedness
- Remove two functions in normalize.c that have been superseded
- Give collapse_strands a 5.4% speed boost under some workloads
- Add MVM_string_graphs_nocheck funct, use it in places we previously
  already checked
- Have a two-part loop in collapse strands to make loop tighter when
  possible
- Implement serialize/deserialize in VMHash REPR
- Use memmem in string index. Uses Knuth-Morris-Pratt on glibc, and adds
  the FreeBSD memmem.c for use on Windows
- Fix a join NFG bug when there was an empty string and an empty
  seperator
- Reorder MVMStaticFrameBody to save 16 bytes according to pahole;
  similarly save 16 bytes in MVMCompUnitBody, 24 bytes in MVMJitCode, 8
bytes in MVMIOSyncStreamData, SerializationRoot and SerializationReader
- Remove arbitrary and small length range check for reading bytes from a
  file
- Remove unused defines in threadcontext.h
- Greatly reduce contention in the fixed-size allocator for
  multi-threaded programs, giving up to 40% speedup in some cases
- Add continuous coverage analysis to Travis builds, along with other
  Travis improvements
- Mark thread GC blocked when doing synchronous writes
- Add missing MVMROOT when reading bytes, which could result in
  occasional data loss

2017.03

- Fix some missing variable initializations
- Set effective_handlers in context-only frame
- Streamline code in hash computation, hopefully fixing a Coverity
  warning
- Detect and throw on over-size array
- Put in a limit for codepoints in a grapheme, to avoid various
  overflows
- Fix a missing NULL check at end of profiling
- Panic when a new thread context can't create an uv_loop
- Better handling of out of memory when creating a thread
- Another attempt at silencing the pthread_yield warnings
- Missing GC block marking in event loop starting, fixing a deadlock
- Fix CArray marshalling of type objects
- Provide a way to put Decoder in nl-translate mode
- Ensure Decoder REPR never sees concurrent use
- Debug option to detect concurrent VMArray use
- Encode strings as UTF-8 in MVM_unicode_string_from_name
- Reword exception message for read() outside original thread
- Check that results of repeat/concat fit in an MVMString
- Fix div_i JIT round to negative infinity
- Ignore SIGPIPE by default
- Only start readers if a process spawned OK
- Remove deprecated char-mode async proc reading
- Signal error to stdout/stderr on spawn failure
- Do gen2 sweep before letting stolen threads go, fixing occasional
  SEGVs
- Turn libtommath dependency into a submodule, use a MoarVM fork
- Update libtommath fork to have expmod hang fix
- Change MVM_string_equal_at_ignore_case to use fc
- Fix MVM_string_equal_at_ignore_case when folding the haystack changes
  length
- Mention debug name and REPR name in "requires obj with repr X" errors
- Remove unneeded variable in MVM_string_index
- Add MVM_string_index_ignore_case function and indexic_s op
- A range of improvements to the MoarVM GDB plug-in

2017.02

- Fix format strings that warn during compile
- Implement missing cleanup of async task handles, fixing a memory leak
- Make Unicode sequence and codepoint name lookup case-insensitive
- Add Unicode sequences from NamedSequences.txt in the Unicode database
- Remove second declaration of MVM_frame_destroy
- JIT MVM_radix()
- Make radix and radix_I 50% faster with Unicode Nd
- Add East_Asian_Width prop
- Fix memory leaks in synchronous sockets
- Fix crashes in socket connect error handling
- Don't leak memory in STable repossession
- Missing MVMROOT around a lock acquisition
- Refuse to form an NFA with a zeroed to-state
- Add data section for JIT code, and use it for extop 'fake' registers
- Correct typo in NFG trie node struct name
- Fix overflow in div_i op
- Implement support for synthetic graphemes in
  MVM_unicode_string_compare
- Implement configurable collation_mode for MVM_unicode_string_compare
- Use LDFLAGS in ld invocations
- On Windows, create UTF-8 encoded argv upon program entry
- On Windows, populate environment hash from Unicode environment
- Some additional heuristics to cut down on cross-thread write log
  output
- Fix abs_n op for negative zeros
- Sort out semantics of closed async sockets
- Fix overflow on 32-bit systems in is_full_collection()
- Rename MVMArray file and constant to VMArray
- Remove bogus indication that MoarVM builds on `cygwin`
- Use utf8 for unicode_db files
- Fix invalid read when GC was triggered in the string repeat op
- Don't call MVM_string_graphs twice in indexing op, plus cleanup
   2017-02-05 13:36:59 by Benny Siegert | Files touched by this commit (4) | Package updated
Log message:
Update MoarVM to 2017.01.

2016.04
- Implement heap snapshots support, exposed through the profiling API
- Don't mark tc->cur_frame twice during GC
- Move thread object mark into thread root mark, removing a special case in the
  main collector
- Add API for adding a permanent root together with a description
- Mark thread blocked for GC when doing synchronous reads
- Make MVM_bigint_from_num jit-friendly
- JIT coerce_nI as a call to bigint_from_num
- Set debug_name on a few more built-in types
- Add REPR API for getting unmanaged size, implement it for many REPRs
- Fix compile on FreeBSD 9
- Handle single-char build directory names by changing capture to lookahead
- Fix performance of reading very long lines
- Fix utf8-c8 decode crash caused by off-by-1
- Fix a full vs. partial collection detection bug
- Factor unmanaged size into promoted bytes
- Enhance scheme for deciding when to do a full collect
- Bail out if HLL name string index is invalid in bytecode unpack
- Don't try to set flags beyond num_lexicals when reading in call frames
- Adjust byte count when UTF-16 BOM marker consumed
- Fix buffer overrun in utf8-c8 decoding
- Initialize object registers with VMNull when allocating frames, to avoid a
  number of possible segfaults
- Fix incorrect boolification of "" under mode \ 
MODE_UNBOX_STR_NOT_EMPTY_OR_ZERO
- Utilize debug_name in nativecall error messages

2016.05
- Use MSVC-provided stdint.h and inttypes.h when possible
- Improved various error messages to include the debug type name
- Eliminate call frame reference counts, instead using a linear call stack for
  frames that never become heap-referenced and using the garbage collector to
  manage those that do
- Tune number of gen2 sized bins
- Improve error reporting in P6opaque's compose function
- Improved GC debugging support to catch more problems
- Fix a race between serialization context resolution and garbage collection
- Add a missing MVMROOT in shell/spawn
- Fix segfault when trying to serialize an uncomposed P6opaque type
- Update the build system to autodetect system provided libs
- Add missing rooting, since the instrumentation level barrier may allocate
- Fix cleanup of temp roots at thread exit
- Add missing rooting of exception message in `die`
- Fix CUnion layout computation GC issues
- Fix data race in clearing of "in inter-gen set" flag
- Various improvements and fixes to the spesh_graph tool
- Add missing optimization of decont_s and decont_u ops
- Eliminate duplicate MVMContext creation code
- Fix full cleanup crash: the NFG uses the FSA, so have to destroy NFG first
- Close dynvar log filehandle in instance destroy
- Clean up cross-thread write logging mutex
- Free debug names in STables
- Free the string_heap_fast_table in CompUnit bodies
- Free permroot descriptions
- Free thread's finalization queue in tc destruction
- Add docs about MVMROOT
- Fix crash when GCing an ended thread
- Implement loadbytecodebuffer and loadbytecodefh ops
- Speed up initialization of non-specialized frames
- Use varints to make serialization of various integers more compact, reducing
  size of compiled output
- Ensure we always produce at least one snapshot when heap profiling
- Remove debug output when taking heap snapshots

2016.06
- Serialize the HLL role field of STables
- Avoid VMNull setup memcpy/loop in specialized frame initialization
- Stop caching MVMContext on a frame
- Use frames directly when serializing closures, rather than having to create
  an MVMContext wrapper for every one
- Write SC index when deserializing, repossessing, and preparing to serialize,
  saving a huge amount of linear scanning
- Only used cached SC index if SC itself matches
- Remove an unrequired memset to clear the args buffer
- Inline args preparation into interpreter, and JIT it directly instead of
  making a call to a tiny function
- Mark getlexcaller as :noinline
- Don't lose handlers during multi-level inlines
- Eliminate loop in P6opaque's get_boxed_ref function, decreasing cost
- Implement payload throw/handler support
- Implement callerlex throwing mode
- Make moar-gdb.py source-able, instead of only autoloadable
- Fix inlining causing wrong lexical handler lookup
- Make build in dir containing space work
- Allow HLL handler for unhandled lexical exception
- Add debug_name to "cannot iterate X with Y REPR" message
- Give "this is not a X iterator" more info, too

2016.07
- Implement a new multi-dispatch cache, structured as a tree, able to hold more
  entries more memory-compactly, and able to cache dispatches involving named
  parameters
- JIT read_fhs op
- Implement elems REPR function for MVMContext
- Implement a BB-splitting manipulation function in the optimizer
- Fix sha1 op to work with null bytes
- Fix bad interaction between profiling and dead allocation elimination; the
  presence of allocation logging would prevent the optimization, leading to
  misleading profiler output results

2016.08
- Don't crash in P6opaque on NULL name_to_index_mapping
- Fix off-by-one in grapheme iterator
- Block/unblock thread for GC on semaphore wait
- Mark blocked around some more lock acquisitions
- Fix various cases of out-dated pointer reads on concurrency control constructs
- Hold uv_sem_t at a level of indirection, so it won't move in memory
- Add a flag for PIPE_MERGED_OUT_ERR; fix stdio setup for merge
- Fix EOF detection when reading files from /proc and similar
- Fix lost socket listen errors
- Implement async cancellation completion notifications
- Add some missing fact dependencies in spesh, fixing some wrong guard
  eliminations
- Avoid use of possibly-invalidated decont facts in spesh
- Remove keep_caller from MVMFrame
- Correctly NULL-terminate the buffer in MVM_vm_dump_file

2016.09
- Do not crash when the container configuration can't be read
- Correctly calculate the work_size when inlining between compilation units
- Validate indices of param_ ops and require checkarity before param_*
- Fix tautological comprison; snprintf returns an int, not a size_t
- Fix tell for files that haven't been read from
- Don't allow zero alignment in P6opaque storage spec
- Index check lexicals when reading static flags
- Add Decoder REPR and a number of ops that provide access to VM-backed
  streaming decoding
- Don't segfault when serializing an uncomposed p6opaque
- Don't read_int into a size_t which is unsigned
- Never leak sym_name from nativecall_build
- Fix a couple of potential leaks in heap snapshots
- Kick arg_ and argconst_ ops from the correct basic block when inlining
- Use HASH_FIND_CACHE instead of HASH_FIND in MVMHash
- Correct wording of named arguments error
- Bounds check for hints in get_attribute and bind_attribute
- Use hints for is_attribute_initialized, and null-check repr_data
- Clean up various unused variables
- Mark thread GC blocked while accepting a socket to prevent deadlocks
- Configure.pl now has an explicit use lib "."
- Fix missing finalization queue cleanup at thread exit
- Mark SC used in bytecode loading as claimed to avoid keeping them around for
  too long
- Fix an error in multi caching of named arguments that could cause lookups to
  fail and the cache to keep growing

2016.10
- Fix build without libtommath source
- Make MVM_file_open_fh() throw if the file we opened was a directory
- Fix bug and memory leaks in MVM_file_open_fh()
- Add error message for likely MacOS build failure
- Don't set inheriting process on inherited pipe, fixing a segfault
- Update to the Unicode 9 database
- Die on CStruct without any fields
- Constant-fold unipropcode and unipvalcode
- Use PRId64 instead of %d for 64 bit int format string args
- "Cannot unbox type object" error gets debugname and native type info
- Fix uninitialized arg_names of an MVMCallsite
- Handle C++ constructors on libffi
- Fix CUnion get_attribute treating inlined attrs as pointers
- Fix 32 bit issue with rw args in NativeCall callbacks
- Use better throw-away type for void nativecalls
- Gracefully handle a 0 RSS reported by the Linux kernel
- Fix "Invalid free()" in empty repossessed arrays
- Make sure we mean "signed char" when we say "char"
- Fix calculating structure sizes for arm64 and others
- Disable JIT on x32, since it has a different calling convention
- Fix pointer size unit in configure message
- Use set_uint64 in from_num, otherwise we overflow on x32
- Rewrite mkdir_p api, no function changes
- Improve nativecall attribute error messages
- Include debug_name in crossthreadwritelog and serialization errors
- Deprecate async string I/O ops
- Deprecate flattenropes op
- Implement indexingoptimized op (replaces flattenropes, but is not in-place)
- Fix memory leadk in ord_basechar_at
- Ensure errno is grabbed before MVM_free is called
- Make extra sure unlock only happens if lock happened

2016.11
- Workaround tommath issue #56 which affects random bigint numbers > 32 bits
- Fix memory leaks in nqp_nfa_run
- Fix a sizeof arg that allocated a much-too-big buffer for callsite arg names
- Add missing breaks in MVMString's copy_to
- Prevent null deref when calling MVM_string_utf16_encode
- Corrections to mkdir on Windows
- Introduce MVM_SPESH_LIMIT, which limits how many specializations will be
  performed; this is useful for debugging which specialized block is to blame
  for a bug
- Make sure we never box a NULL filename when creating backtraces
- Fix the nativecall attribute error messages
- Remove (non-existent) num16 from error message
- Make the fixed size allocator provide useful information to Valgrind
- Implement serialization of SCRef
- Include file/line of unserializable closure, to aid debugging
- Add type info when failing to bind an attribute
- Use ffi_arg type for libffi nativecall return types
- Handle libffi return type more correctly
- Work around missing libatomic_ops prototype on s390x
- Panic when trying to GC a locked mutex
- Make VM panic output state that a panic occurred
- Fix JIT code generation bug in nqp::exception
- Add missing rooting of value pushed to concurrent queue
- Add src/gc/debug.h dependency to Makefile
- Mark a thread GC-blocked while it is in native code
- Have "Cannot * a type object" also outputs the type's debug name
- Don't reveal partially deserialized method cache
- Give a bunch of exception ops REPR and debug name output
- Prevent segfault when null string used as hash key
- Request POSIX.1.c compliance on solaris
- Change to use readdir insteal of readdir_r
- Use GCC on Solaris by default
- Give diagnostic output when compiling fails
- Handle current Solaris compiler not understanding -mt
- Fixed readdir so it won't check old errno
- Work around clock_gettime issue on OSX
- Refactor hashes to no longer need to flatten ropes in string keys
- Save 8 (64-bit) or 4 (32-bit) bytes per entry in the MVMHash REPR
- Remove the deprecated flattenropes op
- Remove now-unused MVM_string_flatten function
- Don't treat an nread of 0 in libuv read callbacks as an error
- Bump to latest libatomic_ops

2016.12
- Decode Latin-1 and UTF-8 strings to 8-bit width when possible
- Teach a few string functions to compress results into 8-bit storage
- Fix for AIX's INFINITY not being a constant
- Unlink libmoar before (re)installing it
- Add configuration for AIX
- Support Perl older than 5.10 for Configure.pl
- Use "pkgconfig --libs libffi" additionally to --cflags
- Fix powerpc detection on AIX (gcc)
- Make multidim error messages say they are multidim
- Add comment about where to find UNIDATA
- Implement captureinnerlex op, for fixing QUIT/LAST phaser scoping in Perl 6
- Fix mis-sized free in the NFG trie that only showed up in 32-bit
- Add GC debug helper to "find" a pointer in nurseries/gen2 bins
- Make ASSERT_NOT_FROMSPACE check fromspaces of all threads
- Fix missing MVMROOT around an allocation
- Fix typo in nfg.h comment
- Fix native callback and GC interaction when embedded
- Add GC block management functions to the public API
- Mark throwpayload* as :throwish in oplist
- Optimize the check for negative bignums
- Remove useless mp_neg calls
- Fix premature free of UV socket handles
- Fix premature handle free in async UDP sockets
- Add a "check every register access" GC debug mode
- Provide a #define to disable dynlex caching
- Provide a #define for deopt logging
- Invalidate dynlex caches during deopt
- Fix pow_I when it takes an exponent larger than 2**32
- Only do MVM_ASSERT_NOT_FROMSPACE in GC debug mode
- Add a fromspace assertion in finalize
- Avoid a number of spesh GC invariant violations
- Panic if we try to GC when speshing/JITing
- Ensure we don't leak partially deserialized objects
- Fix unrooted frame around SC object lookup
- Remove some GC debug code
- Avoid reading nativerefs in spesh, since it can cause boxing and thus GC
- Cope with push being used on concurrent queues
- MVMROOT around putting work on concurrent queue
- MVMROOT eventloop queue when polling it
- Do MVM_ASSIGN_REF after block/unblock in concurrent queue
- Fix more unrooted frame around SC object lookup

2017.01
- Extract spesh block allocator from spesh, for wider use
- Add a number of missing MVMROOTs, which could lead to outdated pointers; also
  removed some unrequired MVMROOTs
- Fix arg_flags allocation sizes
- Remove an obsolete path from ldrpath
- Check lexical accesses in GC debug mode 2 also
- Add a #define to turn on inline logging
- Fix callstack reset bug, which could corrupt deeply recursing callstacks
- Don't allow re-compose of a P6opaque
- Add a new unicmp_s op, which compares using the Unicode Collation Algorithm
- Make sure we generate all values of the Line_Break property
- Re-implement utf8-c8 encoding, fixing bugs and ensuring that non-NFC input
  will round-trip properly also
- Implement Bidi_Mirroring_Glyph as an integer property
- Implement Emoji grapheme breaking and other combined codes
- Add support for Grapheme_Cluster_Break=Prepend from Unicode 9.0
- Make sure we break after Prepend if it's a control character
- Add a script to download the latest version of all of the Unicode data
- Missing rooting GC in rare exit handler case
- Implement new setdispatcherfor op and add JIT for it
- Use much faster atoi function in normalizer; 14% less CPU use when slurping a
  file in UTF-8 encoding
- For Decompose_Type, use int lookup instead of str for better performance
- Fix heap snapshot crash on eventloop thread
- Use /usr/bin/env perl for ./Configure.pl
- Don't break after ZWJ or for MALE SIGN and FEMALE SIGN
- Take into account actual allocated size of I/O buffers in gen2 promotion
  statistics
- Tweak full collection criteria in heap profiling
- Free up spesh log slots after specialization, avoiding some leaks
- Removed the getregref_ ops (unused by NQP or Perl 6)
- Removed the continuationclone op (unused by Perl 6)
- Enforce one-shot invocation of continuations
- Greatly simplify handling of call frame working register lifetimes, leading
  to consistently shorter lifetimes, less memory pressure, and faster calling
- Eliminate now-unused `tc` field in MVMFrame, saving a pointer per callframe
- Simplify args cleanup functions
- Reduce number of checks in call frame marking, making it faster
- Implement getstrfromname op, to get named Unicode sequences
- Fix GC in spesh triggered by managed mutex use
- Fix data race in inlining extop fixup
- Fix data race in callsite fixup during inlining
- Fix data race in string fixup during inlining
- Fix charname lookups of LINE FEED and CARRIAGE RETURN
- Remove Unicode 1 names and add Unicode Name Aliases
- Convert MVM_malloc+memset to MVM_calloc
- Clean out ancient "remove after rebootstrap" line
- Fix typo in MVM_CALLSTACK_REGIONS_SIZE's name
- Fix missing cleanup of managed DecodeStream
- Have DecodeStrem clean leftover char buffers
- Fix a typo in decode stream destroy function
   2016-07-09 08:39:18 by Thomas Klausner | Files touched by this commit (1068) | Package updated
Log message:
Bump PKGREVISION for perl-5.24.0 for everything mentioning perl.
   2016-04-08 22:26:46 by Benny Siegert | Files touched by this commit (7)
Log message:
Import MoarVM-2016.03 from wip.

Short for "Metamodel On A Runtime", MoarVM is a virtual machine built
especially for Rakudo Perl 6 and the NQP Compiler Toolchain. The primary
backend target for the Christmas 2015 release of Perl 6, MoarVM stands
out amongst the various Rakudo and NQP compilation targets by:

- Running the Perl 6 specification test suite in the least time
- Passing more of the Perl 6 specification tests than Rakudo Perl 6 on
  other backends
- Having the lowest memory usage
- Having the best startup time
- Being fastest to build both NQP and Rakudo - and thus your Perl 6 and
  NQP programs too!
- Being the only backend to support strings at grapheme level