- update to version 2022.07
+ Attempt at implementing a "bytecode-size" dispatch
+ Run finalizers even with tc->last_handler_result
+ Set facts on disp prog translation of int and num lits
+ Commit some missed uint things
+ Add missing SC write barriers to atomic attr bind and cas
+ Fix sign comparison warnings in coerce_su implementation
+ Mimalloc should only release memory to the OS at exit if --full-cleanup was
used
+ Add write_uint16_at method to MAST::Bytecode
+ JIT atposref_u + getattrref_u
+ Fix mis-spesh of native calls
OBS-URL: https://build.opensuse.org/request/show/1007423
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl6/moarvm?expand=0&rev=89
- update to version 2022.03
+ Bump mimalloc to v2.0.5
+ The result of a getenv() call should not be freed
+ Some nativeref optimizations and fixes
+ Fix all returned native integers getting treated as signed
+ Fix potential invalid free in nativecall
+ Add missing _u cases to disp program callsite code
+ Correctly allocate/free CStrs when using mimalloc
+ Root orig since MVM_frame_capturelex can allocate
+ Restore jitting of sp_getarg_[inso]
+ Jit even more *_u versions of ops
+ Fix frame walker finding wrong value after multi level inlining
+ Fix spesh of named uint parameters
+ Add an MVM_nativecall_encode_string function
OBS-URL: https://build.opensuse.org/request/show/966629
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl6/moarvm?expand=0&rev=86
- Fix build on s390x by using libffi instead of dyncall on that arch
- update to version 2022.02
+ Introduce a new generalized dispatch mechanism.
It results in a more uniform architecture for all kinds
of dispatch, delivering better performance on a range of
langauge features. For more information see
https://6guts.wordpress.com/2021/09/29/the-new-moarvm-dispatch-mechanism-is-here/
+ Native unsigned integers are now first class citizens
+ Replace home grown allocator with mimalloc for better performance
+ Improvements to the debugger
+ Many newly JITed instructions
+ Fix finalizers of gen2 objects rarely getting run
+ Fix segfaults in nqp::hllboolfor, after capture-replace-literal-arg with different kind, when
a frame has more than 8192 locals, due to race condition when initializing native call sites, due
to out of bounds read of PHI facts in spesh, due to uninitialized register after PEA and inlining
+ Fix possible access to fromspace after deopt materialization, when autoboxing return values and
in NativeCall callbacks
+ Fix a bug in `report_deserialize_callsites_violation`
+ Negative numbers should not be prime
+ Avoid thread safety issues in intern lookups
+ Close socket on async error during an async connection
+ Use callp instead of call in jit of new(mixin)type
+ Fix JITed return from nested runloops
+ Fix invalid pred chain caused by MVM_spesh_manipulate_split_BB_at
+ Stream Decoder: Disallow incomplete code at EOF
+ Respect `--full-cleanup` in `nqp::exit`
+ Many optimizations and performance improvements
- Remove moarvm-fix-memory-leak.diff as fix has been upstreamed
- Remove moarvm-fix-segfaults-in-native-callbacks.diff as fix has been upstreamed
OBS-URL: https://build.opensuse.org/request/show/956526
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl6/moarvm?expand=0&rev=77
- update to version 2021.07
+ Fix "Collectable in a gen2 freelist accessed" when deserializing a method cache
+ Fix possible acces to a freed SC during deserialization
+ Convert more realloc+memset(0) to recalloc
+ Fix some bugs in the various `hash_fsck` functions
+ Fix read buffer overflow in bytecode dumper
+ Fix overflows on slight reallocations of fixed size alloced buffers
+ Fix error handling of mkdir
+ Assign the result of a socket(2) call immediately
+ Fix memory corruption by accessing freed spesh stats
+ Fix ShiftJIS decoder bug where a replacement is used
and a decoding error is encountered after '\r' character
OBS-URL: https://build.opensuse.org/request/show/908134
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl6/moarvm?expand=0&rev=73
- Forward port reproducible.patch after build system changes
- update to version 2021.05
+ No longer require an exception as argument of nqp::backtrace
+ Remove nqp::time_i and nqp::time_n in favor of nqp:time which just return integer nanoseconds since the epoch
+ Deprecate now unused graphs_s operator
+ Eliminate the sec_n, asec_n and sech_h operators, which are no longer used
+ Prohibit hllbool when the HLL doesn't have special booleans
+ Add a setup_notify handler and queue to nqp::signal to avoid race conditions when setting up a signal handler
+ Fix getobjsc returning NULL when the object has no SC
+ Always log the type coming out of an nqp::decont
+ Make smrt_intify specializable like other smrt_* operators
+ More thorough --full-cleanup
+ Do not downcast bytes argument to write()/send() calls
+ Fix spesh missing writes to containers
+ Fix missing gc_mark of simstackframe's arg_types
+ Propagate spesh facts after optimizations
+ Fix getting garbage numbers after spesh optimized away smart_intify
+ Fix inlines missing synthetic deopt points
+ Constrain C pointer serialization to sizes <= INT32_MAX
+ Fix possible GC upset caused by half-deserialized STables
+ Use the FSA for MVMActiveHandlers
+ Fix a segfault in VMArray's copy_elems
+ Fix a segfault on trying to use an untyped array with buffer write functions
+ Fixing generated backtraces missing inlined frames
+ Save a malloc+free per frame when creating a Backtrace object
+ Fix a memory leak related to Unicode hashes
+ Only call MVM_jit_bytecode_dump_enabled if code is non-NULL
+ Fix JITed ordfirst/ordat/ordbaseat returning 4294967295 instead of -1
+ Fix expr JITed ordbaseat and getcpbyname returning 4294967295 instead of -1
+ Fix spesh removing not-really-dead code
+ Fix possible segfault on exit when using spesh log
OBS-URL: https://build.opensuse.org/request/show/895188
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl6/moarvm?expand=0&rev=70
- update to version 2021.02
+ Introduce new hash implementation based on Robin Hood Hash
+ Fixed serveral memory leaks
+ Fixed several segfaults
+ Improvements to the debug server
+ Fix MVM_file_isexecutable() when being root
+ Give io loop thread and spesh thread a name
+ Several improvements to spesh
+ Introduce the setthreadname op
+ Fix case insensitive string matching with an empty string
+ Fix CStruct handling of inlined attributes
+ Don't obliterate lib_name in exception text of NativeCall
+ Allow for explicitly marking the mainline_frame in the bytecode
+ Possibly fix MVM_panic from entering GC during spesh
+ Fix some possible double frees
+ Add methods WHICH and raku to MAST::Frame for easier debugging
+ JIT compile some more ops
OBS-URL: https://build.opensuse.org/request/show/874248
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl6/moarvm?expand=0&rev=66
- update to version 2020.05
+ Use the FSA for ConcBlockingQueue
+ Use memcpy instead of strncpy
+ Fix some compiler warnings
+ Fix numerous very rare but possible GC bugs
+ Align offsets in P6opaque.c
+ Don't null-terminate string when stringifying int
+ Improve handling of errors in native callbacks
+ Use smaller buffer for native int to str coercion
+ Fix deadlock when trying to report an unsupported NativeCall return type
+ Improve memory usage of utf8-c8 encoding
+ Make profiling more stable, resolving potential panics
+ Add more ops to be profiled for allocations
+ Give MVMSpeshAnn an "order" field to improve diagnostic output
+ Let encode take a preallocated buffer
+ Fix a tiny mistake in containers implementation
+ Add a value_desc_cont container descriptor, which brings the needs of Rakudo's Scalar into the VM
+ Fix invalid reads when freeing native callback cache
+ Implement calculation of unmanaged size for CArray
+ Bounds check codepoint passed to chr
+ Add missing args spesh coercion validation
+ Make OSR work in frames from invokewithcapture
+ JIT nextdispatcherfor
+ Update libuv to version 1.35.0
+ Fix segfaults in MVM_spesh_plugin_guard_list_mark, in profiler and the JIT compiler
+ Fix various memory leaks, mostly relevant to running with --full-cleanup
OBS-URL: https://build.opensuse.org/request/show/805632
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl6/moarvm?expand=0&rev=64
- update to version 2020.02
+ [ca2a4c4c5] Resolve hostnames given a socket type, protocol, and passivity
+ [d606d9112,b1ff3d826,cf44a3686,cf44a3686,7920f2cc4,cfecd54bd,82f2719ce,e9a63e03f,296bedfa6,
3bbab8c4b,f56248139,5a2f4ed47,056c523db,192f0433c] Switch our libtommath to upstream's 1.2.0
+ [17935040a,1fbbb9335,a51428429,7877b0376,e67022405,10f98288c,f32b383cc,76d34faf1,d9c087f36]
Handle return values from libtommath functions
+ [1d80b6038] Fixes for MVM_bigint_pow
+ [dfdaf19a8] Use right size+sign in comparison in MVM_bigint_rand
+ [9709537d9] Serialize the names of closures
+ [f47f53110] Update libuv to version 1.34.2
+ [0814ab4d8] Negative numbers should not be prime
+ [2296bcaed] New libtommath that builds bn_mp_set_double.c...
+ [4d7c7e142] Clear callsite of bottom frame when uninlining
+ [657b536cf,2cc4d3027] Update dyncall submodule
+ [978480b28] Mark cmp_tc static to avoid linker errors
+ [a71eee4c2] Allow closing handle bound to async proc stdin
+ [dd20883c3] Align MVM_args_get_required_pos_num with what the JIT actually expects
OBS-URL: https://build.opensuse.org/request/show/781554
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl6/moarvm?expand=0&rev=62
- update to version 2020.01
+ Fix relocatability of modules using NativeCall
+ Fix segfault caused by deopt all in NativeCall callback
+ Fix segfaults caused by JITed takehandlerresult returning NULL
+ Fix frame walker segfaults caused by deopt of a caller on a different thread
+ Fix memory corruption after cancelling signal
+ Allow getting absolute epoch startup time of VM in vmeventsubscribe
+ Add support for '−' (U+2212) minus for nqp::radix(_I)
+ Clean up MVM_io_resolve_host_name and make it more portable
+ Move to C99, compile with -Wall -Wextra and fix preexisting compiler warnings
+ Jit ordbaseat
- Remove MoarVM-buildroot-fix.diff as the issue has been fixed upstream
OBS-URL: https://build.opensuse.org/request/show/761105
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl6/moarvm?expand=0&rev=57
- update to version 2019.11
Features;
+ Update Unicode to 12.1
+ Add GB18030 encode, decode and decodestream support
+ Introduce vmevent, "VM Event Subscription"
+ Improvements to the profiler, including a new heapsnapshot format with zstd
support and improvements to the profiler's "confprog" probe language
+ Add MVM_vm_run_bytecode() as alternative to MVM_vm_run_file()
+ Improve hostname resolution with better support for IPv6
+ Partial escape analysis
+ Support JIT compilation of floating point operations
+ Support for deoptimization in the expression JIT
+ Jit getuniprop_(int|bool|str), captureposarg_n, smrt_intify
+ Various smaller performance improvements
+ Fix more than 40 garbage collection related bugs leading to segfaults and other issues
+ Make MVM_file_is_rwx honor root and groups
+ Fix crashes when destroying threads
+ Stability fixes
+ Fix pointer arithmetic in inlined CArrays in CStruct/CPPStruct REPRs
+ Put limits on local and inline counts for inlining to avoid overly long spesh blockages
+ Fixed some memory leaks
+ Improvements to the debug server
+ NativeCall: improvments to error messages
+ Improve Unicode handling with paths
+ Show correct bad bytes in encoding errors
+ Improvements to documentation
- Remove fix-build.patch as the issue has been fixed upstream
OBS-URL: https://build.opensuse.org/request/show/751851
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl6/moarvm?expand=0&rev=52
+ Fix several segfaults
+ Fix inlining CStruct and CUnion in CPPStruct REPR instances
+ Fix a couple of memory leaks
+ Many updates to the heap profiler
+ Make builds of mbc files reproducible
+ Many performance improvements
+ Add freemem and totalmem ops
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl6/moarvm?expand=0&rev=49
- update to version 2019.03
+ New partial escape analysis allows objects to be replaced by registers
+ Fix memory leaks
+ Fix memory corruption issues
+ Fix wrong type selection for push_* And pop_*
+ Fix inline end annotation motion on BB deletion
+ Fix segfaults related to corrupted CStruct STables. Fixes issue #2564
+ Optimize bindattr_i on CStruct to a cheap direct memory access
+ Turn elems On VMArray Into Direct Memory Access
+ Fix nativecall refresh clearing used child object pointers
+ randscale_n and rand_I are not pure ops, so don't mark them as such
+ Support endian switching in writenum and readnum
+ Call strerror for directory errors so we get error text not just an error code on POSIX platforms
+ JIT compile getlexref_u*, stat, lstat, (open|read|close)_dir
+ Fix JITed extend_u8 accidentally extending 16 bits.
+ Fix rw args of native calls not getting updated if JIT compilation fails
+ Support double type arguments in NativeCall JIT
+ Fix call to memcpy with NULL *src in lego JIT compiler
+ Fix JIT compiled getcodename not always dieing on type objects
+ Ensure last_payload and plugin_guard_args are valid so spesh plugins can be used outside speshresolve
+ Handle non-merge case of PHI
+ Add BOOTHash to spesh cheat list
+ Disable inlining when running the debug server
+ Add a limit on spesh plugin guard set size
+ Allow dead instruction elimination in inlines
+ Teach optimize_smart_coerce About Boot Types
+ Fix harmless off-by-one preventing optimization
+ Add op name to JIT "bailed completely" error
+ Remove obsolete MAST compiler
+ Integrate scalar replacement with profiling
OBS-URL: https://build.opensuse.org/request/show/693910
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl6/moarvm?expand=0&rev=47
- update to version 2018.12
+ New (read|write)(u?int|num) ops for handling binary data
+ Replace MAST compiler by NQP code for writing bytecode
+ Fix repossessions that cause object size "changes"
+ Fix memory leak of MVMFrameExtra
+ Free spesh log entries after consuming them. Reduces memory usage
+ Add a cancel handler for filewatch tasks to prevent leaking
+ Fix double free in platform/sys.c
+ Fix "pointer cast size mismatch" warnings on 32-bit arch's to resolve issue #444
+ Correctness improvements to the profiler
+ Fix a segfault that could occur due to missing Facts
+ Teach spesh about known values for PHI nodes
+ Unblock optimizing the box_* into a fastbox. Allow box_i to go through int cache.
+ decont on nativeref shall become decont_* + box_* to more easily
+ Improved spesh log output
+ Improve handling of failure to join a thread, throw instead of
+ Use larger buffer for gethostname when available
+ Reimplement async socket introspection
+ Set callsite in frame for JIT spesh plugin resolve.
+ Discover type Facts of coerce_sI op
+ Fix a case where the UTF-16 decoder would have a corrupted final
+ Correct named argument type tuple index calc. Fixes memory access
+ Make bytecode dumper more resilient against invalid bytecode
+ Expr JIT templates for hllboolfor, radix_I, coerce_*, extend_{u,i}*, mul_i,
sp_findmeth, serializetobuf, unbox_u
+ Use arithmetic right shift in JIT of brshift_i to ensure new bits
+ Fix trunc to casting upwards
+ JIT compile coerce_sI, param_rp_u, coerce_us, unbox_u, extend_{i8,u8,u32} and
trunc_{i8,u8}, decodertakeallchars, writeint, writeuint, coerce_(iu|ui),
extend_[ui]16, trunc_u(16|32)
OBS-URL: https://build.opensuse.org/request/show/662292
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl6/moarvm?expand=0&rev=45
- update to version 2018.10
+ Improved performance and randomization of hashes
+ Speed up various string operations
+ Various Unicode fixes
+ Improves support for native ints and unsigned ints
+ Atomic ops for object attributes
+ Improvements to debugserver
+ Improvements to the JIT compiler
+ Plugin infrastructure for spesh
+ Fixes to memory leaks
+ Sort hashes before serialization for more reproducible builds
+ Implement one dimensional inlined shaped CArrays
+ Lots of small fixes and performance improvements
OBS-URL: https://build.opensuse.org/request/show/648564
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl6/moarvm?expand=0&rev=43
- update to version 2018.04.1
+ Fix precision in Num and use Grisu3 algorithm for stringification
+ Use vectorization to speed up many string operations
+ Add support for the windows-932 variant of the ShiftJIS encoding
+ Fix bug in windows-1252 when a replacement occurs in the last position of the input stream
+ JIT expr templates for getstringfrom and getwvalfrom
+ JIT floor_n, continuationinvoke, ctx and a few ops that ThreadPoolScheduler uses
+ Measure and report time spent on JIT compilation
+ Ensure memory blocks in the nursery are aligned where necessary
+ Spot use of an item already put in a gen2 freelist
+ Suspend other threads during global destruction
+ Fix missing GC mark of deserializer contexts list
+ Optimize getrusage and log it in the profile
+ Add getsignals op, queries for valid signals
+ Guard against negative and zero signals in MVM_io_signal_handle
+ Make tryfindmeth not throw in some cases it did
+ Add missing write barrier enforcement in CPPStruct, CStruct
+ Use Fixed Size Allocator for all_scs list
+ Fix segfault on concurrent array access while resizing
+ Mark thread blocked around getaddrinfo
+ Convey the process ID of a started child
+ Fix optimization of wvals
+ Fix negated spesh of known type
+ Add optimize_unbox
+ Fix issues with optimization of boolean tests
+ Insert null-out-instructions before prof_enter
+ Cut module names out of filenames
+ Add metadata for ReentrantMutex and Semaphore
+ Fix loading bytecode on big endian systems
+ Correct lazy static lexical deserialization
+ Fix bytecodedump to understand inlines
OBS-URL: https://build.opensuse.org/request/show/602779
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl6/moarvm?expand=0&rev=39
- update to version 2018.03
+ Add remote debugging support, optionally enabled with the --debug-port option
+ Add getppid op. Allows a child process to get the parent process id, and thus
+ Use uv_fs_copyfile API in MVM_file_copy
+ Make IO signal handlers cancellable
+ Add an tryfindmethod op which evaluates to null in the event that the method
+ Ignore libuv-caused "fake" empty datagrams
+ Expose both hostname and port of received datagrams
+ Add proper support for strict decoding and replacements in decodestream for windows1252/1
+ Add some string consts in MVMStringConsts for MVMDecodeStream
+ optimize eq_s and ne_s against empty string in spesh
+ Bump libuv version 1.19.2
+ Add JIT templates for more than 50 ops
+ Fix several bugs in the expr JIT compiler
+ Only BAIL on DEOPT_ONE annotations on actual guard ops in expr JIT
+ Support for threaded profiling has been added, although it is not fully stable yet
+ Clean up one-shot timers after firing
+ Fix missing argument to syncsocket error message
+ Fix EOF detection on zero-size files
+ Add windows-1251 (Cyrillic) decode/encode support
+ Make MVM_spesh_manipulate_remove_handler_successors() public
+ Fix MVM_spesh_log_decont not logging anything
+ Don't spesh log if we have a spesh_cand
+ Don't optimize getattr unless known concrete
+ Implement unmanaged_size in MVMSpeshLog repr
+ Run basic facts discovery on inlined code
+ Clean up handler successors after throwish ops become non-throwing
+ Put inlined blocks between their caller and its successor
+ Fix an off-by-one in uninline
+ Remove superfluous DEOPT_ONE_INS annotation on some deconts
+ Work around a segfault caused by type tuple without type information
+ Revive removal of dead instructions after the first inlined function
+ Fix SEGV when opening MVM_*_LOG files
+ Better error in boxed ref for repr_id mismatch
+ Merge non-control-flow basic blocks so expr JIT has more code to optimize
OBS-URL: https://build.opensuse.org/request/show/589089
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl6/moarvm?expand=0&rev=37
- update to version 2017.08.1
+ Dynamic optimization moved to a worker thread
+ New statistics model for making better specialization decisions
+ New argument guard, based around a tree, which means less checks need to be
+ More efficient usage of memory in hot paths
+ Lots of bug fixes (around optimization and string handling)
+ JIT improvements
+ Performance improvements
+ Make precompiled byte code reproducible
+ Enable native callbacks on different threads
+ Update TinyMT to version 1.1
+ Implement atomic ops
+ Add nqp::coveragecontrol op
OBS-URL: https://build.opensuse.org/request/show/518002
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl6/moarvm?expand=0&rev=32