The NetBSD Project

CVS log for pkgsrc/devel/MoarVM/distinfo

[BACK] Up to [] / pkgsrc / devel / MoarVM

Request diff between arbitrary revisions

Default branch: MAIN

Revision 1.13 / (download) - annotate - [select for diffs], Sat Oct 31 12:20:45 2020 UTC (4 weeks, 2 days ago) by mef
Branch: MAIN
Changes since 1.12: +5 -5 lines
Diff to previous 1.12 (colored)

(devel/MoarVM) Updated 2020.09 to 2020.10



    [fb992950] Add MVM_str_hash_iterator_target_deleted() for HASH_DEBUG_ITER


    [df77d3cf] Simplify and optimize isprime_I
    [8852896d] A more complete fix for the hash max probe distance bug
    [a27c7882] Make lookup table in MVP_round_up_log_base2() based on uint8_t
    [0015fd05] Re-instate meaningful hash iterator debugging inside HASH_DEBUG_ITER
    [60070970] oops if MVM_fixed_size_alloc() is called for a size of 0 bytes

Debug Server:

    [3c3a24bf] Fix two *printf size warnings reported on ILP32 platforms


    [95d21703] Minor optimization of MVM_file_isexecutable on Windows
    [882dbf04] Add a function to fix up the STD IO handles


    [a989f7b5] char can be unsigned. Rewrite the "is it ASCII?" test to handle this too


    [dc50eddd] For the pthread_setname_np probe, use an auto char array instead of malloc
    [4f5787d3] Create a unicode.c with #include directives instead of generating it with cat

Revision 1.12 / (download) - annotate - [select for diffs], Sat Oct 3 14:05:15 2020 UTC (8 weeks, 2 days ago) by mef
Branch: MAIN
Changes since 1.11: +5 -5 lines
Diff to previous 1.11 (colored)

(devel/MoarVM) Update 2020.08 to 2020.09

New in 2020.09

+ [497748f7] Split `flags` in struct MVMCollectable into `flags1` and `flags2`
+ [effc5549] P6int: make set_int and get_int globally available
+ [a526f424] Remove tiny indirection from MVMHash_at_key/bind_key
+ [9c6bb7ab] Deserialization: rely on MVMHash being the known repr
+ [f029d3c7] Deserialization: use P6int repr being known in read_ref
+ [88efde45] Deserialization: rely on P6str REPR being known
+ [b37770a7] Deserialization: rely on known REPR in read_array_var/int/str
+ [9caec0fc] Deserialization: rely on knowledge of owned_objects REPR
+ [2dfe1c53] Introduce MVMP6str_get_str and MVMP6str_set_str
+ [429bd31f] Introduce MVM_VMArray_bind_pos
+ [f01930b5] Introduce MVM_VMArray_push
+ [1fdfdf59] Fix endless recursion and segfault in dump_p6opaque
+ [124fe2be] copy_to should call MVM_gc_write_barrier with the *new* key's address

+ [381e3d69] MVMObjectId.gen2_add is now uintptr_t, instead of an actual pointer
+ [50d3311c] Better specialize boolification of boxed Num

Debug Server:

+ [fc9dd762] Reorder alloc/free of `c_key_name` in the debug server

+ [b243d017] Fix MVM_file_isexecutable() when being root
+ [96d32a1a] Don't duplicate file existence checks

+ [29ce8171] Update libuv to version 1.39.0

+ [b74b94d5,c61c18a2,2c294cbf,215854f8,040e9d63,2a271e16,aba462b2,
   ef6a37b,e3ad7ced,590bac47,322c2e0b,25c70bfe] Introduce new hash implementation based on Robin Hood Hash
+ [8a3857,489ab696,63665640,004ce49c] make moar --dump use memmem to find "MOARVM\r\n" string

+ [87ad486f,07721999] Fix MoarVM building on Sparc 64

+ [6441fa6b] Return `MVMHeapSnapshotSeen *` from seen in heapsnapshot.c

+ [c3941772] Add 'macroify_mallocs.p6' script

Revision 1.11 / (download) - annotate - [select for diffs], Sun Sep 13 14:08:35 2020 UTC (2 months, 2 weeks ago) by mef
Branch: MAIN
CVS Tags: pkgsrc-2020Q3-base, pkgsrc-2020Q3
Changes since 1.10: +5 -5 lines
Diff to previous 1.10 (colored)

(devel/MoarVM) Updated 2020.05 to 2020.08

New in 2020.08

+ [c0ed9e32] Make extop marks reachable again in MVM_op_get_mark

Debug Server:
+ [b78b523d][2a9f0f06] Implement `FindMethod` op and add a `name` field for it
+ [7a2881a8] Implement simplest case of `decont` op
+ [f6f12f5a] Fix compiler warnings

+ [da237717] Move MVM_malloc_trim call after MVM_gc_collect_free_gen2_unmarked call

+ [393ae579] Fix case insensitive string matching with an empty string

+ [6d5a3b02] Make `` executable again
+ [1f182b48] Add new `` flag `--dtrace` which allows to put DTrace points in the code

New in 2020.07

+ [32ce5f97] Constant-fold spesh-time-known unbox/decont_n/s

+ [44504309,8e75378f,1d52655e,d564695f] Introduce the setthreadname op

Debug Server:
+ [707f6ce7,12780324] Debugserver Protocol 1.2: add thread "name" field

