From eb240ba12a30fae9757316b49f8c11fdb0717a23796ae1dc4111ce82761aba5a Mon Sep 17 00:00:00 2001 From: Stefan Seifert Date: Sun, 15 Jun 2025 15:38:00 +0000 Subject: [PATCH] - update to version 2025.05 + Use rapidhash instead of siphash for string hashes + Optimizations in string decoding and comparison: + Micro-optimizations for attribute access and extops + Avoid unnecessary memcpy or qsort when NULL + Switch to direct malloc instead of stack+malloc+memcpy + Prevent crashes, guard jumps, avoid deep recursion in Spesh and GC + More detailed logging, new syscalls, user-accessible telemetry + Add is-debugserver-running syscall + Fix for Lua CVE-2014-5461 OBS-URL: https://build.opensuse.org/package/show/devel:languages:raku/moarvm?expand=0&rev=10 --- .gitattributes | 23 + .gitignore | 1 + MoarVM-2024.04.tar.gz | 3 + MoarVM-2025.05.tar.gz | 3 + moarvm.changes | 976 ++++++++++++++++++++++++++++++++++++++++++ moarvm.spec | 100 +++++ reproducible.patch | 29 ++ 7 files changed, 1135 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 MoarVM-2024.04.tar.gz create mode 100644 MoarVM-2025.05.tar.gz create mode 100644 moarvm.changes create mode 100644 moarvm.spec create mode 100644 reproducible.patch diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/MoarVM-2024.04.tar.gz b/MoarVM-2024.04.tar.gz new file mode 100644 index 0000000..3b7dbfe --- /dev/null +++ b/MoarVM-2024.04.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:499f2aa1d8b85db5b4335a1b5ae72b0bf8d80534c9a3b663f2c3a04a75c975ee +size 14953770 diff --git a/MoarVM-2025.05.tar.gz b/MoarVM-2025.05.tar.gz new file mode 100644 index 0000000..3f681dc --- /dev/null +++ b/MoarVM-2025.05.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61fc9ecc8b479ccc8d389fc73cce927c9f5b1070a9c62c60a0817f89dc832d91 +size 15114902 diff --git a/moarvm.changes b/moarvm.changes new file mode 100644 index 0000000..6eff3ba --- /dev/null +++ b/moarvm.changes @@ -0,0 +1,976 @@ +------------------------------------------------------------------- +Sun Jun 15 16:19:31 CEST 2025 - nine@detonation.org + +- update to version 2025.05 + ++ Use rapidhash instead of siphash for string hashes ++ Optimizations in string decoding and comparison: ++ Micro-optimizations for attribute access and extops ++ Avoid unnecessary memcpy or qsort when NULL ++ Switch to direct malloc instead of stack+malloc+memcpy ++ Prevent crashes, guard jumps, avoid deep recursion in Spesh and GC ++ More detailed logging, new syscalls, user-accessible telemetry ++ Add is-debugserver-running syscall ++ Fix for Lua CVE-2014-5461 + +------------------------------------------------------------------- +Thu May 23 04:53:11 UTC 2024 - Martin Schreiner + +- Update to 2024.04 +- Changes from 2024.04: + + Increase the size of the int-to-str cache to 65 + + Use atomic operations for on SerializationReader's working flag + + Fix memcmp call +- Changes from 2024.03: + + Add a GitHub release build workflow (ubuntu, macos, windows) + +------------------------------------------------------------------- +Wed Mar 27 16:15:02 CET 2024 - nine@detonation.org + +- update to version 2024.02 + ++ Add a bunch of *_u stuff ++ Add syscall that returns stat times in integer nanoseconds ++ Add stat repr and related syscalls ++ Use JFS64 instead of TinyMT64 as our PRNG ++ Add ops for unix domain sockets ++ log reason when not inlining into inlined bb ++ callercode no longer prevents inlining ++ Fix nqp::objprimunsigned handling of unsigned or sized integers ++ Speedup creating sha1 digest string ++ Speedup VMArray's deserialize()... ++ Jit nqp::rand_(i|n) ++ Use right size for a lit_str_idx in JIT and spesh ++ Update to Unicode 15.0 [ebefe261] ++ Protect the two property code lookup hashes being set up with a mutex ++ Add unsigned comparison ops (eq, ne, (l|g)(e|t)) ++ Add chown op ++ Reset errno to error of latest call to mkdir ++ Remove the fixed size allocator (FSA) ++ use correct format string in spesh log skip line ++ Use 2-char-at-a-time version of jeaiii's itoa + +------------------------------------------------------------------- +Fri Feb 23 09:26:23 UTC 2024 - pgajdos@suse.com + +- Use %autosetup macro. Allows to eliminate the usage of deprecated + %patchN + +------------------------------------------------------------------- +Sat Oct 1 10:14:14 CEST 2022 - nine@detonation.org + +- 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 + +------------------------------------------------------------------- +Sun Apr 3 10:38:13 CEST 2022 - nine@detonation.org + +- 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 + +- remove moarvm_wrong_value_after_multi_level_inlining.diff as is + contained in the release + +------------------------------------------------------------------- +Sun Mar 27 08:17:01 UTC 2022 - Stefan Seifert + +- Fix installation on RHEL7 + On Redhat based distros, rpm's auto-provides requires shared libs + to be executable. + +------------------------------------------------------------------- +Sun Mar 27 07:37:55 UTC 2022 - Stefan Seifert + +- Fix build on RHEL7 which seems to lack libzstd + +------------------------------------------------------------------- +Sun Mar 6 18:02:02 UTC 2022 - Stefan Seifert + +- Backport fix for issue discovered after release. + Add moarvm_wrong_value_after_multi_level_inlining.diff to be removed + with the next version. + +------------------------------------------------------------------- +Thu Feb 24 11:30:58 UTC 2022 - Andreas Schwab + +- On Factory use system libraries instead of bundled ones: libtommath, + libuv +- Use libffi instead of bundled dyncall +- Use C11 atomics on riscv64 instead of bundled outdated libatomic_ops +- Add libzstd for heap snapshot format version 3 +- Build with %{optflags} + +------------------------------------------------------------------- +Tue Feb 22 18:24:53 UTC 2022 - Stefan Seifert + +- Build with --no-mimalloc to work around bugs revealed post-release. + To be removed again with the next version. +- Fix runtime dependencies on s390x on openSUSE Leap + +------------------------------------------------------------------- +Mon Feb 21 16:04:54 UTC 2022 - Stefan Seifert + +- Fix build on s390x by using libffi instead of dyncall on that arch + +------------------------------------------------------------------- +Sun Feb 20 22:33:44 CET 2022 - nine@detonation.org + +- 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 + +------------------------------------------------------------------- +Sat Aug 28 10:25:42 UTC 2021 - Stefan Seifert + +- Backport a fix for segfaults in NativeCall callbacks from moarvm master + Add moarvm-fix-segfaults-in-native-callbacks.diff to be removed on the next release + +------------------------------------------------------------------- +Fri Aug 27 09:29:23 UTC 2021 - Stefan Seifert + +- Backport a memory leak fix from moarvm master + Add moarvm-fix-memory-leak.diff to be removed on the next release + +------------------------------------------------------------------- +Sun Aug 22 10:05:45 CEST 2021 - nine@detonation.org + +- update to version 2021.08 + ++ Fix another bug in `MVM_str_hash_fsck` ++ Free filename if exception when loading bytecode ++ Switch `MVM_coerce_n_s` to Ryū from Grisu3 with a `sprintf` fallback ++ Add JIT templates for `(bind|get)attr(s)?_*` ++ Fix deadlock by untimely GC in multi-threaded programs ++ Fix spesh optimizing away still needed label register + +------------------------------------------------------------------- +Sat Jul 24 21:25:38 CEST 2021 - nine@detonation.org + +- 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 + +------------------------------------------------------------------- +Sat Jul 10 15:45:40 CEST 2021 - nine@detonation.org + +- update to version 2021.06 + ++ Set sc.idx during deserialization to avoid costly lookup later ++ Try to trap concurrent hash accesses ++ Fix a case of heap-use-after-free rarely affecting `t/spec/S17-promise/nonblocking-await.t` + +------------------------------------------------------------------- +Mon May 24 14:01:50 UTC 2021 - Stefan Seifert + +- Forward port reproducible.patch after build system changes + +------------------------------------------------------------------- +Mon May 24 15:46:17 CEST 2021 - nine@detonation.org + +- 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 + +------------------------------------------------------------------- +Sun Mar 21 21:43:23 CET 2021 - nine@detonation.org + +- update to version 2021.03 + ++ Improve serialization of C types ++ Introduce `platform/socket.h` ++ Fix confused profiler output in multi-threaded apps + +------------------------------------------------------------------- +Sun Feb 21 13:26:03 CET 2021 - nine@detonation.org + +- 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 + + +------------------------------------------------------------------- +Wed May 13 12:39:51 CEST 2020 - nine@detonation.org + +- 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 + +------------------------------------------------------------------- +Tue Mar 3 12:38:52 CET 2020 - nine@detonation.org + +- 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 + +------------------------------------------------------------------- +Thu Jan 23 07:41:02 CET 2020 - nine@detonation.org + +- update to version 2020.01.1 + ++ [105d09d62] Fix NativeCall libraries losing state during repossession ++ [7b8ed6308,a3ec7f315,921c8de84,9d053b8e9,8ac8afcc2,611532317,0995f19b9,fce208cb1,72941ee22, + 9166ea591,61ac671ea] Fix several more compiler warnings + +- Remove moarvm-fix-segfaults-in-openssl.diff as the issue has been fixed upstream + +------------------------------------------------------------------- +Mon Jan 6 19:44:55 CET 2020 - nine@detonation.org + +- Add moarvm-fix-segfaults-in-openssl.diff fixing segfaulty regression + noticed too late for the release. + +------------------------------------------------------------------- +Sun Jan 5 10:58:58 CET 2020 - nine@detonation.org + +- 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 + +------------------------------------------------------------------- +Sun Dec 01 15:15:00 CET 2019 - nine@detonation.org + +- Backport fix for buildroot in packaged files in MoarVM-buildroot-fix.diff + +------------------------------------------------------------------- +Fri Nov 29 08:12:59 CET 2019 - nine@detonation.org + +- 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 + +Tue Jul 18 10:10:00 CEST 2019 - nine@detonation.org + +- update to version 2019.07 + ++ 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 + +- Add fix-build.patch with a backported fix to Configure.pl + +------------------------------------------------------------------- +Tue Mar 19 09:22:56 CET 2019 - nine@detonation.org + +- 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 + +------------------------------------------------------------------- +Fri Dec 28 18:35:57 CET 2018 - nine@detonation.org + +- 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) + + +------------------------------------------------------------------- +Sun Nov 11 20:51:00 CET 2018 - nine@detonation.org + +- 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 + +------------------------------------------------------------------- +Mon Jul 30 04:15:47 UTC 2018 - bwiedemann@suse.com + +- Add reproducible.patch to make build independent of build system + CPU type (boo#1100677) + +------------------------------------------------------------------- +Tue May 1 08:39:34 CEST 2018 - nine@detonation.org + +- 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 + +------------------------------------------------------------------- +Tue Mar 20 08:21:34 CET 2018 - nine@detonation.org + +- 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 + +------------------------------------------------------------------- +Thu Feb 1 06:29:35 CET 2018 - nine@detonation.org + +- update to version 2018.01 + ++ Faster string searching and other string improvements ++ New expression JIT ++ JIT compilation of native calls ++ Update Unicode database for Unicode 10 ++ Flush standard handles at exit ++ Flush output buffer where needed ++ Various improvements to spesh ++ Lots of bug fixes + +------------------------------------------------------------------- +Mon Aug 21 22:50:32 CEST 2017 - nine@detonation.org + +- 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 + +------------------------------------------------------------------- +Sat Jul 29 10:10:28 CEST 2017 - nine@detonation.org + +- update to version 2017.07 + ++ Full Unicode 9.0 and Emoji 4.0 text segmentation support ++ Lots of speed-ups, especially in string processing and JIT compiler ++ Numerous bug fixes ++ Remove support for character level I/O - taken over by high level code ++ Remove arbitrary string repeat limit ++ Remove synchronous process support - now done using async code ++ Re-implement synchronous sockets without using libuv ++ Add ability to get port from already bind-ed socket ++ Add cpucores op to get the number of CPU cores ++ Re-implement print/say debug output ops to encode and then use binary I/O ++ Eliminate use of libuv in synchronous file handles ++ Support merge_bytes in async proc ops, for reading STDOUT and STDERR ++ Support binding handles to file descriptors in async procs ++ Add string eqat/index ignorecase+ignoremark functions ++ Add new eqaticim_s and indexicim_s ops ignorecase+ignoremark ++ Add improved support for GCB=Prepend ++ Improve Regional Indicators support during normalization ++ Serialize a Decoder REPR object into null, so incidental file handle ++ Fix newline translation in various encoding's streaming decoder + +------------------------------------------------------------------- +Wed Jun 7 12:26:00 CEST 2017 - nine@detonation.org + +- Explicitly state build requirement to fix build on Fedora + +------------------------------------------------------------------- +Fri Jun 2 09:01:00 CEST 2017 - nine@detonation.org + +- update to version 2017.05 + ++ Mark profiler call graphs iteratively instead of recursively ++ Keep around line number annotations in spesh, for more accurate source ++ Introduce "telemeh", a high-precision-time low-impact logger ++ Fix error reporting in chdir ++ Fix memory leak on error in chdir ++ 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 + +------------------------------------------------------------------- +Tue Apr 18 22:32:02 CEST 2017 - nine@detonation.org + +- update to version 2017.04 + ++ Shorten the nursery when creating large bigints, to bring GC forward and ++ Use correct format for repeat/concat errors ++ Fix bug in indexic_s if expanding codepoint is the last codepoint ++ Speed up MVM_nfg_is_concat_stable ++ 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 ++ 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 ++ 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 ++ 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 ++ 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 ++ 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 ++ Remove arbitrary and small length range check for reading bytes from a file ++ Greatly reduce contention in the fixed-size allocator for multi-threaded ++ Mark thread GC blocked when doing synchronous writes ++ Add missing MVMROOT when reading bytes, which could result in occasional + +- Remove moarvm-remove-rpath.diff as the issue has been fixed upstream. + +------------------------------------------------------------------- +Sun Mar 19 10:42:38 CET 2017 - nine@detonation.org + +- update to version 2017.03 + ++ Fix loads of performance and stability issues + +------------------------------------------------------------------- +Sun Dec 18 10:19:43 CET 2016 - nine@detonation.org + +- remove use of rpath in build + Patch is already included in upstream git and can be removed in the next + release. + new patch: moarvm-remove-rpath.diff + +------------------------------------------------------------------- +Sun Dec 18 10:19:43 CET 2016 - nine@detonation.org + +- replace patching in spec file by use of proper configure options +- update to version 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 + +------------------------------------------------------------------- +Thu Nov 24 16:33:05 CET 2016 - nine@detonation.org + +- update to version 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 ++ Introduce MVM_SPESH_LIMIT, which limits how many specializations will be ++ 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 ++ give diagnostic output when compiling fails ++ Fixed readdir so it won't check old errno ++ 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 + +------------------------------------------------------------------- +Sun Oct 16 13:33:10 CEST 2016 - nine@detonation.org + +- update to version 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 + +------------------------------------------------------------------- +Fri Sep 30 10:33:53 UTC 2016 - nine@detonation.org + +- update to 2016.09 + ++ Fix various crasher bugs ++ Fix sprintf ++ Move string decoding to higher levels of the stack ++ Fix a couple of memory leaks ++ Fix deadlocks when accepting a socket + +------------------------------------------------------------------- +Sun Aug 21 14:18:31 UTC 2016 - nine@detonation.org + +- update to 2016.08 + ++ Fix various concurrency issues ++ Don't crash in P6opaque on NULL name_to_index_mapping ++ Fix off-by-one in grapheme iterator ++ 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 ++ 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 + +------------------------------------------------------------------- +Sun Jul 24 08:59:23 UTC 2016 - nine@detonation.org + +- update to 2016.07 + * Numerous fixes for memory leaks + * Numerous performance improvements + * Fixes for NativeCall + * Updates to moar-gdb.py (MoarVM GDB plug-in) + * New heap profiler + * JIT compile more code paths + * Make the GC smarter + * Fixes for UTF8-C8 encoding and use it for directory listing + * Fixe a couple of SEGVs + * Further support for function pointers in native calling + * Implement loadbytecodebuffer and loadbytecodefh ops + * New multi-dispatch cache supporting calls with named parameters + +------------------------------------------------------------------- +Mon Jan 29 14:27:38 UTC 2016 - nine@detonation.org + +- update to 2016.01 + + * Only optimize istrue to unbox_i when known concrete + * Bump libuv to 1.8 + * Various fixes/updates to graph_spesh.p6 + * Don't install sha1 and tinymt headers; they're only used internally + * Only install msinttypes on MS platform + * Fix a gc bug in string concatenation + * Add subsecond file time ops stat_time and lstat_time + * Fix stat CREATETIME return value + * Note graphs_s will be deprecated; dupe of chars + +------------------------------------------------------------------- +Mon Jan 4 14:27:38 UTC 2016 - nine@detonation.org + +- update to 2015.12 + * support for multidimensional arrays + * updated to Unicode 8 and lots of Unicode fixes + * C++ support for native calling + * proper support for unsigned native types + * threading fixes + * memory leak fixes + +------------------------------------------------------------------- +Thu Jun 11 16:42:37 CEST 2015 - mls@suse.de + +- update to 2015.05 + * instrumenting profiler + * many optimizations + * added documentation + * large file handling + * endian fixes + * lazy deserialization + * implement NFC/NFD/NFKC/NFKD Unicode normalization algorithms + * fix various memory leaks +- fix setup + +------------------------------------------------------------------- +Fri Aug 22 14:03:03 CEST 2014 - mls@suse.de + +- update to 2014.08 + * support for JIT + * specializer support + * async read/write + * lots of bugfixes + +------------------------------------------------------------------- +Tue Mar 11 11:26:26 CET 2014 - mls@suse.de + +- fix file list for i586 debuginfo builds + +------------------------------------------------------------------- +Wed Mar 5 11:17:16 CET 2014 - mls@suse.de + +- added Artistic2.txt to the doc section + +------------------------------------------------------------------- +Mon Mar 3 17:42:09 CET 2014 - mls@suse.de + +- initial release + diff --git a/moarvm.spec b/moarvm.spec new file mode 100644 index 0000000..af495de --- /dev/null +++ b/moarvm.spec @@ -0,0 +1,100 @@ +# +# spec file for package moarvm +# +# Copyright (c) 2025 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%global mvrel 2025.05 +Name: moarvm +Version: %{mvrel} +Release: 0 +Summary: A virtual machine built especially for Rakudo +License: Artistic-2.0 +Group: Development/Libraries/Other +URL: https://moarvm.org +Source: https://moarvm.org/releases/MoarVM-%{mvrel}.tar.gz +# PATCH-FIX-OPENSUSE boo#1100677 +Patch0: reproducible.patch +BuildRequires: pkgconfig +BuildRequires: perl(ExtUtils::Command) +BuildRequires: pkgconfig(libffi) +%if 0%{?suse_version} >= 1550 +BuildRequires: pkgconfig(libtommath) +BuildRequires: pkgconfig(libuv) +%endif +%if !0%{?rhel_version} +BuildRequires: pkgconfig(libzstd) +%endif + +%description +Short for "Metamodel On A Runtime", MoarVM is a modern virtual machine built +for the Rakudo compiler implementing the Raku Programming Language, and the +NQP Compiler Toolchain. MoarVM is used by the majority of Raku programmers. +Highlights include: + +Great Unicode support, with strings represented at grapheme level +Dynamic analysis of running code to identify hot functions and loops, and +perform a range of optimizations, including type specialization and inlining +Support for threads, a range of concurrency control constructs, and asynchronous +sockets, timers, processes, and more +Generational, parallel, garbage collection + +%package devel +Summary: MoarVM development headers and libraries +Group: Development/Libraries/Other +Requires: %{name} = %{version} +Requires: pkgconfig(libffi) +BuildArch: noarch +%if 0%{?suse_version} >= 1550 +Requires: pkgconfig(libtommath) +Requires: pkgconfig(libuv) +%endif +%if !0%{?rhel_version} +Requires: pkgconfig(libzstd) +%endif + +%description devel +MoarVM (Metamodel On A Runtime) development headers. + +%prep +%autosetup -p1 -n MoarVM-%{mvrel} + +%build +extra_config_args= +%if 0%{?suse_version} >= 1550 +extra_config_args+=" --has-libtommath --has-libuv" +%endif +CFLAGS="%{optflags}" \ +perl Configure.pl --prefix=%{_usr} --libdir=%{_libdir} --debug --optimize=3 --has-libffi $extra_config_args +%make_build NOISY=1 + +%install +%make_install +find %{buildroot} -type f \( -name '*.so' -o -name '*.so.*' \) -exec chmod 755 {} + +mkdir -p %{buildroot}/%{_libdir}/moar/share + +%files +%doc CREDITS Artistic2.txt docs +%license LICENSE +%{_bindir}/moar +%{_libdir}/libmoar* +%{_libdir}/moar +%{_datadir}/nqp + +%files devel +%{_includedir}/* +%{_datadir}/pkgconfig/* + +%changelog diff --git a/reproducible.patch b/reproducible.patch new file mode 100644 index 0000000..da4cb12 --- /dev/null +++ b/reproducible.patch @@ -0,0 +1,29 @@ +Author: Bernhard M. Wiedemann +Date: 2018-07-30 + +https://bugzilla.opensuse.org/show_bug.cgi?id=1100677 +do not detect CPU features at compile time +to make package build reproducible + +Forward ported to new build system by Stefan Seifert +Date: 2021-05-24 + +Index: MoarVM-2021.05/build/probe.pm +=================================================================== +diff --git a/build/probe.pm b/build/probe.pm +index 7c81e1a6f..8e94a592e 100644 +--- a/build/probe.pm ++++ b/build/probe.pm +@@ -1022,12 +1022,6 @@ sub rdtscp { + #endif + + int main(int argc, char **argv) { +- unsigned int _tsc_aux; +- unsigned int tscValue; +- tscValue = __rdtscp(&_tsc_aux); +- +- if (tscValue > 1) +- return EXIT_SUCCESS; + return EXIT_FAILURE; + } + EOT -- 2.51.1