11 commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
bsiegert
|
b248dbbdf3 | MoarVM: Bump API depends in buildlink3. | ||
bsiegert
|
b85f629220 |
Update MoarVM to 2018.12.
2018.12 6model: * [6788cab6] Fix repossessions that cause object size "changes" Core: * [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 systems * [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 IO: * [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 filehandles * [7c5d93ef] STAT is already used by AIX, so rename to STAT_t. Fixes AIX compilation issues JIT: * [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 Platform: * [6455d1f6] Fix double free in platform/sys.c Spesh: * [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 Strings: * [4a7da329] Fix a case where the UTF-16 decoder would have a corrupted final codepoint * [fc495427] Use sys/machine.h on AIX systems in csiphash.h to fix compilation on AIX Tooling/Build: * [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 Makefile.in for AIX * [474b5264] Enable detection of 32 bit AIX systems in Configure.pl. This allows the compiled program to use a large memory space 2018.11 Other: * 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. 6model: * [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 Core: * [dcb1dce9] JIT compile param_rp_u * [65db5b4d] Implement writeuint op * [f6fb4646] Make bytecode dumper more resilient against invalid bytecode Docs: * [43c5cd4a] Add mul exprjit op to documentation JIT: * [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 (16|32) Ops: * [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 Profiler: * [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 underflow * [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 data Spesh: * [c933b516] Free spesh log entries after consuming them. Reduces memory usage * [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. Tooling/Build: * [c0799ec1] Include system library paths in Configure.pl if configured to use them to fix issue #1000 * [c130b7cd] Add a --nodelay flag to jit-bisect.pl 2018.10 6model: * [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 performance * [0c7483b3] Lower box_[ns] with P6opaque removing C call, indirections and checks Core: * [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 Docs: * [fcceaabf] Update JIT docs to include new ops GC: * [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 IO: * [e1eb9af3] Implement async socket introspection functions * [a5dd7652] Remove per-thread libuv loop object, which was being used but unneeded JIT: * [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 jit-bisect.pl 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 MVM_JIT_PERF_MAP Math: * [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 Ops: * [abb5c69b] Implement fork op Spesh: * [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 Strings: * [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 2018.09 Core: * [6edaac44] Add true_value and false_value to HLL config for future hllbool op Documentation: * [156b5bc3] Clarify a few things in bytecode specification * [e17a53b8] Update the release guide a bit GC: * [ccf3dd37] Fix alignment of nursery allocations. Fixes segfaults on armhf IO: * [51f2db57] Add support in write_fhb op for writing 16 bit VM arrays to a filehandle JIT: * [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. Libraries: * [73e2f53d] Update libuv to 1.23.0 Ops: * [954bdf88] New hllbool and hllboolfor ops Platform: * [3abd2888] Throw error on failure in decodelocaltime * [a8dfd479] Fix on decodelocaltime on Windows Profiler: * [bcbe9b20] Pass an array with information on types to profiler Spesh: * [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 Strings: * [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 state * [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 decode * [578c2f76] Add support for utf-16 to decodestream * [f06c695a] Make Unicode Block name lookup work for unassigned cp's Misc: * [652056de] Fix use-after-free in cleanup 2018.08 6model: * [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 Core: * [a24033eb] Make coerce_is/us 2x faster by not using snprintf and using dedicated integer to string code Docs: * [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 Documentation: * [8a7da04a] Update garbage collection documentation GC: * [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 General: * [4fa8c855,940c02be,df6271af,b2c8d3ff,2194358c,50262e3c,3da1e5fb] Refactor context traversal to better support inlining IO: * [febffaa2] Expose file descriptors of IO::Socket::INET instances * [2e946881] Expose listening host and port in asyncsocket_listen JIT: * [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 compilation * [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 {and,or,xor}_s, Math: * [353940a8,e9b1b73b] Get rid of many unneeded of mallocs in coerce_sI and MVM_bigint_to_str() Ops: * [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 Other: * [e783f567] Unbreak update-changelog.p6 and use new Git::Log module Profiler: * [69e2a388] Add a few missing allocating ops to profiler Spesh: * [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 guards * [1a22aaa4] Copy facts when splitting SSA versions * [1347a94d] Output name and cuuid in spesh slots for code object in Spesh dump * [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 crash Strings: * [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 expansion * [6646038f] Factor out our hashing function and speed up hashing for flat strings * [0eb25300] Make parse_simple_number impossible to reach end without returning * [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 everywhere) * [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 MVM_string_utf8_c8_decodestream() * [829b8ee7] Fix a regression with grapheme segmentation when multiple regional indicators are in the same string Tooling/Build: * [abf7d0c2] Use clang with OpenBSD since their ancient gcc creates a moar which can't generate NQP anymore. * [821cfd52] Fix tools/compare-oplist-interp-order.sh 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/ Makefile.in * [3bf120a1] Fix Configure.pl version detection in some instances * [9601ac45] Don't store owner or group in our release's tar archive * [5bfad12b] Make update-changelog.p6 interactive |
||
maya
|
f2ae4c6114 |
Update rakudo, nqp, MoarVM to 2018.06
Bumping buildlink3.mk 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 |
||
wiz
|
9bd737fe76 | Recursive bump for perl5-5.28.0 | ||
mspo
|
1b61b78970 |
Update MoarVM to monthly release 2017.09.1 (.1 is a quick patch)
see https://www.moarvm.org/releases.html for notes |
||
bsiegert
|
ec4c674ee2 |
MoarVM uses an executable stack.
Mark as not PaX MPROTECT safe. |
||
bsiegert
|
478fc5f2d8 |
Update MoarVM to 2017.07.
This is needed for the current wip/nqp and wip/rakudo. Changes: 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. |
||
bsiegert
|
9f01ad8b38 |
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 |
||
bsiegert
|
42d90dd977 |
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 |
||
wiz
|
2b0a009d0e | Bump PKGREVISION for perl-5.24.0 for everything mentioning perl. | ||
bsiegert
|
fc0e343380 |
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 |