+ [06d8cdd1] Fix compiler warning in GC debug code

+ [19374884] Add JIT templates for return_(i|n|s)

+ [a4cb0c51,2a3290df,183becd2,0a0a9ba9,953bac6c] Give io loop thread and spesh thread a name

+ [9a9ca434] Propagate facts in set elimination in one more case
+ [af5b89b6] Give known type flag when turning return to box in inline

+ [e5d597d1] Eliminate $annotate_anyway, which is no longer used
+ [1d00a2b5] Don't add placeholders such as "<control>" to the Unicode names lookup hash
+ [07dbc19a] Don't change the name to NULL (occasionally, if it starts with '<')
+ [0369f512] Unwrap the generated codepoint_names to one entry per line
+ [cfe6ed8f] Consistent whitespace for the initialiser for codepoint_bitfield_indexes
+ [23dfde97] Fix building on older compilers by explicitly stating gnu99 usage
+ [67c8413f] Fix script error propagation

+ [0c651c23] Fix downloading of Unicode data

New in 2020.06

+ [e4ff69495] Setup inlined CStruct assigned during construction
+ [57c8bb84e] Fix CStruct handling of inlined attributes
+ [55ee90b17][a5061624d] Add MVM_HASH_(BIND|GET)_FREE macros
+ [3149bbb4f] find_repr_by_name now holds mutex_repr_registry when reading repr_hash
+ [c70587551] Where possible, iterate over lexical_names_list instead of lexical_names
+ [290f518af] Free REPR data before throws and where appropriate, set `st->REPR_data` to NULL
+ [7a799da87] Copy lexical_names_list when copying a StaticFrame
+ [2922f3d1a] mutex_container_registry is held while reading from container_registry
+ [3fe584876] Use correct encoding for deserializing strings
+ [4d0da364d] Wrap all access to lexical_names with MVM_get_lexical_by_name
+ [3658e4cd1] Don't make a lookup hash for lexical names for frames with few lexicals

+ [de8955822] Fix segfault in bytecode dumper when local_types is NULL
+ [72f720788] Move check (return value+exit handler) earlier
+ [c1c25e33f] Remove the unused `tc` parameter of cleanup_all
+ [17969cfb5] Remove redundant if when reading bytecode
+ [396c90039] Don't obliterate lib_name in exception text of NativeCall
+ [9e12424fb] Show index of outer lexials in bytecode dump instead of ??
+ [520c35124] Allow for explicitly marking the mainline_frame in the bytecode
+ [5d98d8eb6] Remove name assignment in struct MVMDLLRegistry

+ [1a46b0ae7] Possibly fix MVM_panic from entering GC during spesh

+ [ee8f3af70] Always handle proc exec arguments verbatim on Windows
+ [780271899] Fix reading closed dir handles on Windows
+ [157387214] Fix closing a dir never read from on Windows

+ [7f33af885] JIT atpos/bindpos for known i64 array
+ [680a8cc72] Remove prof_enter JIT template
+ [9b60b37ca] JIT getcurhllsym and gethllsym

+ [6ab7dab5f] Backport a change in libtommath to fix build on x86 Windows
+ [a4b195936] Update libuv to version 1.38.0

+ [8eb552323] Fix some possible double frees
+ [565e55ce1] Fix the order of some MVM_calloc arguments
+ [3f6e6582e] Convert MVM_free+NULL to MVM_free_null
+ [f47e6ee5a][6cf18281d][c1c25e33f][8cd9ca87c][e736c1fb8]
  Free memory that had been allocated before a throw
+ [aeec50e0a] Simplify counting of lexical_names
+ [1bad1eff6] Simplify some MVM_string_ascii_encode calls
+ [9c758d5eb] Fix duplication of lists when MAST::Frames get written to bytecode multiple times
+ [a7f988940] Add methods WHICH and raku to MAST::Frame for easier debugging
+ [995c70ca8] Allow for MAST::CompUnit to share its lists with an outer compilation
+ [6c7ee4e8f] Add a method for clearing a cached index on a MAST::Frame
+ [c177e85cc] Remove two unused variables

+ [a48790029] Use FSA for alloc and dealloc counts
+ [2041902da] Remove a major source of space waste from alloc counts growth
+ [269d307a8] Add a layer of indirection between call graph and types/sf
+ [03c9154e8] Remove commented out profiler code

+ [9b60b37ca][af1475ec1] Spesh getcurhllsym and gethllsym
+ [12c7a44a8] Simplify MVMLexicalRegistry code

+ [fc7922e5e][42a2424ba][eacb89a27][631008c61][932f5c208][b8506d45a]
  [ac94564c7][a99ab1e4f][852576e7d] Add an AzureCI test setup
+ [bc904b8bd][0257ecac4][0dc625f18]
  Add a new GCC plugin to find cases where an MVM_exception_throw_adhoc is possibly missing a free
+ [20a2a9114] Introduce UV_BSD to avoid duplication in Makefile
+ [06f041fb0][eafa7b39185a29f50271120b105d7087709f75f7] Fix build an FreeBSD
+ [fc092556b] Fix broken builds on older versions of GCC

Revision 1.10 / (download) - annotate - [select for diffs], Sun Sep 13 13:53:24 2020 UTC (2 months, 2 weeks ago) by mef
Branch: MAIN
Changes since 1.9: +5 -5 lines
Diff to previous 1.9 (colored)

(devel/MoarVM) Updated 2020.02.1 to 2020.05

