pkgsrc/devel/MoarVM/PLIST

180 lines
5.5 KiB
Text
Raw Normal View History

@comment $NetBSD: PLIST,v 1.5 2017/09/26 14:35:46 mspo Exp $
bin/moar
include/moar/6model/6model.h
include/moar/6model/bootstrap.h
include/moar/6model/containers.h
include/moar/6model/parametric.h
include/moar/6model/reprconv.h
include/moar/6model/reprs.h
include/moar/6model/reprs/CArray.h
include/moar/6model/reprs/CPPStruct.h
include/moar/6model/reprs/CPointer.h
include/moar/6model/reprs/CStr.h
include/moar/6model/reprs/CStruct.h
include/moar/6model/reprs/CUnion.h
include/moar/6model/reprs/ConcBlockingQueue.h
include/moar/6model/reprs/ConditionVariable.h
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
2017-02-05 13:36:59 +01:00
include/moar/6model/reprs/Decoder.h
include/moar/6model/reprs/HashAttrStore.h
include/moar/6model/reprs/KnowHOWAttributeREPR.h
include/moar/6model/reprs/KnowHOWREPR.h
include/moar/6model/reprs/MVMAsyncTask.h
include/moar/6model/reprs/MVMCFunction.h
include/moar/6model/reprs/MVMCallCapture.h
include/moar/6model/reprs/MVMCode.h
include/moar/6model/reprs/MVMCompUnit.h
include/moar/6model/reprs/MVMContext.h
include/moar/6model/reprs/MVMContinuation.h
include/moar/6model/reprs/MVMDLLSym.h
include/moar/6model/reprs/MVMException.h
include/moar/6model/reprs/MVMHash.h
include/moar/6model/reprs/MVMIter.h
include/moar/6model/reprs/MVMMultiCache.h
include/moar/6model/reprs/MVMNull.h
include/moar/6model/reprs/MVMOSHandle.h
include/moar/6model/reprs/MVMSpeshLog.h
include/moar/6model/reprs/MVMStaticFrame.h
include/moar/6model/reprs/MVMStaticFrameSpesh.h
include/moar/6model/reprs/MVMString.h
include/moar/6model/reprs/MVMThread.h
include/moar/6model/reprs/MultiDimArray.h
include/moar/6model/reprs/NFA.h
include/moar/6model/reprs/NativeCall.h
include/moar/6model/reprs/NativeRef.h
include/moar/6model/reprs/P6bigint.h
include/moar/6model/reprs/P6int.h
include/moar/6model/reprs/P6num.h
include/moar/6model/reprs/P6opaque.h
include/moar/6model/reprs/P6str.h
include/moar/6model/reprs/ReentrantMutex.h
include/moar/6model/reprs/SCRef.h
include/moar/6model/reprs/Semaphore.h
include/moar/6model/reprs/Uninstantiable.h
Update MoarVM to 2017.06. Bump API_DEPENDS too, as functions have been removed. 2017.06 - Make coerce_s_n work more like the Perl 6 Str.Num method - Eliminate socket string I/O - Re-implement synchronous sockets without using libuv, enabling them to be passed between threads - Add ability to get port from already bind-ed socket - Add cpucores op to get the number of CPU cores - Fix inconsistency in decode stream take bytes API, so it returns null if that number of bytes is not available - Fix memory leak in syncpipe - Removed unsed header file in threads.c - Remove unused args to bind_stdio_handle - Remove char-level I/O ops and the functions they called - Remove char-level I/O from synchronous I/O vtables - Remove unused encoding option in dir handle - Re-implement print/say debug output ops to encode and then use binary I/O - Eliminate use of libuv in synchronous file handles - Switch standard handles to use the new synchronous file handle code, which means they can now be safely used from multiple threads also - Remove unused ->filename slot of syncfile - Debugging aid for introspecting P6opaque objects - Support merge_bytes in async proc ops, for reading STDOUT and STDERR together - Support binding handles to file descriptors in async procs - Fix off-by-one in profiler node GC - Add string eqat/index ignorecase+ignoremark functions - Add new eqaticim_s and indexicim_s ops ignorecase+ignoremark - Use norm instead of n for the normalizer variable - Add improved support for GCB=Prepend - Improve Regional Indicators support during normalization - Serialize a Decoder REPR object into null, so incidental file handle serialization in Perl 6 does not blow up - Improve named argument optimization, so we can specialize and throw out instructions in more cases - JIT decodertakeline - Fix missed opportunity to run JITted code - Have inline log note what couldn't inline also - Remove successor when optional named argument is passed, so default code can be eliminated - Flag writers that die when a basic block is eliminated, and disregard them in PHI node analysis, provide more precise type information - Make a basic block elimination pre-pass before the main optimization work - Set dead writer when deleting instructions also, to further aid PHI merges - Track which basic blocks are part of a jump list - Delete pointless goto instructions (those at the end of a basic block that simply go to the next block) - Remove bad Windows quoting option async proc code - Actually log inlines to stderr as the comment up top claims - Make find_separator only look at the last chars, which is far cheaper - Add help text for environment variables to Configure - Move NFG initialization into nfg.c - Cache CRLF grapheme value - Cache maximum separator length, to save recomputing it for every line that is read - Cache a list of final separator graphemes, for faster stopper detection in streaming decoders - Introduce a max final grapheme codepoint filter, for faster stopper detection in streaming decoders - Add a UTF-8 decoding fast-path that doesn't need to go through the full normalizer - Keep last freed chars buffer handy for re-use in streaming decoder - Make a smarter guess at decode result buffer size in streaming decoder - Don't copy when we can steal decoder output, saving a memory copy in most line reading operations - Various micro-optimizations to UTF-8 decoding fast path - Fix newline translation in various encoding's streaming decoder 2017.05 - Mark profiler call graphs iteratively instead of recursively - Keep around line number annotations in spesh, for more accurate source position information for coverage data in specialized code - Introduce "telemeh", a high-precision-time low-impact logger - Fix error reporting in chdir - Fix memory leak on error in chdir - Travis: readlink doesn't have `-f` on MacOS so make our own solution - Fix bug in index ignorecase and equal at ignorecase - Fix all known remaining bugs in indexic and eqatic - Zero slot when popping a VMArray, to avoid junk reads if it grows again later - Add can_fit_into_8bit funct, put logic used many places into one function - Use -1 instead of 0 when long right-shifting negative smallints - Remove workaround for tommath issue #56, which is now fixed upstream - Don't crash on reading a closed dir handle - Remove deprecated async string I/O ops 2017.04 - Shorten the nursery when creating large bigints, to bring GC forward and resolve excessive memory use - Use correct format for repeat/concat errors - Fix bug in indexic_s if expanding codepoint is the last codepoint - Special case "\r\n" in MVM_nfg_is_concat_stable for performance reasons - Further optimize MVM_nfg_is_concat_stable to speed up concatenation - Do not set use rpath if installing into proper system locations - Optimize passes_quickcheck_and_zero_ccc to be much faster - Give this_repr constants more meaningful names to aid debugging - Streamline MVM_bigint_radix and MVM_radix for Nd Unicode #'s - Fix case-insensitive string compare bug when synthetics are in the haystack - Improve description for "should eventually be unreachable" error - Correctly detect and handle overflow in mp_get_int64 - Split into mp_get_int64 and mp_get_uint64 - Only allocate and normalize for cp's that require it in MVM_string_chr, and short-circuit Unicode property test for codepoints below 0x300 - Provide a better error when failing to encode surrogates in UTF-8 - Add a cast to suppress a compiler warning in strings/ops.c - Factor out code from equal_at_ignore_case for use in index_ignore_case also - Use both hex and decimal for UTF8 encoding error messages - Add parentheses in various places to suppress compiler warnings - Use PRIu64 in fprintf's to fix compiler warning about incorrect types - Add a check that introspection->is_tty is not NULL, avoiding a crash - Mention debug_name in errors about uncomposed repr - Add new --coverage option for Configure.pl - First prototype of a per-line coverage reporter, enabled by setting MVM_COVERAGE_LOG - Cope with a native type with no nativesize, but signedness - Remove two functions in normalize.c that have been superseded - Give collapse_strands a 5.4% speed boost under some workloads - Add MVM_string_graphs_nocheck funct, use it in places we previously already checked - Have a two-part loop in collapse strands to make loop tighter when possible - Implement serialize/deserialize in VMHash REPR - Use memmem in string index. Uses Knuth-Morris-Pratt on glibc, and adds the FreeBSD memmem.c for use on Windows - Fix a join NFG bug when there was an empty string and an empty seperator - Reorder MVMStaticFrameBody to save 16 bytes according to pahole; similarly save 16 bytes in MVMCompUnitBody, 24 bytes in MVMJitCode, 8 bytes in MVMIOSyncStreamData, SerializationRoot and SerializationReader - Remove arbitrary and small length range check for reading bytes from a file - Remove unused defines in threadcontext.h - Greatly reduce contention in the fixed-size allocator for multi-threaded programs, giving up to 40% speedup in some cases - Add continuous coverage analysis to Travis builds, along with other Travis improvements - Mark thread GC blocked when doing synchronous writes - Add missing MVMROOT when reading bytes, which could result in occasional data loss 2017.03 - Fix some missing variable initializations - Set effective_handlers in context-only frame - Streamline code in hash computation, hopefully fixing a Coverity warning - Detect and throw on over-size array - Put in a limit for codepoints in a grapheme, to avoid various overflows - Fix a missing NULL check at end of profiling - Panic when a new thread context can't create an uv_loop - Better handling of out of memory when creating a thread - Another attempt at silencing the pthread_yield warnings - Missing GC block marking in event loop starting, fixing a deadlock - Fix CArray marshalling of type objects - Provide a way to put Decoder in nl-translate mode - Ensure Decoder REPR never sees concurrent use - Debug option to detect concurrent VMArray use - Encode strings as UTF-8 in MVM_unicode_string_from_name - Reword exception message for read() outside original thread - Check that results of repeat/concat fit in an MVMString - Fix div_i JIT round to negative infinity - Ignore SIGPIPE by default - Only start readers if a process spawned OK - Remove deprecated char-mode async proc reading - Signal error to stdout/stderr on spawn failure - Do gen2 sweep before letting stolen threads go, fixing occasional SEGVs - Turn libtommath dependency into a submodule, use a MoarVM fork - Update libtommath fork to have expmod hang fix - Change MVM_string_equal_at_ignore_case to use fc - Fix MVM_string_equal_at_ignore_case when folding the haystack changes length - Mention debug name and REPR name in "requires obj with repr X" errors - Remove unneeded variable in MVM_string_index - Add MVM_string_index_ignore_case function and indexic_s op - A range of improvements to the MoarVM GDB plug-in 2017.02 - Fix format strings that warn during compile - Implement missing cleanup of async task handles, fixing a memory leak - Make Unicode sequence and codepoint name lookup case-insensitive - Add Unicode sequences from NamedSequences.txt in the Unicode database - Remove second declaration of MVM_frame_destroy - JIT MVM_radix() - Make radix and radix_I 50% faster with Unicode Nd - Add East_Asian_Width prop - Fix memory leaks in synchronous sockets - Fix crashes in socket connect error handling - Don't leak memory in STable repossession - Missing MVMROOT around a lock acquisition - Refuse to form an NFA with a zeroed to-state - Add data section for JIT code, and use it for extop 'fake' registers - Correct typo in NFG trie node struct name - Fix overflow in div_i op - Implement support for synthetic graphemes in MVM_unicode_string_compare - Implement configurable collation_mode for MVM_unicode_string_compare - Use LDFLAGS in ld invocations - On Windows, create UTF-8 encoded argv upon program entry - On Windows, populate environment hash from Unicode environment - Some additional heuristics to cut down on cross-thread write log output - Fix abs_n op for negative zeros - Sort out semantics of closed async sockets - Fix overflow on 32-bit systems in is_full_collection() - Rename MVMArray file and constant to VMArray - Remove bogus indication that MoarVM builds on `cygwin` - Use utf8 for unicode_db files - Fix invalid read when GC was triggered in the string repeat op - Don't call MVM_string_graphs twice in indexing op, plus cleanup
2017-06-20 21:06:42 +02:00
include/moar/6model/reprs/VMArray.h
include/moar/6model/sc.h
include/moar/6model/serialization.h
include/moar/bithacks.h
include/moar/config.h
include/moar/core/alloc.h
include/moar/core/args.h
include/moar/core/bytecode.h
include/moar/core/bytecodedump.h
include/moar/core/callsite.h
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
2017-02-05 13:36:59 +01:00
include/moar/core/callstack.h
include/moar/core/coerce.h
include/moar/core/compunit.h
include/moar/core/continuation.h
include/moar/core/dll.h
include/moar/core/exceptions.h
include/moar/core/ext.h
include/moar/core/fixedsizealloc.h
include/moar/core/frame.h
include/moar/core/hll.h
include/moar/core/instance.h
include/moar/core/intcache.h
include/moar/core/interp.h
include/moar/core/loadbytecode.h
include/moar/core/nativecall.h
include/moar/core/nativecall_dyncall.h
include/moar/core/nativecall_libffi.h
include/moar/core/oplabels.h
include/moar/core/ops.h
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
2017-02-05 13:36:59 +01:00
include/moar/core/regionalloc.h
include/moar/core/threadcontext.h
include/moar/core/threads.h
include/moar/core/validation.h
include/moar/core/vector.h
include/moar/gc/allocation.h
include/moar/gc/collect.h
include/moar/gc/debug.h
include/moar/gc/finalize.h
include/moar/gc/gen2.h
include/moar/gc/objectid.h
include/moar/gc/orchestrate.h
include/moar/gc/roots.h
include/moar/gc/wb.h
include/moar/gc/worklist.h
include/moar/gcc_diag.h
include/moar/gen/config.h
include/moar/instrument/crossthreadwrite.h
Update MoarVM to 2017.06. Bump API_DEPENDS too, as functions have been removed. 2017.06 - Make coerce_s_n work more like the Perl 6 Str.Num method - Eliminate socket string I/O - Re-implement synchronous sockets without using libuv, enabling them to be passed between threads - Add ability to get port from already bind-ed socket - Add cpucores op to get the number of CPU cores - Fix inconsistency in decode stream take bytes API, so it returns null if that number of bytes is not available - Fix memory leak in syncpipe - Removed unsed header file in threads.c - Remove unused args to bind_stdio_handle - Remove char-level I/O ops and the functions they called - Remove char-level I/O from synchronous I/O vtables - Remove unused encoding option in dir handle - Re-implement print/say debug output ops to encode and then use binary I/O - Eliminate use of libuv in synchronous file handles - Switch standard handles to use the new synchronous file handle code, which means they can now be safely used from multiple threads also - Remove unused ->filename slot of syncfile - Debugging aid for introspecting P6opaque objects - Support merge_bytes in async proc ops, for reading STDOUT and STDERR together - Support binding handles to file descriptors in async procs - Fix off-by-one in profiler node GC - Add string eqat/index ignorecase+ignoremark functions - Add new eqaticim_s and indexicim_s ops ignorecase+ignoremark - Use norm instead of n for the normalizer variable - Add improved support for GCB=Prepend - Improve Regional Indicators support during normalization - Serialize a Decoder REPR object into null, so incidental file handle serialization in Perl 6 does not blow up - Improve named argument optimization, so we can specialize and throw out instructions in more cases - JIT decodertakeline - Fix missed opportunity to run JITted code - Have inline log note what couldn't inline also - Remove successor when optional named argument is passed, so default code can be eliminated - Flag writers that die when a basic block is eliminated, and disregard them in PHI node analysis, provide more precise type information - Make a basic block elimination pre-pass before the main optimization work - Set dead writer when deleting instructions also, to further aid PHI merges - Track which basic blocks are part of a jump list - Delete pointless goto instructions (those at the end of a basic block that simply go to the next block) - Remove bad Windows quoting option async proc code - Actually log inlines to stderr as the comment up top claims - Make find_separator only look at the last chars, which is far cheaper - Add help text for environment variables to Configure - Move NFG initialization into nfg.c - Cache CRLF grapheme value - Cache maximum separator length, to save recomputing it for every line that is read - Cache a list of final separator graphemes, for faster stopper detection in streaming decoders - Introduce a max final grapheme codepoint filter, for faster stopper detection in streaming decoders - Add a UTF-8 decoding fast-path that doesn't need to go through the full normalizer - Keep last freed chars buffer handy for re-use in streaming decoder - Make a smarter guess at decode result buffer size in streaming decoder - Don't copy when we can steal decoder output, saving a memory copy in most line reading operations - Various micro-optimizations to UTF-8 decoding fast path - Fix newline translation in various encoding's streaming decoder 2017.05 - Mark profiler call graphs iteratively instead of recursively - Keep around line number annotations in spesh, for more accurate source position information for coverage data in specialized code - Introduce "telemeh", a high-precision-time low-impact logger - Fix error reporting in chdir - Fix memory leak on error in chdir - Travis: readlink doesn't have `-f` on MacOS so make our own solution - Fix bug in index ignorecase and equal at ignorecase - Fix all known remaining bugs in indexic and eqatic - Zero slot when popping a VMArray, to avoid junk reads if it grows again later - Add can_fit_into_8bit funct, put logic used many places into one function - Use -1 instead of 0 when long right-shifting negative smallints - Remove workaround for tommath issue #56, which is now fixed upstream - Don't crash on reading a closed dir handle - Remove deprecated async string I/O ops 2017.04 - Shorten the nursery when creating large bigints, to bring GC forward and resolve excessive memory use - Use correct format for repeat/concat errors - Fix bug in indexic_s if expanding codepoint is the last codepoint - Special case "\r\n" in MVM_nfg_is_concat_stable for performance reasons - Further optimize MVM_nfg_is_concat_stable to speed up concatenation - Do not set use rpath if installing into proper system locations - Optimize passes_quickcheck_and_zero_ccc to be much faster - Give this_repr constants more meaningful names to aid debugging - Streamline MVM_bigint_radix and MVM_radix for Nd Unicode #'s - Fix case-insensitive string compare bug when synthetics are in the haystack - Improve description for "should eventually be unreachable" error - Correctly detect and handle overflow in mp_get_int64 - Split into mp_get_int64 and mp_get_uint64 - Only allocate and normalize for cp's that require it in MVM_string_chr, and short-circuit Unicode property test for codepoints below 0x300 - Provide a better error when failing to encode surrogates in UTF-8 - Add a cast to suppress a compiler warning in strings/ops.c - Factor out code from equal_at_ignore_case for use in index_ignore_case also - Use both hex and decimal for UTF8 encoding error messages - Add parentheses in various places to suppress compiler warnings - Use PRIu64 in fprintf's to fix compiler warning about incorrect types - Add a check that introspection->is_tty is not NULL, avoiding a crash - Mention debug_name in errors about uncomposed repr - Add new --coverage option for Configure.pl - First prototype of a per-line coverage reporter, enabled by setting MVM_COVERAGE_LOG - Cope with a native type with no nativesize, but signedness - Remove two functions in normalize.c that have been superseded - Give collapse_strands a 5.4% speed boost under some workloads - Add MVM_string_graphs_nocheck funct, use it in places we previously already checked - Have a two-part loop in collapse strands to make loop tighter when possible - Implement serialize/deserialize in VMHash REPR - Use memmem in string index. Uses Knuth-Morris-Pratt on glibc, and adds the FreeBSD memmem.c for use on Windows - Fix a join NFG bug when there was an empty string and an empty seperator - Reorder MVMStaticFrameBody to save 16 bytes according to pahole; similarly save 16 bytes in MVMCompUnitBody, 24 bytes in MVMJitCode, 8 bytes in MVMIOSyncStreamData, SerializationRoot and SerializationReader - Remove arbitrary and small length range check for reading bytes from a file - Remove unused defines in threadcontext.h - Greatly reduce contention in the fixed-size allocator for multi-threaded programs, giving up to 40% speedup in some cases - Add continuous coverage analysis to Travis builds, along with other Travis improvements - Mark thread GC blocked when doing synchronous writes - Add missing MVMROOT when reading bytes, which could result in occasional data loss 2017.03 - Fix some missing variable initializations - Set effective_handlers in context-only frame - Streamline code in hash computation, hopefully fixing a Coverity warning - Detect and throw on over-size array - Put in a limit for codepoints in a grapheme, to avoid various overflows - Fix a missing NULL check at end of profiling - Panic when a new thread context can't create an uv_loop - Better handling of out of memory when creating a thread - Another attempt at silencing the pthread_yield warnings - Missing GC block marking in event loop starting, fixing a deadlock - Fix CArray marshalling of type objects - Provide a way to put Decoder in nl-translate mode - Ensure Decoder REPR never sees concurrent use - Debug option to detect concurrent VMArray use - Encode strings as UTF-8 in MVM_unicode_string_from_name - Reword exception message for read() outside original thread - Check that results of repeat/concat fit in an MVMString - Fix div_i JIT round to negative infinity - Ignore SIGPIPE by default - Only start readers if a process spawned OK - Remove deprecated char-mode async proc reading - Signal error to stdout/stderr on spawn failure - Do gen2 sweep before letting stolen threads go, fixing occasional SEGVs - Turn libtommath dependency into a submodule, use a MoarVM fork - Update libtommath fork to have expmod hang fix - Change MVM_string_equal_at_ignore_case to use fc - Fix MVM_string_equal_at_ignore_case when folding the haystack changes length - Mention debug name and REPR name in "requires obj with repr X" errors - Remove unneeded variable in MVM_string_index - Add MVM_string_index_ignore_case function and indexic_s op - A range of improvements to the MoarVM GDB plug-in 2017.02 - Fix format strings that warn during compile - Implement missing cleanup of async task handles, fixing a memory leak - Make Unicode sequence and codepoint name lookup case-insensitive - Add Unicode sequences from NamedSequences.txt in the Unicode database - Remove second declaration of MVM_frame_destroy - JIT MVM_radix() - Make radix and radix_I 50% faster with Unicode Nd - Add East_Asian_Width prop - Fix memory leaks in synchronous sockets - Fix crashes in socket connect error handling - Don't leak memory in STable repossession - Missing MVMROOT around a lock acquisition - Refuse to form an NFA with a zeroed to-state - Add data section for JIT code, and use it for extop 'fake' registers - Correct typo in NFG trie node struct name - Fix overflow in div_i op - Implement support for synthetic graphemes in MVM_unicode_string_compare - Implement configurable collation_mode for MVM_unicode_string_compare - Use LDFLAGS in ld invocations - On Windows, create UTF-8 encoded argv upon program entry - On Windows, populate environment hash from Unicode environment - Some additional heuristics to cut down on cross-thread write log output - Fix abs_n op for negative zeros - Sort out semantics of closed async sockets - Fix overflow on 32-bit systems in is_full_collection() - Rename MVMArray file and constant to VMArray - Remove bogus indication that MoarVM builds on `cygwin` - Use utf8 for unicode_db files - Fix invalid read when GC was triggered in the string repeat op - Don't call MVM_string_graphs twice in indexing op, plus cleanup
2017-06-20 21:06:42 +02:00
include/moar/instrument/line_coverage.h
include/moar/io/asyncsocket.h
include/moar/io/asyncsocketudp.h
include/moar/io/dirops.h
include/moar/io/eventloop.h
include/moar/io/fileops.h
include/moar/io/filewatchers.h
include/moar/io/io.h
include/moar/io/procops.h
include/moar/io/signals.h
include/moar/io/syncfile.h
include/moar/io/syncsocket.h
include/moar/io/timers.h
include/moar/jit/compile.h
include/moar/jit/graph.h
include/moar/jit/internal.h
include/moar/jit/label.h
include/moar/jit/log.h
include/moar/mast/compiler.h
include/moar/mast/driver.h
include/moar/mast/nodes.h
include/moar/math/bigintops.h
include/moar/math/num.h
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
2017-02-05 13:36:59 +01:00
include/moar/memdebug.h
include/moar/moar.h
include/moar/platform/inttypes.h
include/moar/platform/io.h
Update MoarVM to 2017.06. Bump API_DEPENDS too, as functions have been removed. 2017.06 - Make coerce_s_n work more like the Perl 6 Str.Num method - Eliminate socket string I/O - Re-implement synchronous sockets without using libuv, enabling them to be passed between threads - Add ability to get port from already bind-ed socket - Add cpucores op to get the number of CPU cores - Fix inconsistency in decode stream take bytes API, so it returns null if that number of bytes is not available - Fix memory leak in syncpipe - Removed unsed header file in threads.c - Remove unused args to bind_stdio_handle - Remove char-level I/O ops and the functions they called - Remove char-level I/O from synchronous I/O vtables - Remove unused encoding option in dir handle - Re-implement print/say debug output ops to encode and then use binary I/O - Eliminate use of libuv in synchronous file handles - Switch standard handles to use the new synchronous file handle code, which means they can now be safely used from multiple threads also - Remove unused ->filename slot of syncfile - Debugging aid for introspecting P6opaque objects - Support merge_bytes in async proc ops, for reading STDOUT and STDERR together - Support binding handles to file descriptors in async procs - Fix off-by-one in profiler node GC - Add string eqat/index ignorecase+ignoremark functions - Add new eqaticim_s and indexicim_s ops ignorecase+ignoremark - Use norm instead of n for the normalizer variable - Add improved support for GCB=Prepend - Improve Regional Indicators support during normalization - Serialize a Decoder REPR object into null, so incidental file handle serialization in Perl 6 does not blow up - Improve named argument optimization, so we can specialize and throw out instructions in more cases - JIT decodertakeline - Fix missed opportunity to run JITted code - Have inline log note what couldn't inline also - Remove successor when optional named argument is passed, so default code can be eliminated - Flag writers that die when a basic block is eliminated, and disregard them in PHI node analysis, provide more precise type information - Make a basic block elimination pre-pass before the main optimization work - Set dead writer when deleting instructions also, to further aid PHI merges - Track which basic blocks are part of a jump list - Delete pointless goto instructions (those at the end of a basic block that simply go to the next block) - Remove bad Windows quoting option async proc code - Actually log inlines to stderr as the comment up top claims - Make find_separator only look at the last chars, which is far cheaper - Add help text for environment variables to Configure - Move NFG initialization into nfg.c - Cache CRLF grapheme value - Cache maximum separator length, to save recomputing it for every line that is read - Cache a list of final separator graphemes, for faster stopper detection in streaming decoders - Introduce a max final grapheme codepoint filter, for faster stopper detection in streaming decoders - Add a UTF-8 decoding fast-path that doesn't need to go through the full normalizer - Keep last freed chars buffer handy for re-use in streaming decoder - Make a smarter guess at decode result buffer size in streaming decoder - Don't copy when we can steal decoder output, saving a memory copy in most line reading operations - Various micro-optimizations to UTF-8 decoding fast path - Fix newline translation in various encoding's streaming decoder 2017.05 - Mark profiler call graphs iteratively instead of recursively - Keep around line number annotations in spesh, for more accurate source position information for coverage data in specialized code - Introduce "telemeh", a high-precision-time low-impact logger - Fix error reporting in chdir - Fix memory leak on error in chdir - Travis: readlink doesn't have `-f` on MacOS so make our own solution - Fix bug in index ignorecase and equal at ignorecase - Fix all known remaining bugs in indexic and eqatic - Zero slot when popping a VMArray, to avoid junk reads if it grows again later - Add can_fit_into_8bit funct, put logic used many places into one function - Use -1 instead of 0 when long right-shifting negative smallints - Remove workaround for tommath issue #56, which is now fixed upstream - Don't crash on reading a closed dir handle - Remove deprecated async string I/O ops 2017.04 - Shorten the nursery when creating large bigints, to bring GC forward and resolve excessive memory use - Use correct format for repeat/concat errors - Fix bug in indexic_s if expanding codepoint is the last codepoint - Special case "\r\n" in MVM_nfg_is_concat_stable for performance reasons - Further optimize MVM_nfg_is_concat_stable to speed up concatenation - Do not set use rpath if installing into proper system locations - Optimize passes_quickcheck_and_zero_ccc to be much faster - Give this_repr constants more meaningful names to aid debugging - Streamline MVM_bigint_radix and MVM_radix for Nd Unicode #'s - Fix case-insensitive string compare bug when synthetics are in the haystack - Improve description for "should eventually be unreachable" error - Correctly detect and handle overflow in mp_get_int64 - Split into mp_get_int64 and mp_get_uint64 - Only allocate and normalize for cp's that require it in MVM_string_chr, and short-circuit Unicode property test for codepoints below 0x300 - Provide a better error when failing to encode surrogates in UTF-8 - Add a cast to suppress a compiler warning in strings/ops.c - Factor out code from equal_at_ignore_case for use in index_ignore_case also - Use both hex and decimal for UTF8 encoding error messages - Add parentheses in various places to suppress compiler warnings - Use PRIu64 in fprintf's to fix compiler warning about incorrect types - Add a check that introspection->is_tty is not NULL, avoiding a crash - Mention debug_name in errors about uncomposed repr - Add new --coverage option for Configure.pl - First prototype of a per-line coverage reporter, enabled by setting MVM_COVERAGE_LOG - Cope with a native type with no nativesize, but signedness - Remove two functions in normalize.c that have been superseded - Give collapse_strands a 5.4% speed boost under some workloads - Add MVM_string_graphs_nocheck funct, use it in places we previously already checked - Have a two-part loop in collapse strands to make loop tighter when possible - Implement serialize/deserialize in VMHash REPR - Use memmem in string index. Uses Knuth-Morris-Pratt on glibc, and adds the FreeBSD memmem.c for use on Windows - Fix a join NFG bug when there was an empty string and an empty seperator - Reorder MVMStaticFrameBody to save 16 bytes according to pahole; similarly save 16 bytes in MVMCompUnitBody, 24 bytes in MVMJitCode, 8 bytes in MVMIOSyncStreamData, SerializationRoot and SerializationReader - Remove arbitrary and small length range check for reading bytes from a file - Remove unused defines in threadcontext.h - Greatly reduce contention in the fixed-size allocator for multi-threaded programs, giving up to 40% speedup in some cases - Add continuous coverage analysis to Travis builds, along with other Travis improvements - Mark thread GC blocked when doing synchronous writes - Add missing MVMROOT when reading bytes, which could result in occasional data loss 2017.03 - Fix some missing variable initializations - Set effective_handlers in context-only frame - Streamline code in hash computation, hopefully fixing a Coverity warning - Detect and throw on over-size array - Put in a limit for codepoints in a grapheme, to avoid various overflows - Fix a missing NULL check at end of profiling - Panic when a new thread context can't create an uv_loop - Better handling of out of memory when creating a thread - Another attempt at silencing the pthread_yield warnings - Missing GC block marking in event loop starting, fixing a deadlock - Fix CArray marshalling of type objects - Provide a way to put Decoder in nl-translate mode - Ensure Decoder REPR never sees concurrent use - Debug option to detect concurrent VMArray use - Encode strings as UTF-8 in MVM_unicode_string_from_name - Reword exception message for read() outside original thread - Check that results of repeat/concat fit in an MVMString - Fix div_i JIT round to negative infinity - Ignore SIGPIPE by default - Only start readers if a process spawned OK - Remove deprecated char-mode async proc reading - Signal error to stdout/stderr on spawn failure - Do gen2 sweep before letting stolen threads go, fixing occasional SEGVs - Turn libtommath dependency into a submodule, use a MoarVM fork - Update libtommath fork to have expmod hang fix - Change MVM_string_equal_at_ignore_case to use fc - Fix MVM_string_equal_at_ignore_case when folding the haystack changes length - Mention debug name and REPR name in "requires obj with repr X" errors - Remove unneeded variable in MVM_string_index - Add MVM_string_index_ignore_case function and indexic_s op - A range of improvements to the MoarVM GDB plug-in 2017.02 - Fix format strings that warn during compile - Implement missing cleanup of async task handles, fixing a memory leak - Make Unicode sequence and codepoint name lookup case-insensitive - Add Unicode sequences from NamedSequences.txt in the Unicode database - Remove second declaration of MVM_frame_destroy - JIT MVM_radix() - Make radix and radix_I 50% faster with Unicode Nd - Add East_Asian_Width prop - Fix memory leaks in synchronous sockets - Fix crashes in socket connect error handling - Don't leak memory in STable repossession - Missing MVMROOT around a lock acquisition - Refuse to form an NFA with a zeroed to-state - Add data section for JIT code, and use it for extop 'fake' registers - Correct typo in NFG trie node struct name - Fix overflow in div_i op - Implement support for synthetic graphemes in MVM_unicode_string_compare - Implement configurable collation_mode for MVM_unicode_string_compare - Use LDFLAGS in ld invocations - On Windows, create UTF-8 encoded argv upon program entry - On Windows, populate environment hash from Unicode environment - Some additional heuristics to cut down on cross-thread write log output - Fix abs_n op for negative zeros - Sort out semantics of closed async sockets - Fix overflow on 32-bit systems in is_full_collection() - Rename MVMArray file and constant to VMArray - Remove bogus indication that MoarVM builds on `cygwin` - Use utf8 for unicode_db files - Fix invalid read when GC was triggered in the string repeat op - Don't call MVM_string_graphs twice in indexing op, plus cleanup
2017-06-20 21:06:42 +02:00
include/moar/platform/memmem.h
include/moar/platform/mmap.h
include/moar/platform/setjmp.h
include/moar/platform/stdint.h
include/moar/platform/sys.h
include/moar/platform/threads.h
include/moar/platform/time.h
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
2017-02-05 13:36:59 +01:00
include/moar/profiler/heapsnapshot.h
include/moar/profiler/instrument.h
include/moar/profiler/log.h
include/moar/profiler/profile.h
Update MoarVM to 2017.06. Bump API_DEPENDS too, as functions have been removed. 2017.06 - Make coerce_s_n work more like the Perl 6 Str.Num method - Eliminate socket string I/O - Re-implement synchronous sockets without using libuv, enabling them to be passed between threads - Add ability to get port from already bind-ed socket - Add cpucores op to get the number of CPU cores - Fix inconsistency in decode stream take bytes API, so it returns null if that number of bytes is not available - Fix memory leak in syncpipe - Removed unsed header file in threads.c - Remove unused args to bind_stdio_handle - Remove char-level I/O ops and the functions they called - Remove char-level I/O from synchronous I/O vtables - Remove unused encoding option in dir handle - Re-implement print/say debug output ops to encode and then use binary I/O - Eliminate use of libuv in synchronous file handles - Switch standard handles to use the new synchronous file handle code, which means they can now be safely used from multiple threads also - Remove unused ->filename slot of syncfile - Debugging aid for introspecting P6opaque objects - Support merge_bytes in async proc ops, for reading STDOUT and STDERR together - Support binding handles to file descriptors in async procs - Fix off-by-one in profiler node GC - Add string eqat/index ignorecase+ignoremark functions - Add new eqaticim_s and indexicim_s ops ignorecase+ignoremark - Use norm instead of n for the normalizer variable - Add improved support for GCB=Prepend - Improve Regional Indicators support during normalization - Serialize a Decoder REPR object into null, so incidental file handle serialization in Perl 6 does not blow up - Improve named argument optimization, so we can specialize and throw out instructions in more cases - JIT decodertakeline - Fix missed opportunity to run JITted code - Have inline log note what couldn't inline also - Remove successor when optional named argument is passed, so default code can be eliminated - Flag writers that die when a basic block is eliminated, and disregard them in PHI node analysis, provide more precise type information - Make a basic block elimination pre-pass before the main optimization work - Set dead writer when deleting instructions also, to further aid PHI merges - Track which basic blocks are part of a jump list - Delete pointless goto instructions (those at the end of a basic block that simply go to the next block) - Remove bad Windows quoting option async proc code - Actually log inlines to stderr as the comment up top claims - Make find_separator only look at the last chars, which is far cheaper - Add help text for environment variables to Configure - Move NFG initialization into nfg.c - Cache CRLF grapheme value - Cache maximum separator length, to save recomputing it for every line that is read - Cache a list of final separator graphemes, for faster stopper detection in streaming decoders - Introduce a max final grapheme codepoint filter, for faster stopper detection in streaming decoders - Add a UTF-8 decoding fast-path that doesn't need to go through the full normalizer - Keep last freed chars buffer handy for re-use in streaming decoder - Make a smarter guess at decode result buffer size in streaming decoder - Don't copy when we can steal decoder output, saving a memory copy in most line reading operations - Various micro-optimizations to UTF-8 decoding fast path - Fix newline translation in various encoding's streaming decoder 2017.05 - Mark profiler call graphs iteratively instead of recursively - Keep around line number annotations in spesh, for more accurate source position information for coverage data in specialized code - Introduce "telemeh", a high-precision-time low-impact logger - Fix error reporting in chdir - Fix memory leak on error in chdir - Travis: readlink doesn't have `-f` on MacOS so make our own solution - Fix bug in index ignorecase and equal at ignorecase - Fix all known remaining bugs in indexic and eqatic - Zero slot when popping a VMArray, to avoid junk reads if it grows again later - Add can_fit_into_8bit funct, put logic used many places into one function - Use -1 instead of 0 when long right-shifting negative smallints - Remove workaround for tommath issue #56, which is now fixed upstream - Don't crash on reading a closed dir handle - Remove deprecated async string I/O ops 2017.04 - Shorten the nursery when creating large bigints, to bring GC forward and resolve excessive memory use - Use correct format for repeat/concat errors - Fix bug in indexic_s if expanding codepoint is the last codepoint - Special case "\r\n" in MVM_nfg_is_concat_stable for performance reasons - Further optimize MVM_nfg_is_concat_stable to speed up concatenation - Do not set use rpath if installing into proper system locations - Optimize passes_quickcheck_and_zero_ccc to be much faster - Give this_repr constants more meaningful names to aid debugging - Streamline MVM_bigint_radix and MVM_radix for Nd Unicode #'s - Fix case-insensitive string compare bug when synthetics are in the haystack - Improve description for "should eventually be unreachable" error - Correctly detect and handle overflow in mp_get_int64 - Split into mp_get_int64 and mp_get_uint64 - Only allocate and normalize for cp's that require it in MVM_string_chr, and short-circuit Unicode property test for codepoints below 0x300 - Provide a better error when failing to encode surrogates in UTF-8 - Add a cast to suppress a compiler warning in strings/ops.c - Factor out code from equal_at_ignore_case for use in index_ignore_case also - Use both hex and decimal for UTF8 encoding error messages - Add parentheses in various places to suppress compiler warnings - Use PRIu64 in fprintf's to fix compiler warning about incorrect types - Add a check that introspection->is_tty is not NULL, avoiding a crash - Mention debug_name in errors about uncomposed repr - Add new --coverage option for Configure.pl - First prototype of a per-line coverage reporter, enabled by setting MVM_COVERAGE_LOG - Cope with a native type with no nativesize, but signedness - Remove two functions in normalize.c that have been superseded - Give collapse_strands a 5.4% speed boost under some workloads - Add MVM_string_graphs_nocheck funct, use it in places we previously already checked - Have a two-part loop in collapse strands to make loop tighter when possible - Implement serialize/deserialize in VMHash REPR - Use memmem in string index. Uses Knuth-Morris-Pratt on glibc, and adds the FreeBSD memmem.c for use on Windows - Fix a join NFG bug when there was an empty string and an empty seperator - Reorder MVMStaticFrameBody to save 16 bytes according to pahole; similarly save 16 bytes in MVMCompUnitBody, 24 bytes in MVMJitCode, 8 bytes in MVMIOSyncStreamData, SerializationRoot and SerializationReader - Remove arbitrary and small length range check for reading bytes from a file - Remove unused defines in threadcontext.h - Greatly reduce contention in the fixed-size allocator for multi-threaded programs, giving up to 40% speedup in some cases - Add continuous coverage analysis to Travis builds, along with other Travis improvements - Mark thread GC blocked when doing synchronous writes - Add missing MVMROOT when reading bytes, which could result in occasional data loss 2017.03 - Fix some missing variable initializations - Set effective_handlers in context-only frame - Streamline code in hash computation, hopefully fixing a Coverity warning - Detect and throw on over-size array - Put in a limit for codepoints in a grapheme, to avoid various overflows - Fix a missing NULL check at end of profiling - Panic when a new thread context can't create an uv_loop - Better handling of out of memory when creating a thread - Another attempt at silencing the pthread_yield warnings - Missing GC block marking in event loop starting, fixing a deadlock - Fix CArray marshalling of type objects - Provide a way to put Decoder in nl-translate mode - Ensure Decoder REPR never sees concurrent use - Debug option to detect concurrent VMArray use - Encode strings as UTF-8 in MVM_unicode_string_from_name - Reword exception message for read() outside original thread - Check that results of repeat/concat fit in an MVMString - Fix div_i JIT round to negative infinity - Ignore SIGPIPE by default - Only start readers if a process spawned OK - Remove deprecated char-mode async proc reading - Signal error to stdout/stderr on spawn failure - Do gen2 sweep before letting stolen threads go, fixing occasional SEGVs - Turn libtommath dependency into a submodule, use a MoarVM fork - Update libtommath fork to have expmod hang fix - Change MVM_string_equal_at_ignore_case to use fc - Fix MVM_string_equal_at_ignore_case when folding the haystack changes length - Mention debug name and REPR name in "requires obj with repr X" errors - Remove unneeded variable in MVM_string_index - Add MVM_string_index_ignore_case function and indexic_s op - A range of improvements to the MoarVM GDB plug-in 2017.02 - Fix format strings that warn during compile - Implement missing cleanup of async task handles, fixing a memory leak - Make Unicode sequence and codepoint name lookup case-insensitive - Add Unicode sequences from NamedSequences.txt in the Unicode database - Remove second declaration of MVM_frame_destroy - JIT MVM_radix() - Make radix and radix_I 50% faster with Unicode Nd - Add East_Asian_Width prop - Fix memory leaks in synchronous sockets - Fix crashes in socket connect error handling - Don't leak memory in STable repossession - Missing MVMROOT around a lock acquisition - Refuse to form an NFA with a zeroed to-state - Add data section for JIT code, and use it for extop 'fake' registers - Correct typo in NFG trie node struct name - Fix overflow in div_i op - Implement support for synthetic graphemes in MVM_unicode_string_compare - Implement configurable collation_mode for MVM_unicode_string_compare - Use LDFLAGS in ld invocations - On Windows, create UTF-8 encoded argv upon program entry - On Windows, populate environment hash from Unicode environment - Some additional heuristics to cut down on cross-thread write log output - Fix abs_n op for negative zeros - Sort out semantics of closed async sockets - Fix overflow on 32-bit systems in is_full_collection() - Rename MVMArray file and constant to VMArray - Remove bogus indication that MoarVM builds on `cygwin` - Use utf8 for unicode_db files - Fix invalid read when GC was triggered in the string repeat op - Don't call MVM_string_graphs twice in indexing op, plus cleanup
2017-06-20 21:06:42 +02:00
include/moar/profiler/telemeh.h
include/moar/spesh/arg_guard.h
include/moar/spesh/args.h
include/moar/spesh/candidate.h
include/moar/spesh/codegen.h
include/moar/spesh/dead_bb_elimination.h
include/moar/spesh/deopt.h
include/moar/spesh/dump.h
include/moar/spesh/facts.h
include/moar/spesh/graph.h
include/moar/spesh/inline.h
include/moar/spesh/iterator.h
include/moar/spesh/log.h
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
2017-02-05 13:36:59 +01:00
include/moar/spesh/lookup.h
include/moar/spesh/manipulate.h
include/moar/spesh/optimize.h
include/moar/spesh/osr.h
include/moar/spesh/plan.h
include/moar/spesh/stats.h
include/moar/spesh/threshold.h
include/moar/spesh/worker.h
include/moar/strings/ascii.h
include/moar/strings/decode_stream.h
include/moar/strings/iter.h
include/moar/strings/latin1.h
include/moar/strings/nfg.h
include/moar/strings/normalize.h
include/moar/strings/ops.h
Update MoarVM to 2017.06. Bump API_DEPENDS too, as functions have been removed. 2017.06 - Make coerce_s_n work more like the Perl 6 Str.Num method - Eliminate socket string I/O - Re-implement synchronous sockets without using libuv, enabling them to be passed between threads - Add ability to get port from already bind-ed socket - Add cpucores op to get the number of CPU cores - Fix inconsistency in decode stream take bytes API, so it returns null if that number of bytes is not available - Fix memory leak in syncpipe - Removed unsed header file in threads.c - Remove unused args to bind_stdio_handle - Remove char-level I/O ops and the functions they called - Remove char-level I/O from synchronous I/O vtables - Remove unused encoding option in dir handle - Re-implement print/say debug output ops to encode and then use binary I/O - Eliminate use of libuv in synchronous file handles - Switch standard handles to use the new synchronous file handle code, which means they can now be safely used from multiple threads also - Remove unused ->filename slot of syncfile - Debugging aid for introspecting P6opaque objects - Support merge_bytes in async proc ops, for reading STDOUT and STDERR together - Support binding handles to file descriptors in async procs - Fix off-by-one in profiler node GC - Add string eqat/index ignorecase+ignoremark functions - Add new eqaticim_s and indexicim_s ops ignorecase+ignoremark - Use norm instead of n for the normalizer variable - Add improved support for GCB=Prepend - Improve Regional Indicators support during normalization - Serialize a Decoder REPR object into null, so incidental file handle serialization in Perl 6 does not blow up - Improve named argument optimization, so we can specialize and throw out instructions in more cases - JIT decodertakeline - Fix missed opportunity to run JITted code - Have inline log note what couldn't inline also - Remove successor when optional named argument is passed, so default code can be eliminated - Flag writers that die when a basic block is eliminated, and disregard them in PHI node analysis, provide more precise type information - Make a basic block elimination pre-pass before the main optimization work - Set dead writer when deleting instructions also, to further aid PHI merges - Track which basic blocks are part of a jump list - Delete pointless goto instructions (those at the end of a basic block that simply go to the next block) - Remove bad Windows quoting option async proc code - Actually log inlines to stderr as the comment up top claims - Make find_separator only look at the last chars, which is far cheaper - Add help text for environment variables to Configure - Move NFG initialization into nfg.c - Cache CRLF grapheme value - Cache maximum separator length, to save recomputing it for every line that is read - Cache a list of final separator graphemes, for faster stopper detection in streaming decoders - Introduce a max final grapheme codepoint filter, for faster stopper detection in streaming decoders - Add a UTF-8 decoding fast-path that doesn't need to go through the full normalizer - Keep last freed chars buffer handy for re-use in streaming decoder - Make a smarter guess at decode result buffer size in streaming decoder - Don't copy when we can steal decoder output, saving a memory copy in most line reading operations - Various micro-optimizations to UTF-8 decoding fast path - Fix newline translation in various encoding's streaming decoder 2017.05 - Mark profiler call graphs iteratively instead of recursively - Keep around line number annotations in spesh, for more accurate source position information for coverage data in specialized code - Introduce "telemeh", a high-precision-time low-impact logger - Fix error reporting in chdir - Fix memory leak on error in chdir - Travis: readlink doesn't have `-f` on MacOS so make our own solution - Fix bug in index ignorecase and equal at ignorecase - Fix all known remaining bugs in indexic and eqatic - Zero slot when popping a VMArray, to avoid junk reads if it grows again later - Add can_fit_into_8bit funct, put logic used many places into one function - Use -1 instead of 0 when long right-shifting negative smallints - Remove workaround for tommath issue #56, which is now fixed upstream - Don't crash on reading a closed dir handle - Remove deprecated async string I/O ops 2017.04 - Shorten the nursery when creating large bigints, to bring GC forward and resolve excessive memory use - Use correct format for repeat/concat errors - Fix bug in indexic_s if expanding codepoint is the last codepoint - Special case "\r\n" in MVM_nfg_is_concat_stable for performance reasons - Further optimize MVM_nfg_is_concat_stable to speed up concatenation - Do not set use rpath if installing into proper system locations - Optimize passes_quickcheck_and_zero_ccc to be much faster - Give this_repr constants more meaningful names to aid debugging - Streamline MVM_bigint_radix and MVM_radix for Nd Unicode #'s - Fix case-insensitive string compare bug when synthetics are in the haystack - Improve description for "should eventually be unreachable" error - Correctly detect and handle overflow in mp_get_int64 - Split into mp_get_int64 and mp_get_uint64 - Only allocate and normalize for cp's that require it in MVM_string_chr, and short-circuit Unicode property test for codepoints below 0x300 - Provide a better error when failing to encode surrogates in UTF-8 - Add a cast to suppress a compiler warning in strings/ops.c - Factor out code from equal_at_ignore_case for use in index_ignore_case also - Use both hex and decimal for UTF8 encoding error messages - Add parentheses in various places to suppress compiler warnings - Use PRIu64 in fprintf's to fix compiler warning about incorrect types - Add a check that introspection->is_tty is not NULL, avoiding a crash - Mention debug_name in errors about uncomposed repr - Add new --coverage option for Configure.pl - First prototype of a per-line coverage reporter, enabled by setting MVM_COVERAGE_LOG - Cope with a native type with no nativesize, but signedness - Remove two functions in normalize.c that have been superseded - Give collapse_strands a 5.4% speed boost under some workloads - Add MVM_string_graphs_nocheck funct, use it in places we previously already checked - Have a two-part loop in collapse strands to make loop tighter when possible - Implement serialize/deserialize in VMHash REPR - Use memmem in string index. Uses Knuth-Morris-Pratt on glibc, and adds the FreeBSD memmem.c for use on Windows - Fix a join NFG bug when there was an empty string and an empty seperator - Reorder MVMStaticFrameBody to save 16 bytes according to pahole; similarly save 16 bytes in MVMCompUnitBody, 24 bytes in MVMJitCode, 8 bytes in MVMIOSyncStreamData, SerializationRoot and SerializationReader - Remove arbitrary and small length range check for reading bytes from a file - Remove unused defines in threadcontext.h - Greatly reduce contention in the fixed-size allocator for multi-threaded programs, giving up to 40% speedup in some cases - Add continuous coverage analysis to Travis builds, along with other Travis improvements - Mark thread GC blocked when doing synchronous writes - Add missing MVMROOT when reading bytes, which could result in occasional data loss 2017.03 - Fix some missing variable initializations - Set effective_handlers in context-only frame - Streamline code in hash computation, hopefully fixing a Coverity warning - Detect and throw on over-size array - Put in a limit for codepoints in a grapheme, to avoid various overflows - Fix a missing NULL check at end of profiling - Panic when a new thread context can't create an uv_loop - Better handling of out of memory when creating a thread - Another attempt at silencing the pthread_yield warnings - Missing GC block marking in event loop starting, fixing a deadlock - Fix CArray marshalling of type objects - Provide a way to put Decoder in nl-translate mode - Ensure Decoder REPR never sees concurrent use - Debug option to detect concurrent VMArray use - Encode strings as UTF-8 in MVM_unicode_string_from_name - Reword exception message for read() outside original thread - Check that results of repeat/concat fit in an MVMString - Fix div_i JIT round to negative infinity - Ignore SIGPIPE by default - Only start readers if a process spawned OK - Remove deprecated char-mode async proc reading - Signal error to stdout/stderr on spawn failure - Do gen2 sweep before letting stolen threads go, fixing occasional SEGVs - Turn libtommath dependency into a submodule, use a MoarVM fork - Update libtommath fork to have expmod hang fix - Change MVM_string_equal_at_ignore_case to use fc - Fix MVM_string_equal_at_ignore_case when folding the haystack changes length - Mention debug name and REPR name in "requires obj with repr X" errors - Remove unneeded variable in MVM_string_index - Add MVM_string_index_ignore_case function and indexic_s op - A range of improvements to the MoarVM GDB plug-in 2017.02 - Fix format strings that warn during compile - Implement missing cleanup of async task handles, fixing a memory leak - Make Unicode sequence and codepoint name lookup case-insensitive - Add Unicode sequences from NamedSequences.txt in the Unicode database - Remove second declaration of MVM_frame_destroy - JIT MVM_radix() - Make radix and radix_I 50% faster with Unicode Nd - Add East_Asian_Width prop - Fix memory leaks in synchronous sockets - Fix crashes in socket connect error handling - Don't leak memory in STable repossession - Missing MVMROOT around a lock acquisition - Refuse to form an NFA with a zeroed to-state - Add data section for JIT code, and use it for extop 'fake' registers - Correct typo in NFG trie node struct name - Fix overflow in div_i op - Implement support for synthetic graphemes in MVM_unicode_string_compare - Implement configurable collation_mode for MVM_unicode_string_compare - Use LDFLAGS in ld invocations - On Windows, create UTF-8 encoded argv upon program entry - On Windows, populate environment hash from Unicode environment - Some additional heuristics to cut down on cross-thread write log output - Fix abs_n op for negative zeros - Sort out semantics of closed async sockets - Fix overflow on 32-bit systems in is_full_collection() - Rename MVMArray file and constant to VMArray - Remove bogus indication that MoarVM builds on `cygwin` - Use utf8 for unicode_db files - Fix invalid read when GC was triggered in the string repeat op - Don't call MVM_string_graphs twice in indexing op, plus cleanup
2017-06-20 21:06:42 +02:00
include/moar/strings/parse_num.h
include/moar/strings/unicode.h
include/moar/strings/unicode_gen.h
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
2017-02-05 13:36:59 +01:00
include/moar/strings/unicode_ops.h
include/moar/strings/utf16.h
include/moar/strings/utf8.h
include/moar/strings/utf8_c8.h
include/moar/strings/windows1252.h
include/moar/types.h
include/moar/uthash.h
lib/libmoar.so
share/nqp/lib/MAST/Nodes.nqp
share/nqp/lib/MAST/Ops.nqp
share/pkgconfig/moar.pc