New in 2020.05

+ [c59514234] Use the FSA for ConcBlockingQueue
+ [9294cbfcf] Use memcpy instead of strncpy
+ [bbb0cdbed,f03b23c63,12d572bb5,5863b0235] Fix some compiler warnings
+ [60a1a287e] Document cases where we know that no GC issues can appear
+ [070d0e66a] No longer MVMROOT MVMCompUnits as they are always allocated in gen2
+ [49ac793da,ad70770e1,e9baae8dc,a95e5ac32,845e8a3f1,a5e1fdd99,
   Fix numerous very rare but possible GC bugs
+ [4fbd2d0e2,57e798527,d4637c1a0,755309975,1fd9efae4,00def9fd9,
   Add a proof of concept of a GCC plugin for detecting GC invariant violations
+ [ab089e947] Align offsets in P6opaque.c
+ 233609b52f] Fix some Clang compiler warnings in the profiler
+ [dcbdb571a] Fix SEGV in MVM_spesh_plugin_guard_list_mark
+ [bb27aeb11] Don't null-terminate string when stringifying int
+ [6546027a1] Improve handling of errors in native callbacks
+ [bceb3398a] Use smaller buffer for native int to str coercion
+ [ca6534d20] Fix deadlock when trying to report an unsupported NativeCall return type
+ [1aa555fe1] Fix segfault caused by freed comp unit strings when profiling
+ [dbed72d76,b6bba6945,54ca9090f] Improve memory usage of utf8-c8 encoding
+ [1c392b4e4,3758e9a82,5c9510c32] Make profiling more stable, resolving potential panics
+ [4dc99b55d] Add more ops to be profiled for allocations
+ [6975a6595] Fix bogus test
+ [e7fee00d1] Include system headers after headers local to MoarVM in the Makefile
+ [ec53e4dfc] Give MVMSpeshAnn an "order" field to improve diagnostic output
+ [05c290522,0ce4cbe94] Let encode take a preallocated buffer
+ [1bd5f19e0] Fix a tiny mistake in containers implementation
+ [6baf0de4a] Add a value_desc_cont container descriptor, which brings the needs of Rakudo's Scalar into the VM
+ [4fb85a017] Add missing break statement
+ [3438ad2a4,19a7154cf] Fix lego JIT implementation of takenextdispatcher
+ [24f663cf5] Free malloced data before leaving the function
+ [21fa394a8] Remove remnants of the old mast compiler to fix memory leak
+ [035eae193] Fix interned callsites getting leaked when fixing up inlines
+ [768e6c2f3] Fix invalid reads when freeing native callback cache
+ 282989882d] Fix a leak in JIT compiler
+ [92f1935d7] Fix potential segfault when failing to compile JIT code
+ [ada1cadaa] Fix a leak in the spesh thread
+ [ae71ac80d] Fix NativeCall leaking sym_name on cleanup
+ [c82ff9d73] Destroy vectors that were previously init'ed
+ [09b88efb0] Free some memory calloc'ed when making spesh plans
+ [48da6b291] Implement calculation of unmanaged size for CArray
+ [edb6f8726] Free compunits loaded from bytecode upon dealloc
+ [15e94eecb] Bounds check codepoint passed to chr
+ [a6bc2a2a6] Add missing args spesh coercion validation
+ [f2a52cf5d] Make OSR work in frames from invokewithcapture
+ [162b68b6b,b77aa1622] JIT nextdispatcherfor
+ [f47f53110] Update libuv to version 1.35.0
+ [9a706ba08,12a447318] Improve

Revision 1.9 / (download) - annotate - [select for diffs], Sun Mar 8 15:47:54 2020 UTC (8 months, 3 weeks ago) by bsiegert
Branch: MAIN
CVS Tags: pkgsrc-2020Q2-base, pkgsrc-2020Q2, pkgsrc-2020Q1-base, pkgsrc-2020Q1
Changes since 1.8: +5 -5 lines
Diff to previous 1.8 (colored)

Update MoarVM to 2020.02.1.

No release notes available, only a very long changelog at

Revision 1.8 / (download) - annotate - [select for diffs], Thu Aug 22 22:33:15 2019 UTC (15 months, 1 week ago) by ast
Branch: MAIN
CVS Tags: pkgsrc-2019Q4-base, pkgsrc-2019Q4, pkgsrc-2019Q3-base, pkgsrc-2019Q3
Changes since 1.7: +5 -5 lines
Diff to previous 1.7 (colored)

Update rakudo, nqp, MoarVM to 2019.07.1

Revision 1.7 / (download) - annotate - [select for diffs], Sat Feb 16 19:32:12 2019 UTC (21 months, 2 weeks ago) by bsiegert
Branch: MAIN
CVS Tags: pkgsrc-2019Q2-base, pkgsrc-2019Q2, pkgsrc-2019Q1-base, pkgsrc-2019Q1
Changes since 1.6: +5 -5 lines
Diff to previous 1.6 (colored)

Update MoarVM to 2018.12.



  * [6788cab6] Fix repossessions that cause object size "changes"


  * [987269ea] Get readnum op working, try for 32-bit num support
  * [30088ed4] Fix memory leak of MVMFrameExtra
  * [1343702c] Fix segfault on {read,write}{uint,int} on a type object
  * [a8e63d2f] Sign extend values when reading less than 64 bit in readint
  * [8e078a2f] Improve handling of failure to join a thread, throw instead of
    handling and provide exception text instead of just the error code
  * [437d5b01] Fix big endian (read|write)u?int of < qword on big endian
  * [35ea9581] Fix bytestream ops from always converting to big endian if a
    switch is necessary
  * [1c3b0c93] Fix possibility of label id clash in bytecode compiler


  * [a50a9d0e] Use uv_os_gethostname instead of gethostname to ensure winsock
    is initialized on Windows
  * [a994f88d] Use larger buffer for gethostname when available
  * [1dc540f5] Reimplement async socket introspection
  * [05384f21] Add a cancel handler for filewatch tasks to prevent leaking
  * [7c5d93ef] STAT is already used by AIX, so rename to STAT_t. Fixes AIX
    compilation issues


  * [b8ba4707] Support endian switching in read{uint,int}
  * [73b079c3,b8ba4707 437d5b01 35ea9581 c32000ba 652b2f4a] Support endian
    switching in write{uint,int} and read{uint,int}, fix big endian
    {read,write}{uint,int} of < qword on big endian systems, use read_buf also
    when switching endianness
  * [c2952f9e] JIT compile coerce_sI op


  * [6455d1f6] Fix double free in platform/sys.c


  * [7d353030] Set callsite in frame for JIT spesh plugin resolve. Otherwise,
    we won't properly mark the args buffer which can lead to us processing
    outdated args
  * [0d5f389c] Don't dump "Facts" in "Before" part of spesh log
  * [c2640e1d] Discover type Facts of coerce_sI op


  * [4a7da329] Fix a case where the UTF-16 decoder would have a corrupted final
  * [fc495427] Use sys/machine.h on AIX systems in csiphash.h to fix
    compilation on AIX


  * [caf10703] Bring trace spesh optimizer GDB script up to date
  * [ef9e65ca] Make sure libatomicops build file is removed with make realclean
  * [7eb00c0b] Add missing libuv file to for AIX
  * [474b5264] Enable detection of 32 bit AIX systems in This
    allows the compiled program to use a large memory space



  * Rework the way bytecode is generated. Eliminate most of the MAST classes
    and allow us to compile bytecode without having to have everything in
    memory at the same time. The new compiler can walk the QAST tree and turn
    what used to be multile MAST objects into a single buffer. Now the QAST is
    turned into bytecode as directly as possible. This greatly decreases the
    maximum memory used for this operation.
  * [d590f25b] Ensure make realclean removes minilua binary
  * [9ef725d5] Always rebuild minilua to work around issue #999
  * [d721125d] Fix MVM_operand_type_mask in lib/MAST. The old mask was not
    extended when unsigned types were added.


  * [7ba02259] Correct named argument type tuple index calc. Fixes an
    out-of-bounds memory access. Resolves issue #996
  * [9f19fffa] Add new write_buf repr function to speed up write* ops


  * [dcb1dce9] JIT compile param_rp_u
  * [65db5b4d] Implement writeuint op
  * [f6fb4646] Make bytecode dumper more resilient against invalid bytecode


  * [43c5cd4a] Add mul exprjit op to documentation


  * [7a110b71] Add hllboolfor exprjit template
  * [9b2ab169] Add radix_I exprjit template
  * [0accc8ce] Add coerce_* exprjit templates
  * [5167d102] Add extend_{u,i}* exprjit templates
  * [0c2b13a2] Add exprjit integer multiplication op: mul_i
  * [d40bac9f] Use arithmetic right shift in JIT of brshift_i to ensure new
    bits are shifted to match the initial sign bit
  * [9468b7f7] Fix trunc to casting upwards
  * [e7a1330b] JIT compile coerce_us
  * [cfd6c966] Expr JIT template for sp_findmeth
  * [d6ad3117] Expr JIT compile serializetobuf
  * [40a4e375] Expr JIT compile unbox_u
  * [fbdb36d7] JIT compile unbox_u
  * [efff300c] JIT compile remaining extend and trunc ops: extend_{i8,u8,u32}
    and trunc_{i8,u8}
  * [39ded5fe] JIT compile decodertakeallchars
  * [64b44ea0] JIT compile writeint and writeuint
  * [2c4967d1] Teach the lego JIT about coerce_(iu|ui), extend_[ui]16, trunc_u


  * [6dfa5043] Implement readint, readuint and readnum ops
  * [231cd1a1] New serializetobuf op for assisting bytecode assembly in NQP
  * [07464ae3] Add a writedouble op
  * [311e2683] Add the buffertocu op


  * [6ff60a3b] Fix "pointer cast size mismatch" warnings on 32-bit arch's to
    resolve issue #444
  * [7aa9500e] Keep track of nativecallcast invokes
  * [cd4f98af] Split "cleared bytes" into managed/unmanaged to prevent
  * [add43502] Log parent thread id on thread creation
  * [acb5000b] call node's first entry time should be relative
  * [543f53aa,3eadf765 acb5000b] Expose first entry and start time in profiler


  * [c933b516] Free spesh log entries after consuming them. Reduces memory
  * [6236eb5d] Fix a segfault that could occur due to missing Facts
  * [25e7fa48] Teach spesh about known values for PHI nodes
  * [a74af558] output known type's debugname in spesh log
  * [950fb0e1] Unblock optimizing the box_* into a fastbox. Allow box_i to go
    through int cache.
  * [d8065362] decont on nativeref shall become decont_* + box_* to more easily
    get rid of a native ref taking instruction.


  * [c0799ec1] Include system library paths in if configured to
    use them to fix issue #1000
  * [c130b7cd] Add a --nodelay flag to



  * [8501e2e8] Fix off-by-one in multi cache spesh lookup, fixing an issue
    resolving multi's with named arguments
  * [d66206d0] [ConcBlockingQueue] Implement unshift, enabling queue users to
    'jump the line'
  * [a7fa9e6b] save 16 bytes in MVMStaticFrameBody by rearranging struct order
  * [c3527467] Lower unbox of P6[int|num|str]
  * [429139ed,c3527467] Box lowering for P6[int|num|str] to improve NQP
  * [0c7483b3] Lower box_[ns] with P6opaque removing C call, indirections and


  * [5e1b2554] Optimize bool_I to sp_bool_I
  * [49f1c7bd] Lower add_I, sub_I, and mul_I where possible
  * [663fa2ca] Mark [sp_]speshresolve as :invokish


  * [fcceaabf] Update JIT docs to include new ops


  * [9e90cdd6] Don't set ref'd from gen2 flag during GC
  * [2b09f6ec] Immediately promote objects ref'd from gen2 to speed up the
    usage of large or long lived data structures


  * [e1eb9af3] Implement async socket introspection functions
  * [a5dd7652] Remove per-thread libuv loop object, which was being used but


  * [32a47383] Fix bug causing sleep op to receive bogus values. Was visible in
    Rakudo when ThreadPoolSchedular was in use, causing high cpu usage even
    when doing nothing
  * [95d22798] Update work in the new Spesh log
  * [58e5161e] Fix legacy JIT of strfromname
  * [8c2dd3ad] Be more silent about internal failures
  * [adef0806] Remove MVM_JIT_BYTECODE_DIR and add MVM_JIT_DUMP_BYTECODE which
    dumps bytecode to /tmp/
  * [80b18871] Remove JIT log file and log to the Spesh log instead
  * [9a1cc175,8c2dd3ad] Make DynASM link errors and JIT unable to get rx pages
    print to STDERR when Spesh log turned on
  * [0554add8] Implement a perf map file on Linux with new environment variable


  * [8f6b2ac8] Make big Int stringification 1.58x as fast for Ints larger than
    2γα¶βΆ² (base 10)
  * [ad3a80cb] Fix coredump with mul_I -> div_I ops


  * [abb5c69b] Implement fork op


  * [4666ff43] Make heap snapshot profiler functional again
  * [597ccb09] Pass on type tuple when inlining unspecialized
  * [1500090a] Optimize ifnonnull branches out if we can determine which way
    they branch
  * [5103e9f8] Simplify/improve optimization of decont
  * [196fa224] Optimize eqaddr into a constant if possible
  * [b2d27cbe] Tear down spesh worker in full_cleanup
  * [8aaf696a] Fix SSA handling of inlinees with multiple return
  * [7ae914b6] Fix and tidy up hllbool specializations
  * [ab2d58eb] Add MVM_spesh_graph_add_comment() allowing to insert arbitrary
    strings into spesh log
  * [50c76e21] Subtract nested inlinees when checking inline size
  * [6147e0e5] Clear up and start improving box optimization
  * [7f0d5327] Fix spesh dump for when inline entirely vanishes
  * [a4b4d837] Optimize "hot" wval lookup into spesh slot access


  * [95d7e63c] Update Unicode Collation data to UCA 11.0
  * [41425c81] Update Unicode data to version 11.0, update grapheme break rules
    for 11.0 changes



  * [6edaac44] Add true_value and false_value to HLL config for future hllbool


  * [156b5bc3] Clarify a few things in bytecode specification
  * [e17a53b8] Update the release guide a bit


  * [ccf3dd37] Fix alignment of nursery allocations. Fixes segfaults on armhf


  * [51f2db57] Add support in write_fhb op for writing 16 bit VM arrays to a


  * [848f74e3] Add exprjit macros for register type constants
  * [18cb687c] Add ^zero/^one exprjit macros for 0 and 1 integers
  * [398f073b] Add param_sp and hasunipropc exprjit templates
  * [9e0237ed] Add binddynlex exprjit template
  * [3c10d230] Add getarg_* exprjit templates
  * [af6353d3] Add bindlex_n* exprjit templates
  * [9ed59041] Add reprname exprjit template
  * [f43ab19e] Add objprim{bits,unsigned} exprjit templates
  * [722f0939] Add down-cast operations to cast_unsigned_load_addr
  * [891d5c02] Implement truncation via unsigned cast for expr JIT
  * [ef474331] Teach the lego JIT to compile hllbool
  * [c1c2b7e3,c1c2b7e3] JIT compile hllboolfor, hllboolfor
  * [756a97d1] JIT compile hllbool
  * [37a2cd36] Increase array size of args on MVMJitTile struct
  * [9bef425a] Add objprimspec exprjit template
  * [9590c483] Implement cast_load_addr tile for exprjit
  * [6556de6d] Make minor JIT doc changes
  * [17365037] Add a macro for decoder_ensure_decoder and templates for decoder
    <addbytes takebytes takeline empty>
  * [f71f55cf] JIT decoder(empty|takebytes)
  * [c1b7b549] Add paramnamesused exprjit template
  * [f5928803] Add getpid and hintfor exprjit templates
  * [8a70d24d] Add ctx exprjit template
  * [14f6956c] Add existspos exprjit template
  * [77d75210][14f6956c][8a70d24d][f5928803][c1b7b549][9bef425a][f43ab19e]
    [9ed59041][af6353d3][3c10d230][9e0237ed][398f073b] Add unshift_*,
    existspos, ctx, getpid, hintfor, paramnamesused, objprimspec, objprim
    {bits,unsigned}, reprname, bindlex_n*, getarg_*, binddynlex, param_sp and
    hasunipropc exprjit templates
  * [1d4bd3ec] Bind 'let:' declarations eagerly in expr JIT compiler
  * [dc1cc51b] Tighten scope rules for expr JIT compiler
  * [e4542ee1] New template compiler, Single-pass compilation, Better type and
    format checking, a few syntax changes
  * [7567696e] Pass MVMRegister to lexical-binding function for exprjit. This
    accommodates the exprjit templates and allows us to the pass the value
    instead of a pointer.


  * [73e2f53d] Update libuv to 1.23.0


  * [954bdf88] New hllbool and hllboolfor ops


  * [3abd2888] Throw error on failure in decodelocaltime
  * [a8dfd479] Fix on decodelocaltime on Windows


  * [bcbe9b20] Pass an array with information on types to profiler


  * [24860d4c] Let spesh discover the type of hllbool[for]
  * [7c5740fb] Teach spesh to replace hllboolfor by the result for known values
  * [ee0004bf] Teach spesh to replace hllbool by the result for known values
  * [2fb3265a] Fix segfault of native subs with more than 8 arguments
  * [c49fc88a] Fix rw args of JITed calls to JITed native calls
  * [96b88eba] Leak fixes in Spash
  * [b217a115] Destroy inlinee after inlining


  * [3e94a68f] Pass through BOM with utf16le and utf16be
  * [ff750504] Make sure MVM_string_utf16le/be_decodestream are predeclared
  * [ad12d8e4] Fix some bugs with utf16* decodestream get_chars, and retain
  * [792cdd58,ad12d8e4 ff750504 3e94a68f] Add support for utf16le and utf16be
    to decodestream. utf16le and utf16be do not expect a byte order marker and
    will pass them through as Zero Width Non-Break Space per UTF16 spec
  * [ddde0950] Add encode support for utf16le and utf16be
  * [b162c7c4] Add utf16le and utf16be encoding types and implement for buffer
  * [578c2f76] Add support for utf-16 to decodestream
  * [f06c695a] Make Unicode Block name lookup work for unassigned cp's


  * [652056de] Fix use-after-free in cleanup



  * [d4d8ff41] Mark functions used in Perl 6 extops MVM_PUBLIC
  * [4199a956] Enable gc_free of MVMContext
  * [e1df3411] Speedup VMArray zero_slots by using memset instead of a loop
  * [46c08a0e] Fix memory leak in CArray given P6 Str's
  * [ac3d3c76] Fix alignment/mem issue of inlined CArrays
  * [919e78ab] Fix race in setting the type debug name


  * [a24033eb] Make coerce_is/us 2x faster by not using snprintf and using
    dedicated integer to string code


  * [73d646c6,210d27ff] Remove outdated mentions of Parrot
  * [411f73fd] [Docs] Add JIT documentation describing how to add a tile
  * [9647c1c4] ExprJIT: Document the conditional dependency check


  * [8a7da04a] Update garbage collection documentation


  * [e766345d] Speed up hash garbage collection by optimizing its gc_mark();
    add new macros
  * [8ac13c29] Optimize VMArray_gc_mark to be a bit faster
  * [7bf4c429] Optimize SCRef_gc_mark by using faster MVM_gc_worklist_add calls
  * [3e91dc62] Fix MVM_GC_DEBUG worklist check for NULL STable
  * [2f36e266] Add branch hint macros to nursery allocation
  * [62a99bcf] Fix segfaults caused by sharing of jitcode in nativeCall repr


  * [4fa8c855,940c02be,df6271af,b2c8d3ff,2194358c,50262e3c,3da1e5fb] Refactor
    context traversal to better support inlining


  * [febffaa2] Expose file descriptors of IO::Socket::INET instances
  * [2e946881] Expose listening host and port in asyncsocket_listen


  * [2249d688] Move lexprimspec to proper emitter getrusage, threadlockcount
  * [9b2008a0] Add exprjit macro to retrieve fields from instance
  * [bc9627ba] Add exprjit macro to determine if vmnull
  * [70624742,33c5840c] Re-add getlexstatic_o and getlex_no exprjit templates
    with minor changes
  * [c3ef58e1] Change ^getf to load in getlexstatic_o template so it only uses
    a single load instruction
  * [0b7f26ce,1ab3b189] JIT-compile sp_speshresolve, JIT neg_I and abs_I
  * [1fe14d3c,bd8361e2] Define ARG5 and ARG6 on Windows since it only has 4
    arguments to functions in general purpose registers
  * [ef41080c] Use '^addrf' macro for setf, getf
  * [8b522291] Remove 'unsafe' templates already in core_templates, these
    templates have working exprjit versions
  * [e242dc8f] Fix unicmp_s expr jit args
  * [7bcef24f] Move label assignment to tiler
  * [922befb2] Move exprjit oplist parser into a module
  * [9b44d481] JIT strfromname in the legacy JIT
  * [30781708] Fix JIT compiled getarg_* reading the wrong register
  * [d19c6608] Unbreak build on architectures where we don't support JIT
  * [14bdaea4] Use reference counting for maintaining multiple code copies
  * [various] Add expr templates for eqatic_s, eqatim_s, ordbaseat, uc, lc, tc,
    split, join, getcp_s, indexcp_s, index_s, graphs_s, codes_s, substr_s,
    ordat, chr, getenvhash, backendconfig coerce_si, equaticim_s, unicmp_s,
    indexicim_s, getstrfromname, indexic_s, isinvokable, getlexreldyn,
    objprimunsigned, scgethandle, scobjcount, setobjsc, getcodename,
    captureposarg_i, captureposarg_n, captureposarg_s, knowhow, unbox_s,
    getuniname, ordfirst, repeat_s, haveat_s, getcpbyname, unipropcode,
    unipvalcode, hasuniprop, getuniprop_{int,bool,str}, nativecallbuild,
    nativecallinvoke, nativecallrefresh, threadrun, threadid, threadyield,
    currentthread, lock, unlock, timer, matchuniprop, iscont_i, iscont_n,
    iscont_s, flip, rindexfrom, atpos_n, atpos_s, atkey_i/n/s/u coerce_iu/ui
    decont_u, rand_i, setwho, boot*, iscont, chars, escape, getcodeobj,
    iscoderef, setbuffersize_fh, iscclass, findcclass, findnotcclass,
    nfafromstatelist, nfarunproto, nfarunalt, radix, encode, decode, istrue_s,
    isfalse_s, hlllist, hllhash, settypehll*, hllizefor, exception, newtype
    composetype, bindex*, getex*, backtracestrings, capture, multicache
    setdispatcher, sha1, sc, iscompunit, isnonnull, cancel, signal, watchfile,
    execname, isinvokable, isrwcont, async, asynclisten, getlex_n{i,n,s},
    ctxcallerskipthunks, add_I, fc, encoderep, istty_fh, getport_sk,
    encode*conf, decode*conf, getppid, setdispatcherfor, param_rp_i,
    {add,sub,mul,div,mod}I, {cmp,eq,ne,lt,le,gt,ge}I, {pow,gcd,lcm}I, isprimeI,
    rand_I, expmod_I, bor_I, bxor_I, band_I, bnot_I, blshift_I, brshift_I,
    {isbig,bool,base}I, get*hllsym, print, nullptr, findmeth, cans, connect_sk,
    socket, bind_sk, accept_sk, tell_fh, stat, lstat, getlex{outer,caller}, bit


  * [353940a8,e9b1b73b] Get rid of many unneeded of mallocs in coerce_sI and


  * [f1256790,02bddce8] Add a negated object literal spesh plugin guard and JIT
    the object non-match guard
  * [1ed8c64c] Add sp_speshresolve op
  * [ec4c63e0] Mark speshresolve as :noinline
  * [9d4681af] Rename getstrfromname to strfromname


  * [e783f567] Unbreak update-changelog.p6 and use new Git::Log module


  * [69e2a388] Add a few missing allocating ops to profiler


  * [a75090c6] Lessen the number of spesh threshold levels
  * [b3ce4f6d] Eliminate object non-match guard in many cases
  * [20d44791] Fix guard evaluator attribute handling
  * [9745f921] Add facts to attributes in spesh plugin guards
  * [af455397] Refactor inline logging and detect missed inlines
  * [fa471f1d] Have fact discovery determine usage counts
  * [f59335ea] Attempt inlining so-far unspecialized callees
  * [24d3b5bf,155f1dfb] Fix dump of inlined spesh line/file annotations, update
    deopt logging
  * [5ef61a76] When inlining unspecialized, set arg type facts
  * [4373eecd] Store deopt usage separate from normal usage
  * [caef82f1] Correctly update OSR deopt index upon inlining
  * [26a91852] Mark deopt use of the write of a deopt instruction
  * [3df2ff91] Switch usage handling to new use chain model
  * [f8c4648f] Allow hllboxtype_* across hll in inlines by not using :useshll
    for the ops
  * [3727d18b] Implement box/unbox elimination
  * [13718793] Delete void return instruction when inlining
  * [6e7b215e] Update all of the guard insertion to use the new SSA versioned
  * [1a22aaa4] Copy facts when splitting SSA versions
  * [1347a94d] Output name and cuuid in spesh slots for code object in Spesh
  * [37b7c7b7] Discover facts about a bunch of sp_guard ops
  * [0daf99bc] Fix inlining of things with multiple return's
  * [da9123a7] Only mark stolen_deopt_ann_used if it is, to prevent a potential


  * [3ea8f68d] Use Fibonacci hashing to determine which bucket's to put hash
    value's into
  * [9f005086] Used fixed size allocator for hashes. Nice speedup for table
  * [6646038f] Factor out our hashing function and speed up hashing for flat
  * [0eb25300] Make parse_simple_number impossible to reach end without
  * [3ef2acf0] Hash: randomize insertion order and bucket iteration order
  * [0e110820] Make a faster HASH_ITER macro and make other hash optimizations
  * [e94d3dfd] Remove previous hash handle pointers in hash implementation
  * [d9a3270a] Implement SipHash, use as our hashing function w/ 64bit hashvals
  * [39a2e71b] Optimize uthash ptr delete code
  * [c5686559] Check if bucket is correct in HASH_FSCK
  * [e3e1d0d0] Use sized types for uthash (instead of using unsigned
  * [448e75bd] Get the number of bytes to be processed from the current buffer
    and not from the header in MVM_string_utf8_c8_decodestream()
  * [4ec15fc5] Increase the result buffer size for
  * [829b8ee7] Fix a regression with grapheme segmentation when multiple
    regional indicators are in the same string


  * [abf7d0c2] Use clang with OpenBSD since their ancient gcc creates a moar
    which can't generate NQP anymore.
  * [821cfd52] Fix tools/ on *BSD
  * [888e1cf0] Add script to generate html documentation from docs
  * [33363d32] Make tools/ scripts executable and add shebangs
  * [ecff5b47] Fix NetBSD build failure by adding a missing .h suffix in build/
  * [3bf120a1] Fix version detection in some instances
  * [9601ac45] Don't store owner or group in our release's tar archive
  * [5bfad12b] Make update-changelog.p6 interactive

Revision 1.6 / (download) - annotate - [select for diffs], Mon Oct 8 16:54:28 2018 UTC (2 years, 1 month ago) by maya
Branch: MAIN
CVS Tags: pkgsrc-2018Q4-base, pkgsrc-2018Q4
Changes since 1.5: +5 -5 lines
Diff to previous 1.5 (colored)

Update rakudo, nqp, MoarVM to 2018.06

Bumping required because the reporter mentions having
to do this because of a time-consuming incompatibility in p6-zip.
Unclear if the packages are independent, so updating together.

No changelog found.

From tomasz motyl in PR pkg/53663

Revision 1.5 / (download) - annotate - [select for diffs], Tue Sep 26 14:35:46 2017 UTC (3 years, 2 months ago) by mspo
Branch: MAIN
CVS Tags: pkgsrc-2018Q3-base, pkgsrc-2018Q3, pkgsrc-2018Q2-base, pkgsrc-2018Q2, pkgsrc-2018Q1-base, pkgsrc-2018Q1, pkgsrc-2017Q4-base, pkgsrc-2017Q4
Changes since 1.4: +5 -6 lines
Diff to previous 1.4 (colored)

Update MoarVM to monthly release 2017.09.1 (.1 is a quick patch)

see for notes

Revision 1.4 / (download) - annotate - [select for diffs], Sat Sep 16 19:09:53 2017 UTC (3 years, 2 months ago) by bsiegert
Branch: MAIN
CVS Tags: pkgsrc-2017Q3-base, pkgsrc-2017Q3
Changes since 1.3: +5 -5 lines
Diff to previous 1.3 (colored)

Update MoarVM to 2017.07.

This is needed for the current wip/nqp and wip/rakudo.

Full Unicode 9.0 and Emoji 4.0 text segmentation support.
Faster normalization, string indexing, and string concatenation.
Collation improvements, including support for reversing any of the levels.
Optional output buffering on file handles.
Numerous tweaks to dynamic optimization and JIT compilation to improve code
quality, with a focus on Perl 6 I/O code.
Asynchronous process handling improvements, including support for retrieving
and plumbing together processes at the file descriptor level.
And numerous other fixes and enhancements.

Revision 1.3 / (download) - annotate - [select for diffs], Tue Jun 20 19:06:42 2017 UTC (3 years, 5 months ago) by bsiegert
Branch: MAIN
CVS Tags: pkgsrc-2017Q2-base, pkgsrc-2017Q2
Changes since 1.2: +5 -5 lines
Diff to previous 1.2 (colored)

Update MoarVM to 2017.06. Bump API_DEPENDS too, as functions have been


- 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
- 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
- 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
- Set dead writer when deleting instructions also, to further aid PHI
- 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


- 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
- 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


- 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
- 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
- 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
- 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
- First prototype of a per-line coverage reporter, enabled by setting
- 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
- 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
- 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
- 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


- Fix some missing variable initializations
- Set effective_handlers in context-only frame
- Streamline code in hash computation, hopefully fixing a Coverity
- Detect and throw on over-size array
- Put in a limit for codepoints in a grapheme, to avoid various
- 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
- 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
- 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


- 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
- 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
- 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

Revision 1.2 / (download) - annotate - [select for diffs], Sun Feb 5 12:36:59 2017 UTC (3 years, 9 months ago) by bsiegert
Branch: MAIN
CVS Tags: pkgsrc-2017Q1-base, pkgsrc-2017Q1
Changes since 1.1: +6 -6 lines
Diff to previous 1.1 (colored)

Update MoarVM to 2017.01.

- 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

- 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

- 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 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

- 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
- 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

- 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
- Avoid use of possibly-invalidated decont facts in spesh
- Remove keep_caller from MVMFrame
- Correctly NULL-terminate the buffer in MVM_vm_dump_file

- 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
- 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

- 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

- 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

- 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
- 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

- 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 ./
- 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
- 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 missing cleanup of managed DecodeStream
- Have DecodeStrem clean leftover char buffers
- Fix a typo in decode stream destroy function

Revision 1.1 / (download) - annotate - [select for diffs], Fri Apr 8 20:26:46 2016 UTC (4 years, 7 months ago) by bsiegert
Branch: MAIN
CVS Tags: pkgsrc-2016Q4-base, pkgsrc-2016Q4, pkgsrc-2016Q3-base, pkgsrc-2016Q3, pkgsrc-2016Q2-base, pkgsrc-2016Q2

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

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

CVSweb <>