From 0e0a8ad80f504a417a276931c3e3fdf2ea5e3e7f3d8004ecf541f32bb8ced2a8 Mon Sep 17 00:00:00 2001 From: Stefan Seifert Date: Sun, 15 Jun 2025 15:38:05 +0000 Subject: [PATCH] Accepting request 1285907 from home:niner9:branches:devel:languages:raku MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - update to version 2025.05 - Fixes: * Fixed a MoarVM GC bug causing incorrect behavior during LEAVE phasers. * Prevented incorrect type specification by name in Parameter constructor. * Corrected exception matching in throws-like. * Fixed native array parameterization to properly die. * Improved memory handling in file operations for 32/64-bit systems. * Cleaned up unnecessary or broken object constructions (e.g., QuantHash, List). * Numerous fixes around .assuming, .head/.first, slurpy parameter handling. * Corrected logic for parameter default types and sub-signatures. * Addressed memory reporting bugs and REPL grammar persistence. * Resolved bugs in Buf/Blob, typed slurpies, and parameter signature parsing. * Made Hash, Map, Array, and DateTime cloning consistent and reliable. * Fixed MAIN argument handling and slicing bugs. * Resolved deep structural issues in .deepmap, .clone, and .Numeric. * Fixes in REPL, .trans, substr-rw, Unicode handling, error messaging. * Addressed bugs in Iterable.flat, lazy sequences, native arrays, and metaops. * Restored expected behavior in module loading, Junction, and coercions. * Resolved numerous minor regression and LTA (Less Than Awesome) issues. - Incompatible changes: * Attribute access semantics made more consistent (may affect internals). * Parameter constructor no longer accepts types by name string. * Enforced stricter checks on typed parameters, placeholder redeclarations, and slurpies. * Changed native array and object hash behaviors in signatures and coercions. * Deprecated multi-path IO subs in language version 6.e. * Introduced tighter type checks and stricter enforcement in cloning and parameter typing. - Update to 2024.04. - New in 2024.04: * Improvements: * Make X::Syntax::Number::LiteralType a subclass of X::TypeCheck::Assignment * Make Rakudo up to 2x as fast on the JVM backend by using fastutil * Additions: * Add Allomorph.narrow * Add dispatch disambiguation via 'is item' parameter trait * Fixes: * Fix "No exception handler located for catch" trying to report method-not-found * Fix naming of anonymous classes * Increase JVM max heap * Fix reporting of X::Role::Initialization errors * Fix race condition in lazy deserialization on MoarVM backend * Fix obscure pattern bug in regex engine on MoarVM backend - New in 2024.03: * Fixes: * Add Parameter.of method * Unbreak the JVM build * Unbreak t/harness - Apply spec-cleaner. - Set "Source" to GitHub's URL, so the source tarball may be downloaded through the appropriate OBS service. - Use "%{version}" to declare the related MoarVM dependency, rather than hardcoding MoarVM's version. - update to version 2024.02 Too many changes to even summarize given the large version step. Please see docs/ChangeLog in the rakudo repository for the list. - Remove rakudo-fix-module-installation.diff as the fix is included upstream. - Use %autosetup macro. Allows to eliminate the usage of deprecated %patchN. - Final fix for module packaging issues. This follows upstream in completely reverting an offending change. - Backport yet another fix for module packaging issues (included in the same file) - Update backported fix to the real fix (see GitHub for explanation of this weird sequence) - Backport fix for module packaging in rakudo-fix-module-installation.diff Details in https://github.com/rakudo/rakudo/issues/4907 To be removed for the next release - update to version 2022.07 + Make previous values in REPL accessible with `$*N` + Add an `IO::Path.dir-with-entries` method, returning a `Bool` + Implement `will complain` trait + Allow optional : on LHS of signature binding declaration + Make &[max] and &[min] return RHS for ties + Make handles on attribute of type object more natural + Allow :from in identities + Reconsider the way `$*PERL` is deprecated + Allow setting ThreadPoolScheduler's max_threads to semi-infinite value + Re-imagine DateTime.new(Str) / Str.DateTime + Make sort() a runtime error + Implement coercion via new-disp and re-consider return typechecking dispatcher + Make Iterable.hyper|race take Any as a default for :batch and :degree + Categorize exceptions thrown by role appliers + Add :real named argument to DateTime.posix + Introduce (Exception|Cool).Failure coercer + Implement fallback support for MRO + Add IO::Path inode, dev, and devtype methods + Add sub version of .head / .skip / .tail + Implement Haskell's "span" as "snip" in 6.e + Remove the $?COMPILATION-ID constant as it was not documented and not tested + Many bugfixes and performance improvements - update to version 2022.03 + Expose the .file and .line methods on Label objects + Allow Date / DateTime *day* parameter to be a Callable / Whatever + Make error on Date.later(:hour|minute|second) more awesome + Give .chomp the possibility to specify a needle + Improve error message for invalid arguments passed to traits + Un =my= X::Comp::Group + Turn junctions into value objects + Fix classification and categorization over junctions and gist over Junction keys + Fix typo'd missing : in .nominal_type signature + Decrement # of calls in a block if any are optimized away + Fix IO::Path.parent + Fix multi-method candidates lost when 6.e role is applied + Workaround for cases where .ACCEPTS may return non-Raku object + Fix issue with native array.splice + Fix issue with Net::Curl + Make DateTime.new(Allomorph:D) work + Restore given / when optimization for Numeric cases + Fix/test Pod::To::Text rendering of =defn elements + Fix resources of the parent repo not found when using Staging + Optimize more cases of p6decontrv ops + Use new native unsigned integer NQP ops where applicable + Use --/++$i instead of $i = nqp::add/sub_i($i,1) for readability + Make Complex multiplication factor constant + Streamline Complex -> Real coercion + Simplify creating a Complex object + Enable num->str coercion in native.repeated/unique + Remove unneeded/confusing can('prec') checks + Remove some unnecessary trys - Fix build on RHEL7 which contains no fdupes package Also perl core packages are not installed by default - 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 + The $*PERL variable usage will warn starting from `6.e` language release, using $*RAKU is preferred now + Remove RESTRICTED setting (#3965) + Add support for $RAKUDO_OPT environment variable + Introducing RAKUDO_PRECOMPILATION_PROGRESS environment variable + Quite a few smaller additions + Numerous bug fixes and performance improvements. Far too many to even summarize here. - update to version 2021.08 + Enable rendering of nested blocks in the Pod::To::Text module + Raise priority of let and temp operators compared to .=, . and auto-increment, making let $foo .= &{ Nil } work more intuitively compared to (let $foo) .= &{ Nil } as was necessary before + Change the Scalar.WHICH method implementation, fixing the semantics to reflect that Scalar is not a value object + Make the &&, || and // operators about 2x as fast for the +@a candidates + Improve performance of smartmatching between two Signature objects + Fix some occurrences of hash-related concurrency issues + Fix the List.reduce method when used with &infix:<&&> + Fix matching of native types against roles Numeric, Real and Stringy + Make Pointer.Numeric and Pointer.Int methods return 0 instead of resulting in an error + Fix a race in the ClassHOW.new_type method + Make checking for Windows cheaper + Simplify Rakudo::Iterator::While iterator code + Fix location of the Proc.status deprecation message - update to version 2021.07 + Make cmp routine work properly on Iterator, Seq, Uni, native arrays and empty Lists + Add the ACCEPTS(Uni) method on Uni candidate + Implement last and next with a value for 6.e language revision + Properly support nearly all HTML5 entities in Pod E<> formatting code + Allow Ctrl-C to stop entry in REPL + Add ⩶ and ⩵ as Unicode synonyms for === and == + Deprecate the status method on Proc in place of exitcode and signal methods + Allow add method on IO::Path to take multiple values (e.g. "foo".IO.add()) + Optimize calls to map + Optimize loops without phasers for one and two arguments case + Make for / map with 2+ arguments up to 2x as fast + Make List cmp List about 25% faster + Reduce overhead of loops with phasers by at least 5% + Make the grep(Callable) method about 3% faster + Clean up sockets created by IO::Socket::INET.new on error + Fix freezes caused by concurrently produced iterators + Fix unimatch for non-base properties - update to version 2021.06 + Support generics with consumption and inheritance in roles + Introduce done foo syntax as a shortcut for emit foo; done + Implement pick method on Any taking HyperWhatever as an argument (.pick(**)) + Add a repl sub to enter the REPL from within a program + Add Buf and Blob coercers to Blob and Buf roles + Tweak worker addition for many small tasks + Make .grep(Regex) and .first(Regex) about 40% faster + Speed up setup of NativeCall subs and reduce memory usage + Micro-optimize levenshtein sub used to suggest alternatives in error messages + Fix bogus "emit without supply or react" error when using hyper to process arrays + Fix some edge cases with (+), (.), (&) and (|) set operators + Make signature destructuring with a Junction an error + Make Mu eqv Mu work - update to version 2021.05 + Make methods keys, values, kv, pairs, antipairs, invert work on Enum + Make uniname and uniparse method work on all Cool values such as Num or Match + Add the user and group methods to IO::Path + Add new methods day-fraction, modified-julian-date and julian-date to DateTime + Add support for ∊ and ∍ as aliases for ∈ and ∋ + Deprecate Cool.path method in favor of Cool.IO and NQP operators time_i and time_n in favor of time + Rename deterministic method on Iterator introduced in 2020.12 into is-deterministic + Calling ord method on Str:U now throws an exception instead of silently returning Nil + Make Int.chr and Int.unival handling of negative values consistent + Faster now, Str.wordcase, Str.uniparse, lines, words, my %h is QuantHash =, Int.unival, Str.unival, Str.ords, List.sum, Any.sum, chrs for native int arrays, uninames, Str.univals, Datish.daycount, uniprop, uniprops, Baggy.AT-KEY, infix (elem), DateTime.posix + Fix a regression in command line arguments parser + Fix compilation failure with EVAL in precompiled module's mainline + Fix an edge case of sub-signature handling, making say :([]) eqv :(@); properly result in False + Make signal handler setup synchronous to avoid race conditions + Fix race condition in ThreadPoolScheduler + Fix a potential issue on subclassing from NQP classes or consuming NQP roles + Fix Int.uniname to handle big negative and big positive integers + Fix handling of holes in raku method for native str arrays + Fix resource leak when iterating files using dir method on IO::Path + Fix an exception when grab was called on an empty SetHash that had contained entries before + Fix DateTime equivalence check with eqv relying on raku representation + Fix methods substr, substr-rw, chop, chomp, pred, succ, comb, lines, words, wordcase, trans, indent, uc, lc, tc, fc, tclc, flip, split, trim, trim-leading, trim-trailing, samemark, samespace, samecase, subst, subst-mutate when called on a Str subclass + Make Allomorph methods comb, chop, chomp, lc, uc, tc, tclc, fc, flip, substr, substr-rw return Str + Make sure trim, trim-leading, trim-trailing, split, samecase, samemark, samespace methods handle Allomorph values + Fix copying of empty shaped array - update to version 2021.03 + Implement space-delimited command line interface arguments + Add a predicated wait for Lock::ConditionVariable + The Pod::To::Text module's output supports rendering of multi-level lists now + Remove utf32 from encodings lists for MoarVM, it was never supported before + Make printf directive error more descriptive + Make sorting and related infix operators about 2x as fast + Optimize coercive parameter typechecking + Make >>. construct faster + Make BagHash.add a few percent faster + Make xx on a constant value about 5% faster + Fix single item assignment at List creation (my @l is List = 'foo' now produces a correct result) + Kernel.signals no longer returns unwanted extraneous data + Fixed .of method on type objects + Set up proper precedence info for a number of infix operators + Fix hypering on Map and when using next + Fix containerization on hypering - update to version 2021.02.1 + Fix a regression of the 2021.02 release where a lazy iterable usage could suddenly lead to a hang + Fix calling list and iterator methods on Map and Array type objects + Fix a minor memory leak in Rakudo runner - Remove fix-flapping-tests.diff fixed upstream - update to version 2021.02 + Introduce new coertion semantics. + Add new method deterministic to Iterator role + Introduce %*SUB-MAIN-OPTS setting + Implement MAIN parameter bundling via the %*SUB-MAIN-OPTS option + Add a new candidate to spurt routine and method. + Add :emit-on-empty, :emit-timed and :emit-once-on-empty methods to Supply.batch method + Make is DEPRECATED trait introspectable on Routine instances + Implement the prefix:<||> operator in postcircumfixes for 6.e and later + Add a flag to symlink allowing creation of relative symlinks + Implement binding of array- and hash-slices + Give raku -v a pure ASCII version + Introduce is test-assertion trait for routines + Make Whatever slice work on 1-dim native shaped arrays + Handle :exists and :delete on 1-dim native shaped arrays with int index + Introducing the Allomorph class + Add cmp candidates for Code + Add parameterizer methods for Metamodel::Primitives + Set equality operators: (==) Unicode ≡ and ≢ + Add support for Supply.tail(*), Supply.tail(*-3) and .tail(Inf) + Make Supply.head(*-3) consistent with List.head(*-3) + Add IO::Path::Parts class + Add support for printf($format, Junction) + Add IO::Handle.do-not-close-automatically, Supply.rotate and Capture.EXISTS-POS methods + Add RAKU_REPL_OUTPUT_METHOD environment variable + Add :chomp named argument to Str.lines similar to the same named argument of IO::Handle.new + Lots and lots of bug fixes and speedups - Backport fix-flapping-tests.diff - Get output of failing tests via rakudo-test-log.diff - Enable tests on armv6 - update to version 2020.05.1 + Implement support of environment variables RAKULIB, RAKUDOLIB, RAKU_TEST_DIE_ON_FAIL and RAKU_TEST_TIMES to eventually replace deprecated PERL6LIB, PERL6_TEST_DIE_ON_FAIL and PERL6_TEST_TIMES + Add multiple needles feature to Str.index/rindex + dd can now also handle BOOTContext objects + Str now has .Date and DateTime coercers + Date.yyyy-mm-dd now takes a separator parameter, defaulting to - + Added Date.dd-mm-yyyy and Date.mm-dd-yyyy methods + IterationBuffer now has a .Slip method for easier iteration + Add "is implementation-detail" trait and hide exposed internals with it + Introduce ^... and ^...^ sequence generator operators + Add Date.last-date-in-month and Date.first-day-in-month methods + Add a parents metamethod to Metamodel::ParametricRoleGroupHOW + Implement VM.request-garbage-collection + Remove undocumented Seq.new-consumed + Improve behavior of default ThreadPoolScheduler, increasing efficiency of multithreaded applications + Speed up compilation of large projects + Lots of bug fixes and speedups - Fix /usr/bin/raku missing due to quoting error in call to ln - Update description and summary to follow the rename of Perl 6 to Raku - Fix shebang lines in installed scripts - update to version 2020.02 + Remove deprecated support for implicit Distribution::Builder prefix + throws-like sub from Test module now throws an exception on Bool:D matchers + Supply.repeated now has unique rather than squish semantics + Enable user-defined chaining operators to work + Added prefix and suffix methods to Parameter class which return textual prefix and suffix of the parameter + Made an improperly typed default for an attribute a compile time error + New methods: SetHash.set, SetHash.unset, BagHash.add and BagHash.remove, IterationBuffer.Seq, Compiler.backend, Match.replace-with + Str.contains now also can take a Regex + Add :i(ignorecase) and :m(ignoremark) support to index, starts-with, ends-with, contains, substr-eq, indices + Cool.subst doesn't need a replacement string anymore + Supply.first now also works without a matcher + Properly show enums, subsets and routine return type in Pod::To::Text output + Added iterator implementation for Junction (fixes e.g. calling ^name on a Junction) + Fixed concurrency issue with re-checking a precomp file's dependencies + Lock.protect now allows return of a container + Work around spurious error in Lock::Async that could lead to crashing + Fixed handle leak when chaining Proc::Async + Lots of bug fixes and speedups - update to version 2020.01 + A big overhaul of role applying rules and behavior or submethods, constructors and destructors. Class attributes and methods are now prioritized over those from roles + Smartmatching typed Arrays against same-typed Positionals now returns True + DateTime class now accepts picosecond precision + Make default degree for hyper/batch utilize number of CPU cores better + $*ARGFILES special variable now defaults to $*IN if no arguments + An attempt to use methods index, indiced, contains on a List now gives a warning + Fix leaking file handles when loading modules + Fix missing dependency information when precompiling large dependency trees + Fixed relocatability of bundled native libraries + Fix "expected IO::Handle:D but got IO::Handle" in parallel test runs + Fix hang when initializing Int with a type object + Lots of semantics bug fixes + Add Version type coercer to Str + Add Supply.repeated, Supply.decode($encoding), Supply.first, Supply.collate, Supply.encode($encoding = "utf8"), Supply.comb, Supply.split, Supply.lines(:nl-in) methods + Add new is built attribute trait + Allow Supply.head(*-3) to be synonym of Supply.tail(3) + RAKUDO_POD_DECL_BLOCK_USER_FORMAT env var for retaining formatting of Pod6 leading declarator blocks + Add aliases: $*RAKU variable, Raku language in EVAL, RAKU_EXCEPTIONS_HANDLER env variable + Add :$match named parameter to comb subroutine when called on Cool object when the $matcher argument is a Regex + Add log2 subroutine and method + Allowed colon syntax on $.foo method, making $.foo: 42 work - Remove no longer needed rakudo-buildroot-fix.diff - fixed upstream - Backport fix for buildroot in packaged files in rakudo-buildroot-fix.diff (remove in next release) - Remove rakudo-fix-rpath.diff (issue has been fixed upstream) - update to version 2019.11 * Perl 6 is now Raku! This release comes with initial changes Added raku and rakudo executables Added support for .rakumod extension * Added support for Unicode v12.1 * Added GB2312 and GB18030 encodings * [6.e] LEXICAL:: pseudo-package includes all symbols visible in the lexical scope, including dynamic symbols from caller chain * [6.e] SETTING:: pseudo-package includes all symbols from all available COREs * [6.e] UNIT:: pseudo-package includes all lexicals visible at unit level * [6.e] Symbol binding is now possible for all pseudo-packages * [6.e] Pseudo-packages now return Failure for a missing symbol (was Nil) * [6.e] Grammar now returns Failure when failing to parse * EVAL no longer wraps evaluated code into own CORE context but shares the one used by the calling scope. It also means that `use v6.X` statement is not effective inside EVALs anymore * Individual language-release COREs are now accessible via CORE::v6 namespaces. * Stagestats are now shown for dependent precompilation * Greatly improved precompilation support in NativeCall * Don't recompile dependencies if another process already did it * Made the Buf.write-* methods return self * Fixed Maps to keep containers * Lots of bug fixes and speedups - Fix install-perl6-dist getting installed into the wrong directory - Remove fix-buildroot-in-precomp-files.diff (issue has been fixed upstream) - Add rakudo-fix-rpath.diff (remove in next release) - update to version 2019.07 * --profile-kind option to replace the deprectaed --profile-filename * Made a Failure throw when it is used as something Iterable * Fixed a lot of reproducibility issues in Rakudo and precompiled modules * Made some methods return Bools instead of 0 or 1 * Lots of bug fixes and speedups * Added an X::Cannot::Map exception * Telemetry's snap now also accepts an optional "checkpoint" message * Telemetry: allow snap :heap for heap snapshots * CompUnit::Repository::FileSystem objects can now also be created from an IO::Path * Added support for use v6.e.PREVIEW * EVAL now supports a :check flag to just check syntax (like perl6 -c) * Implemented support for Kernel.free-memory and Kernel.total-memory * Added the CachedIterator role for creating iterators on cached lists * By default a parametric role group would now choose non-signatured candidate for introspection; if there is no such candidate then the first one would be chosen * Added --confprog, a way to configure the behavior of some moarvm-internal systems like the profiler * Removed :where support for Signature/Parameter.perl * Removed several internal functions from CORE:: and SETTING:: namespaces * Removed wrappers for no longer existing internal function from RESTRICTED setting * Removed Compiler::build-date * Removed the timestamp in Distro's desc * Removed unused %opts argument from Perl6::World::load_module_early - Add fix-buildroot-in-precomp-files.diff Fixes environment variables (including ones pointing at the buildroot) ending up in precompiled files. The patch is a workaround for a known issue deep in the rakudo compiler. - update to version 2019.03.1 * Added a candidates method to CompUnit::Repository::FileSystem and CompUnit::Repository::Installation * Added buf8/blob8 read-(u)bits / write-(u)bits methods for reading/writing any number of **bits** * Added $?DISTRIBUTION to give introspection and IO capabilities to the current Distribution * Added addendum to X::Method::NotFound for better error messages * Added HLL interface for creating Signature and Parameter * Made `does X::Control` imply throwing to CONTROL * Made QuantHashes parameterizable to limit the type of value that can be put in them * Allowed `is Type` trait to handle parameterization like `is Set[Int]` * Added a dynamic-scope lexical pragma * Removed ComptUnit::Repository::Installation and Distribution compatibility shims for old versions of panda and zef * Renamed Block/WhateverCode.pos to .POSITIONS * Lots of bug fixes and speedups - update to version 2018.12 * Default language version is now v6.d * Deprecated .path/.args in Proc::Async, use .command instead * Implemented X::Language::TooLate * $*COLLATION.set is no longer experimental * Added dynamic variable $*FOLDING * Added Endian enum and implemented new methods in blob8/buf8 for reading/writing native values * Added Kernel.endian * Implemented Blob.readint / Buf.writeint * Added .native-descriptor for async sockets * Added .Real method to native arrays * Implemented last and LAST in whenever blocks * Lots of bug fixes and speedups - Disable check on armv6 as it randomly fails - Add _constraints to avoid test failures (on armv7) - Replace old $RPM_* shell vars - update to version 2018.10 * Randomized hash iteration order to prevent DDoS attacks * Deprecated `gethostname()` in favor of `$*KERNEL.hostname` * Initial support for Unicode 11.0 * Removed --encoding support * Fixes for reproducibility of builds * Added shapes support for HAS scoped attributes * Added NativeCall CArray.allocate method * Added "use isms " pragma to stop complaints about Perl 5 traps * Massive speedups of private and qualified method calls * Various performance improvements * Various bug fixes - update to version 2018.04.1 * Various performance improvements * Various bug fixes * Added support for "api" adverb when loading modules * Added ShiftJIS decode/encode support * Added a way to get child process ID via Proc::Async * Added Proc.pid * Added Array.grab * Added fails-like routine in Test.pm6 * Added support for "const" marked return values in C++ functions - update to version 2018.03 - update to version 2018.01 - update to version 2017.08 - update to version 2017.07 - Remove no longer needed rakudo-remove-compile-time-env.diff as it has been comitted upstream. - update to version 2017.05 - Backport removal of untested and unspecced feature from rakudo in rakudo-remove-compile-time-env.diff to fix BUILDROOT path being included in the compiled file. Fix was committed right after the release. - update to version 2017.04.2 Contains necessary fixes for packaging Perl 6 modules - Removed workaround for packaging issue from spec file - update to version 2017.03 - remove no longer needed patching from the spec file - update to version 2016.12 - update to version 2016.11 - update to version 2016.10 - update to version 2016.09 - update to 2016.07 * Huge number of performance improvements * Numerous bug fixes * Buf: unshift, prepend, pop, shift and splice (similar to List.*) * Blob|Buf.allocate($elems, @init-pattern) and .reallocate($elems) * DateTime.new(y,mo,d,h,mi,s) fully positional candidate * Can now uninstall distributions * Date/DateTime now fully subclassable * REPL now supports multi-line statements * Native str arrays (my str @a) * &*EXIT can be set to handle exit() statements (for embedding Perl 6) * Add :kv to .first * Add provisional $*DEFAULT-READ-ELEMS * Ability to use a customer debugger module * $*MAIN-ALLOW-NAMED-ANYWHERE allows MAIN to be friendlier about where it accepts flags * Add richer set of comparison operators for Versions * Many improvements to precompilation * Introduce .Map coercer * Implement alternate ways to call subtest * The "is-approx" sub from Test now allows for relative/absolute tolerance * The "cmp-ok" sub from Test now can take any infix as Str, even custom ones * A fail in a custom BUILD will now be returned, rather than thrown * use MONKEY-WRENCH and use MONKEY-BARS are now reserved names for future use * The "is required" trait on Attributes can now take a Bool or a Str * Support for new leap-second at 31-12-2016 added * IO::[Path,Handle] gained a .mode method which returns the POSIX file permissions * Fixed LTA error message with Str.samemark when no pattern present * Distribution is now a role interface * Custom repository implementations now supported, including precompilation * List.BIND-POS now fails instead of throwing * Failures in Cool.Numeric and related coercers now get propagated * Improved warning message for literals with leading zeros * Improved error message for attempts to `use` core types * Improved error message when IO::Path.new is given incorrect arguments * Improved error message when .polymod is given a zero as divisor - Package now contains precompiled versions of shipped libraries - removed patch: fb00ed3.diff - Add build system patch missing from rakudo release new patch: fb00ed3.diff - Replace ad-hoc patching using sed by proper patch in package build - update to 2016.01 * Chained .grep calls on Supply fixed (RT #127297) * Fixed interaction with perl6-debug and precompilation that resulted in an endless loop * re-enabled warning when smart-matching against a True or False literal * Fixed internal error when reporting certain type errors (RT #127207) * Fixed rare "duplicate definition of symbol" errors (RT #127107) * Fixed interpolating of pairs with non-key strings into signatures * Fixed error when smart-matching Seq against a Set (RT #127166) * Improved error message when smart-matching against an S///-expression * Fixed bad interaction between EXPORTHOW and multiple declarations (RT #126566) * Fixed various issues regarding precompilation * Improved accuracy of Complex.sqrt * hyper now preserves order of results, as designed * Range.sum on an empty, numeric Range is now 0 * Fixed Promise.allof() with an empty list of promises (RT #127101) * Improved message on premature virtual method call (RT #127097) * Better error message for module load failures of types that are part of the setting * Support for Readline in addition to Linenoise - update to 2015.12.1 (коледа) * first release to support the stable Perl 6.c. * lots of Unicode fixes * re-designed list handling (Great List Refactor) * re-designed module management and precompilation * support for multi dimensional arrays * support for C++ in NativeCall * hundreds of fixes and optimizations - update to 2015.05 (Dresden) * profiler support with moarvm * much improved startup time * the NativeCall module is now bundled * "0" (0 as a string) is now True * native arrays * 'bit' and 'byte' native types * NFG, NFC, NFD, Uni * various API changes for the Great List Refactor - update to 2014.08 * Many optimizations in both rakudo and the underlying VMs. * remove speed penalty of large ranges in character classes * quote words syntax \ splits on breakable space only * Add HyperWhatever / ** * Cool.eval and eval() are now removed * .hash now turns an itemized hash into a hash * subbuf-rw specced and implemented * the tr/// operator is implemented and has the proper return value * re-arranged infixish actions to support [[*]]= etc * initial implementation of S11 (Compilation Units) * implemented labeled loops and throwing of labels as payload - update to 2014.02 * switch from parrot to MoarVM * the 'eval' sub and method are now spelled 'EVAL' * the core of Rakudo::Debugger is now part of Rakudo - update to 2013.06 * JVM backend added - passes initial sanity tests * type captures in signature binder implemented * dir() is now lazy * &first now returns Nil instead of failing * Cool.path implemented - update to 2013.05 * speedup of repeated shifts of large lists and arrays * regex special characters can be used as delimiters * allow slice with :exists adverb on hashes * fix regex interpolation slowdown * fix exporting of subroutines * underlying nqp layer supports parrot and JVM as backend - update to 2012.12 * parse errors are much improved * the junction autothreader is now an order of magnitude faster * texas versions of the Set and Bag operators implemented * precedence related traits (equiv, looser, tighter, assoc) * FIRST/NEXT/LAST can now be used in all types of loop - update to 2012.07 * Built-in meta-objects (e.g. Metamodel::ClassHOW) now inherit from Any * &open now supports :enc/:encoding * Changed &dir to return IO::Path objects, not strings * Deprecated .bytes, .ucfirst, and .lcfirst on Str * recognize obsolete rand() and rand(N) forms at compile time * anonymous subset types 'subset :: of Int where { $_ > 0 }' - fix install section so that the installed perl6 binary finds its libraries - update to 2012.06 * Longest-Token Matching for | alternations in regexes * Stricter numification of strings (fails if the string does not represent a number) * 'require' now allows argument lists * Faster .map / list handling * Improvements to typed exceptions - update to 2012.05 * -I and -M command-line options * support for non-Int enums * 'use' now accepts positional arguments and is able to import by tag name * 'import' now works * basic support for Version literals * %*ENV now propagates into subprocesses * basic implementation of pack and unpack ported from 'ng' branch * fff flip-flop operator is now implemented, ff has been improved * various new regex features and improvements - update to 2012.03 - update to 2011.10 version * switch to "new object model" branch * much faster, both in startup and execution * native types on various operators - update to 2011.07 version * fix bug in exponentation of negative numbers * fix build on systems with little RAM - update to 2011.06 version * improved parrot register handling for more efficient code * gcd and lcm operators * -n and -p command line options * basic IPv6 support - update to 2011.01 version * faster subroutine calls (type cache) * implemented 'handles Rolename' trait * 'use Devel::Trace' debugging pragma * improved parsing of keyword boundaries * faster .comb - update to 2010.11 version * qw// is now implemented * .trans is now 5 times faster * indexing is now possible with both ranges and Whatever offsets together: @a[0 .. *-2] - update to 2010.10 version * we now have a simple version of require * the local timezone is available in $*TZ * Str.flip is now 100 times faster than it used to be * Hyperoperators can now be applied to infix:<+=> and friends * improved diagnostic messages - update to 2010.09 version * the specification for temporal objects is now completely implemented * several performance improvements were implemented * the series operator has been refactored * enumeration objects now conform much closer to the current spec - update to 2010.08 version * Due to a specification change, Nil is now undefined, and no longer simply an empty Parcel. * Many modifiers are now recognized on the outside of regexes and substitutions, for example s:g:samecase/abc/defg/ * Improvements to the performance of integer operations * Initial implementations of .pack and .unpack methods for the Buf class * Smartmatching against True or False is now an error. Most people who did this really wanted to look at the return value of .so instead. - update to 2010.07 version * rakudo now properly constructs closures in most instances * arrays can now handle infinite ranges * generic, multi-level Whatever-currying now works * simple binding operators := and ::= now work * simple feed operators <== and ==> now work - update to 2010.06 version * rakudo now uses immutable iterators internally * many more things are now evaluated lazily * backtraces no longer report routines from Parrot internals * match objects now act like real hashes and arrays * regexes can now interpolate variables - update to 2010.05 version * lexical classes and roles were implemented * basic support for named enumerations has been restored * Numeric / Real roles much closer to the spec now - update to 2010.04 version * fixed string interpolation * fixed assignment precedence issue * added DateTime type - update to 2010.03 version * Numerous updates to trigonometric functions and the Rat class * Basic s/// and s[...] = '...' implemented * use improved and need/import implemented, with some basic support for versioned modules and lexical importation * Grammars work again and now include support for regexes taking parameters and proto-regexes * Series operator now has basic support for the current Spec. * User defined operators working again * Support, though with caveats, for !, R, X and Z meta-operators - update to 2010.02 version - update to October version - update to September version - update to August version - update to June version - update to April version - initial revision OBS-URL: https://build.opensuse.org/request/show/1285907 OBS-URL: https://build.opensuse.org/package/show/devel:languages:raku/rakudo?expand=0&rev=10 --- .gitattributes | 23 + .gitignore | 1 + _constraints | 8 + rakudo-2024.04.tar.gz | 3 + rakudo-2025.05.tar.gz | 3 + rakudo-test-log.diff | 469 +++++++++++++++++++ rakudo.changes | 1036 +++++++++++++++++++++++++++++++++++++++++ rakudo.spec | 92 ++++ 8 files changed, 1635 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 _constraints create mode 100644 rakudo-2024.04.tar.gz create mode 100644 rakudo-2025.05.tar.gz create mode 100644 rakudo-test-log.diff create mode 100644 rakudo.changes create mode 100644 rakudo.spec 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/_constraints b/_constraints new file mode 100644 index 0000000..355562a --- /dev/null +++ b/_constraints @@ -0,0 +1,8 @@ + + + + + 1500 + + + diff --git a/rakudo-2024.04.tar.gz b/rakudo-2024.04.tar.gz new file mode 100644 index 0000000..4f488d4 --- /dev/null +++ b/rakudo-2024.04.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9a8e470c2d203e42ba7115a2c0a0ee8006f0377993de8ec34d2dfa1359c6a89 +size 6908669 diff --git a/rakudo-2025.05.tar.gz b/rakudo-2025.05.tar.gz new file mode 100644 index 0000000..fff9e94 --- /dev/null +++ b/rakudo-2025.05.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8dcfe832801aab6c45de07c053c3ce528cc9b0fb0d3c89143e0602346c62a210 +size 7060873 diff --git a/rakudo-test-log.diff b/rakudo-test-log.diff new file mode 100644 index 0000000..eb13acc --- /dev/null +++ b/rakudo-test-log.diff @@ -0,0 +1,469 @@ +diff --git a/tools/templates/Makefile-backend-common.in b/tools/templates/Makefile-backend-common.in +index 57396c6df..0688cbe59 100644 +--- a/tools/templates/Makefile-backend-common.in ++++ b/tools/templates/Makefile-backend-common.in +@@ -145,7 +145,7 @@ + @backend_prefix@-stresstest: @backend_prefix@-stresstest@bpm(HARNESS_TYPE)@ + + @backend_prefix@-coretest5: @backend_prefix@-all +- @bpm(HARNESS5)@ $(COMMON_TEST_DIRS) @bsm(SPECIFIC_TEST_DIRS)@ ++ PERL5LIB=lib5 @bpm(HARNESS5)@ --archive=make-test.tar $(COMMON_TEST_DIRS) @bsm(SPECIFIC_TEST_DIRS)@ || { mkdir results && cd results && tar xf ../make-test.tar && find . -type f -exec echo '{}' \; -exec cat '{}' \; ; false ; } + + # Run the spectests that we know work. + @backend_prefix@-spectest5: @backend_prefix@-testable +diff --git a/lib5/TAP/Harness/Archive.pm b/lib5/TAP/Harness/Archive.pm +new file mode 100644 +index 000000000..23810ba2d +--- /dev/null ++++ b/lib5/TAP/Harness/Archive.pm +@@ -0,0 +1,450 @@ ++package TAP::Harness::Archive; ++use warnings; ++use strict; ++use base 'TAP::Harness'; ++use Cwd (); ++use File::Basename (); ++use File::Temp (); ++use File::Spec (); ++use File::Path (); ++use File::Find (); ++use Archive::Tar (); ++use TAP::Parser (); ++use YAML::Tiny (); ++use TAP::Parser::Aggregator (); ++ ++=head1 NAME ++ ++TAP::Harness::Archive - Create an archive of TAP test results ++ ++=cut ++ ++our $VERSION = '0.18'; ++ ++=head1 SYNOPSIS ++ ++ use TAP::Harness::Archive; ++ my $harness = TAP::Harness::Archive->new(\%args); ++ $harness->runtests(@tests); ++ ++=head1 DESCRIPTION ++ ++This module is a direct subclass of L and behaves ++in exactly the same way except for one detail. In addition to ++outputting a running progress of the tests and an ending summary ++it can also capture all of the raw TAP from the individual test ++files or streams into an archive file (C<.tar> or C<.tar.gz>). ++ ++=head1 METHODS ++ ++All methods are exactly the same as our base L except ++for the following. ++ ++=head2 new ++ ++In addition to the options that L allow to this method, ++we also allow the following: ++ ++=over ++ ++=item archive ++ ++This is the name of the archive file to generate. We use L ++in the background so we only support C<.tar> and C<.tar.gz> archive file ++formats. This can optionally be an existing directory that will have ++the TAP archive's contents deposited therein without any file archiving ++(no L involved). ++ ++=item extra_files ++ ++This is an array reference to extra files that you want to include in the TAP ++archive but which are not TAP files themselves. This is useful if you want to ++include some log files that contain useful information about the test run. ++ ++=item extra_properties ++ ++This is a hash reference of extra properties that you've collected during your ++test run. Some things you might want to include are the Perl version, the system's ++architecture, the operating system, etc. ++ ++=back ++ ++=cut ++ ++my (%ARCHIVE_TYPES, @ARCHIVE_EXTENSIONS); ++BEGIN { ++ %ARCHIVE_TYPES = ( ++ 'tar' => 'tar', ++ 'tar.gz' => 'tar.gz', ++ 'tgz' => 'tar.gz', ++ ); ++ @ARCHIVE_EXTENSIONS = map { ".$_" } keys %ARCHIVE_TYPES; ++} ++ ++sub new { ++ my ($class, $args) = @_; ++ $args ||= {}; ++ ++ # these can't be passed on to Test::Harness ++ my $archive = delete $args->{archive}; ++ my $extra_files = delete $args->{extra_files}; ++ my $extra_props = delete $args->{extra_properties}; ++ ++ $class->_croak("You must provide the name of the archive to create!") ++ unless $archive; ++ ++ my $self = $class->SUPER::new($args); ++ ++ my $is_directory = -d $archive ? 1 : 0; ++ if ($is_directory) { ++ $self->{__archive_is_directory} = $is_directory; ++ $self->{__archive_tempdir} = $archive; ++ } else { ++ my $format = $class->_get_archive_format_from_filename($archive); ++ ++ # if it's not a format we understand, or it's not a directory ++ $class->_croak("Archive is not a known format type!") ++ unless $format && $ARCHIVE_TYPES{$format}; ++ ++ $self->{__archive_file} = $archive; ++ $self->{__archive_format} = $format; ++ $self->{__archive_tempdir} = File::Temp::tempdir(); ++ } ++ ++ # handle any extra files ++ if($extra_files) { ++ ref $extra_files eq 'ARRAY' ++ or $class->_croak("extra_files must be an array reference!"); ++ foreach my $file (@$extra_files) { ++ $class->_croak("extra_file $file does not exist!") unless -e $file; ++ $class->_croak("extra_file $file is not readable!") unless -r $file; ++ } ++ $self->{__archive_extra_files} = $extra_files; ++ } ++ ++ if($extra_props) { ++ ref $extra_props eq 'HASH' ++ or $class->_croak("extra_properties must be a hash reference!"); ++ $self->{__archive_extra_props} = $extra_props; ++ } ++ ++ return $self; ++} ++ ++sub _get_archive_format_from_filename { ++ my ($self, $filename) = @_; ++ ++ # try to guess it if we don't have one ++ my (undef, undef, $suffix) = File::Basename::fileparse($filename, @ARCHIVE_EXTENSIONS); ++ $suffix =~ s/^\.//; ++ return $ARCHIVE_TYPES{$suffix}; ++} ++ ++=head2 runtests ++ ++Takes the same arguments as L's version and returns the ++same thing (a L object). The only difference ++is that in addition to the normal test running and progress output ++we also create the TAP Archive when it's all done. ++ ++=cut ++ ++sub runtests { ++ my ($self, @files) = @_; ++ ++ # tell TAP::Harness to put the raw tap someplace we can find it later ++ my $dir = $self->{__archive_tempdir}; ++ $ENV{PERL_TEST_HARNESS_DUMP_TAP} = $dir; ++ ++ # get some meta information about this run ++ my %meta = ( ++ file_order => \@files, ++ start_time => time(), ++ ); ++ ++ my $aggregator = $self->SUPER::runtests(@files); ++ ++ $meta{stop_time} = time(); ++ ++ my @parsers = $aggregator->parsers; ++ for ( my $i = 0; $i < @parsers; $i++ ) { ++ $parsers[ $i ] = { ++ start_time => $parsers[ $i ]->start_time, ++ end_time => $parsers[ $i ]->end_time, ++ description => $files[ $i ], ++ }; ++ } ++ $meta{file_attributes} = \@parsers; ++ ++ my $cwd = Cwd::getcwd(); ++ my $is_dir = $self->{__archive_is_directory}; ++ my ($archive, $output_file); ++ if( $is_dir ) { ++ $output_file = $self->{__archive_tempdir}; ++ } else { ++ $output_file = $self->{__archive_file}; ++ ++ # go into the dir so that we can reference files ++ # relatively and put them in the archive that way ++ chdir($dir) or $self->_croak("Could not change to directory $dir: $!"); ++ ++ unless (File::Spec->file_name_is_absolute($output_file)) { ++ $output_file = File::Spec->catfile($cwd, $output_file); ++ } ++ ++ # create the archive ++ $archive = Archive::Tar->new(); ++ $archive->add_files($self->_get_all_tap_files); ++ chdir($cwd) or $self->_croak("Could not return to directory $cwd: $!"); ++ } ++ ++ # add in any extra files ++ if(my $x_files = $self->{__archive_extra_files}) { ++ my @rel_x_files; ++ foreach my $x_file (@$x_files) { ++ # handle both relative and absolute file names ++ my $rel_file; ++ if( File::Spec->file_name_is_absolute($x_file) ) { ++ $rel_file = File::Spec->abs2rel($x_file, $cwd); ++ } else { ++ $rel_file = $x_file; ++ } ++ push(@rel_x_files, $rel_file); ++ } ++ $archive->add_files(@rel_x_files) unless $is_dir; ++ $meta{extra_files} = \@rel_x_files; ++ } ++ ++ # add any extra_properties to the meta ++ if(my $extra_props = $self->{__archive_extra_props}) { ++ $meta{extra_properties} = $extra_props; ++ } ++ ++ # create the YAML meta file ++ my $yaml = YAML::Tiny->new(); ++ $yaml->[0] = \%meta; ++ if( $is_dir ) { ++ my $meta_file = File::Spec->catfile($output_file, 'meta.yml'); ++ open(my $out, '>', $meta_file) or die "Could not create meta.yml: $!"; ++ print $out $yaml->write_string; ++ close($out); ++ } else { ++ $archive->add_data('meta.yml', $yaml->write_string); ++ $archive->write($output_file, $self->{__archive_format} eq 'tar.gz') or die $archive->error; ++ # be nice and clean up ++ File::Path::rmtree($dir); ++ } ++ ++ print "\nTAP Archive created at $output_file\n" unless $self->verbosity < -1; ++ ++ return $aggregator; ++} ++ ++sub _get_all_tap_files { ++ my ($self, $dir, $meta) = @_; ++ $dir ||= $self->{__archive_tempdir}; ++ my @files; ++ my %x_files; ++ if($meta && $meta->{extra_files}) { ++ %x_files = map { $_ => 1 } @{$meta->{extra_files}}; ++ } ++ ++ File::Find::find( ++ { ++ no_chdir => 1, ++ wanted => sub { ++ return if /^\./; ++ return if -d; ++ my $rel_name = File::Spec->abs2rel($_, $dir); ++ return if $rel_name eq 'meta.yml'; ++ push(@files, $rel_name) unless $x_files{$rel_name}; ++ }, ++ }, ++ $dir ++ ); ++ return @files; ++} ++ ++=head2 aggregator_from_archive ++ ++This class method will return a L object ++when given a TAP Archive to open and parse. It's pretty much the reverse ++of creating a TAP Archive from using C and C. ++ ++It takes a hash of arguments which are as follows: ++ ++=over ++ ++=item archive ++ ++The path to the archive file. This can also be a directory if you created ++the archive as a directory. This is required. ++ ++=item parser_callbacks ++ ++This is a hash ref containing callbacks for the L objects ++that are created while parsing the TAP files. See the L ++documentation for details about these callbacks. ++ ++=item made_parser_callback ++ ++This callback is executed every time a new L object ++is created. It will be passed the new parser object, the name ++of the file to be parsed, and also the full (temporary) path of that file. ++ ++=item meta_yaml_callback ++ ++This is a subroutine that will be called if we find and parse a YAML ++file containing meta information about the test run in the archive. ++The structure of the YAML file will be passed in as an argument. ++ ++=back ++ ++ my $aggregator = TAP::Harness::Archive->aggregator_from_archive( ++ { ++ archive => 'my_tests.tar.gz', ++ parser_callbacks => { ++ plan => sub { warn "Nice to see you plan ahead..." }, ++ unknown => sub { warn "Your TAP is bad!" }, ++ }, ++ made_parser_callback => sub { ++ my ($parser, $file, $full_path) = @_; ++ warn "$file is temporarily located at $full_path\n"; ++ } ++ ++ } ++ ); ++ ++=cut ++ ++sub aggregator_from_archive { ++ my ($class, $args) = @_; ++ my $meta; ++ ++ my $file = Cwd::abs_path( $args->{archive} ) ++ or $class->_croak("You must provide the path to the archive!"); ++ ++ my $is_directory = -d $file; ++ ++ # extract the files out into a temporary directory ++ my $dir = $is_directory ? $file : File::Temp::tempdir(); ++ my $cwd = Cwd::getcwd(); ++ chdir($dir) or $class->_croak("Could not change to directory $dir: $!"); ++ my @files; ++ ++ Archive::Tar->new()->extract_archive($file) unless $is_directory; ++ my @tap_files; ++ ++ # do we have a meta.yml file in the archive? ++ my $yaml_file = File::Spec->catfile($dir, 'meta.yml'); ++ if( -e $yaml_file) { ++ ++ # parse it into a structure ++ if ($YAML::Tiny::VERSION < 1.57) { ++ $meta = YAML::Tiny->new()->read($yaml_file); ++ die "Could not read YAML $yaml_file: " . YAML::Tiny->errstr if YAML::Tiny->errstr; ++ } else { ++ $meta = eval { ++ YAML::Tiny->new()->read($yaml_file); ++ }; ++ if ($@) { ++ die "Could not read YAML $yaml_file: ".$@; ++ } ++ } ++ ++ if($args->{meta_yaml_callback}) { ++ $args->{meta_yaml_callback}->($meta); ++ } ++ $meta = $meta->[0]; ++ ++ if($meta->{file_order} && ref $meta->{file_order} eq 'ARRAY') { ++ foreach my $file (@{$meta->{file_order}}) { ++ push(@tap_files, $file) if -e $file; ++ } ++ } ++ } ++ ++ # if we didn't get the files from the YAML file, just find them all ++ unless(@tap_files) { ++ @tap_files = $class->_get_all_tap_files($dir, $meta); ++ } ++ ++ # now create the aggregator ++ my $aggregator = TAP::Parser::Aggregator->new(); ++ foreach my $tap_file (@tap_files) { ++ open(my $fh, $tap_file) or die "Could not open $tap_file for reading: $!"; ++ my $parser = TAP::Parser->new({source => $fh, callbacks => $args->{parser_callbacks}}); ++ if($args->{made_parser_callback}) { ++ $args->{made_parser_callback}->($parser, $tap_file, File::Spec->catfile($dir, $tap_file)); ++ } ++ $parser->run; ++ $aggregator->add($tap_file, $parser); ++ } ++ ++ # be nice and clean up ++ chdir($cwd) or $class->_croak("Could not return to directory $cwd: $!"); ++ File::Path::rmtree($dir) unless $is_directory; ++ ++ return $aggregator; ++} ++ ++=head1 AUTHOR ++ ++Michael Peters, C<< >> ++ ++=head1 BUGS ++ ++Please report any bugs or feature requests to ++C, or through the web interface at ++L. ++I will be notified, and then you'll automatically be notified of progress on ++your bug as I make changes. ++ ++=head1 SUPPORT ++ ++You can find documentation for this module with the perldoc command. ++ ++ perldoc TAP::Harness::Archive ++ ++You can also look for information at: ++ ++=over 4 ++ ++=item * AnnoCPAN: Annotated CPAN documentation ++ ++L ++ ++=item * CPAN Ratings ++ ++L ++ ++=item * RT: CPAN's request tracker ++ ++L ++ ++=item * Search CPAN ++ ++L ++ ++=back ++ ++=head1 ACKNOWLEDGEMENTS ++ ++=over ++ ++=item * A big thanks to Plus Three, LP (L) for sponsoring my work on this module and other open source pursuits. ++ ++=item * Andy Armstrong ++ ++=back ++ ++=head1 COPYRIGHT & LICENSE ++ ++Copyright 2007 Michael Peters, all rights reserved. ++ ++This program is free software; you can redistribute it and/or modify it ++under the same terms as Perl itself. ++ ++=cut ++ ++1; # End of TAP::Harness::Archive diff --git a/rakudo.changes b/rakudo.changes new file mode 100644 index 0000000..c84986c --- /dev/null +++ b/rakudo.changes @@ -0,0 +1,1036 @@ +------------------------------------------------------------------- +Sun Jun 15 16:26:46 CEST 2025 - nine@detonation.org + +- update to version 2025.05 + +- Fixes: + * Fixed a MoarVM GC bug causing incorrect behavior during LEAVE phasers. + * Prevented incorrect type specification by name in Parameter constructor. + * Corrected exception matching in throws-like. + * Fixed native array parameterization to properly die. + * Improved memory handling in file operations for 32/64-bit systems. + * Cleaned up unnecessary or broken object constructions (e.g., QuantHash, List). + * Numerous fixes around .assuming, .head/.first, slurpy parameter handling. + * Corrected logic for parameter default types and sub-signatures. + * Addressed memory reporting bugs and REPL grammar persistence. + * Resolved bugs in Buf/Blob, typed slurpies, and parameter signature parsing. + * Made Hash, Map, Array, and DateTime cloning consistent and reliable. + * Fixed MAIN argument handling and slicing bugs. + * Resolved deep structural issues in .deepmap, .clone, and .Numeric. + * Fixes in REPL, .trans, substr-rw, Unicode handling, error messaging. + * Addressed bugs in Iterable.flat, lazy sequences, native arrays, and metaops. + * Restored expected behavior in module loading, Junction, and coercions. + * Resolved numerous minor regression and LTA (Less Than Awesome) issues. + +- Incompatible changes: + * Attribute access semantics made more consistent (may affect internals). + * Parameter constructor no longer accepts types by name string. + * Enforced stricter checks on typed parameters, placeholder redeclarations, and slurpies. + * Changed native array and object hash behaviors in signatures and coercions. + * Deprecated multi-path IO subs in language version 6.e. + * Introduced tighter type checks and stricter enforcement in cloning and parameter typing. + + +------------------------------------------------------------------- +Thu May 23 12:35:38 UTC 2024 - Martin Schreiner + +- Update to 2024.04. +- New in 2024.04: + * Improvements: + * Make X::Syntax::Number::LiteralType a subclass of + X::TypeCheck::Assignment + * Make Rakudo up to 2x as fast on the JVM backend by using + fastutil + * Additions: + * Add Allomorph.narrow + * Add dispatch disambiguation via 'is item' parameter trait + * Fixes: + * Fix "No exception handler located for catch" trying to report + method-not-found + * Fix naming of anonymous classes + * Increase JVM max heap + * Fix reporting of X::Role::Initialization errors + * Fix race condition in lazy deserialization on MoarVM backend + * Fix obscure pattern bug in regex engine on MoarVM backend +- New in 2024.03: + * Fixes: + * Add Parameter.of method + * Unbreak the JVM build + * Unbreak t/harness +- Apply spec-cleaner. +- Set "Source" to GitHub's URL, so the source tarball may be + downloaded through the appropriate OBS service. +- Use "%{version}" to declare the related MoarVM dependency, rather + than hardcoding MoarVM's version. + +------------------------------------------------------------------- +Wed Mar 27 16:32:06 CET 2024 - nine@detonation.org + +- update to version 2024.02 + Too many changes to even summarize given the large version step. + Please see docs/ChangeLog in the rakudo repository for the list. +- Remove rakudo-fix-module-installation.diff as the fix is included + upstream. + +------------------------------------------------------------------- +Fri Feb 23 11:31:49 UTC 2024 - Dominique Leuenberger + +- Use %autosetup macro. Allows to eliminate the usage of deprecated + %patchN. + +------------------------------------------------------------------- +Sun Oct 2 12:45:42 UTC 2022 - Stefan Seifert + +- Final fix for module packaging issues. This follows upstream in completely + reverting an offending change. + +------------------------------------------------------------------- +Sun Oct 2 09:03:11 UTC 2022 - Stefan Seifert + +- Backport yet another fix for module packaging issues (included in the same file) + +------------------------------------------------------------------- +Sat Oct 1 15:59:56 UTC 2022 - Stefan Seifert + +- Update backported fix to the real fix (see GitHub for explanation of this + weird sequence) + +------------------------------------------------------------------- +Sat Oct 1 13:48:30 UTC 2022 - Stefan Seifert + +- Backport fix for module packaging in rakudo-fix-module-installation.diff + Details in https://github.com/rakudo/rakudo/issues/4907 + To be removed for the next release + +------------------------------------------------------------------- +Sat Oct 1 12:39:18 CEST 2022 - nine@detonation.org + +- update to version 2022.07 + + Make previous values in REPL accessible with `$*N` + + Add an `IO::Path.dir-with-entries` method, returning a `Bool` + + Implement `will complain` trait + + Allow optional : on LHS of signature binding declaration + + Make &[max] and &[min] return RHS for ties + + Make handles on attribute of type object more natural + + Allow :from in identities + + Reconsider the way `$*PERL` is deprecated + + Allow setting ThreadPoolScheduler's max_threads to semi-infinite value + + Re-imagine DateTime.new(Str) / Str.DateTime + + Make sort() a runtime error + + Implement coercion via new-disp and re-consider return typechecking dispatcher + + Make Iterable.hyper|race take Any as a default for :batch and :degree + + Categorize exceptions thrown by role appliers + + Add :real named argument to DateTime.posix + + Introduce (Exception|Cool).Failure coercer + + Implement fallback support for MRO + + Add IO::Path inode, dev, and devtype methods + + Add sub version of .head / .skip / .tail + + Implement Haskell's "span" as "snip" in 6.e + + Remove the $?COMPILATION-ID constant as it was not documented and not tested + + Many bugfixes and performance improvements + +------------------------------------------------------------------- +Sun Apr 3 11:11:38 CEST 2022 - nine@detonation.org + +- update to version 2022.03 + + Expose the .file and .line methods on Label objects + + Allow Date / DateTime *day* parameter to be a Callable / Whatever + + Make error on Date.later(:hour|minute|second) more awesome + + Give .chomp the possibility to specify a needle + + Improve error message for invalid arguments passed to traits + + Un =my= X::Comp::Group + + Turn junctions into value objects + + Fix classification and categorization over junctions and gist over Junction keys + + Fix typo'd missing : in .nominal_type signature + + Decrement # of calls in a block if any are optimized away + + Fix IO::Path.parent + + Fix multi-method candidates lost when 6.e role is applied + + Workaround for cases where .ACCEPTS may return non-Raku object + + Fix issue with native array.splice + + Fix issue with Net::Curl + + Make DateTime.new(Allomorph:D) work + + Restore given / when optimization for Numeric cases + + Fix/test Pod::To::Text rendering of =defn elements + + Fix resources of the parent repo not found when using Staging + + Optimize more cases of p6decontrv ops + + Use new native unsigned integer NQP ops where applicable + + Use --/++$i instead of $i = nqp::add/sub_i($i,1) for readability + + Make Complex multiplication factor constant + + Streamline Complex -> Real coercion + + Simplify creating a Complex object + + Enable num->str coercion in native.repeated/unique + + Remove unneeded/confusing can('prec') checks + + Remove some unnecessary trys + +------------------------------------------------------------------- +Sun Mar 27 09:19:10 UTC 2022 - Stefan Seifert + +- Fix build on RHEL7 which contains no fdupes package + Also perl core packages are not installed by default + +------------------------------------------------------------------- +Mon Feb 21 16:35:47 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 + + The $*PERL variable usage will warn starting from `6.e` language release, + using $*RAKU is preferred now + + Remove RESTRICTED setting (#3965) + + Add support for $RAKUDO_OPT environment variable + + Introducing RAKUDO_PRECOMPILATION_PROGRESS environment variable + + Quite a few smaller additions + + Numerous bug fixes and performance improvements. Far too many to even summarize here. + +------------------------------------------------------------------- +Sun Aug 22 11:17:56 CEST 2021 - nine@detonation.org + +- update to version 2021.08 + + Enable rendering of nested blocks in the Pod::To::Text module + + Raise priority of let and temp operators compared to .=, . and + auto-increment, making let $foo .= &{ Nil } work more intuitively compared to + (let $foo) .= &{ Nil } as was necessary before + + Change the Scalar.WHICH method implementation, fixing the semantics to reflect + that Scalar is not a value object + + Make the &&, || and // operators about 2x as fast for the +@a candidates + + Improve performance of smartmatching between two Signature objects + + Fix some occurrences of hash-related concurrency issues + + Fix the List.reduce method when used with &infix:<&&> + + Fix matching of native types against roles Numeric, Real and Stringy + + Make Pointer.Numeric and Pointer.Int methods return 0 instead of resulting in an error + + Fix a race in the ClassHOW.new_type method + + Make checking for Windows cheaper + + Simplify Rakudo::Iterator::While iterator code + + Fix location of the Proc.status deprecation message + +------------------------------------------------------------------- +Sat Jul 24 21:31:25 CEST 2021 - nine@detonation.org + +- update to version 2021.07 + + Make cmp routine work properly on Iterator, Seq, Uni, native arrays and empty Lists + + Add the ACCEPTS(Uni) method on Uni candidate + + Implement last and next with a value for 6.e language revision + + Properly support nearly all HTML5 entities in Pod E<> formatting code + + Allow Ctrl-C to stop entry in REPL + + Add ⩶ and ⩵ as Unicode synonyms for === and == + + Deprecate the status method on Proc in place of exitcode and signal methods + + Allow add method on IO::Path to take multiple values (e.g. "foo".IO.add()) + + Optimize calls to map + + Optimize loops without phasers for one and two arguments case + + Make for / map with 2+ arguments up to 2x as fast + + Make List cmp List about 25% faster + + Reduce overhead of loops with phasers by at least 5% + + Make the grep(Callable) method about 3% faster + + Clean up sockets created by IO::Socket::INET.new on error + + Fix freezes caused by concurrently produced iterators + + Fix unimatch for non-base properties + +------------------------------------------------------------------- +Sat Jul 10 15:56:02 CEST 2021 - nine@detonation.org + +- update to version 2021.06 + + Support generics with consumption and inheritance in roles + + Introduce done foo syntax as a shortcut for emit foo; done + + Implement pick method on Any taking HyperWhatever as an argument (.pick(**)) + + Add a repl sub to enter the REPL from within a program + + Add Buf and Blob coercers to Blob and Buf roles + + Tweak worker addition for many small tasks + + Make .grep(Regex) and .first(Regex) about 40% faster + + Speed up setup of NativeCall subs and reduce memory usage + + Micro-optimize levenshtein sub used to suggest alternatives in error messages + + Fix bogus "emit without supply or react" error when using hyper to process arrays + + Fix some edge cases with (+), (.), (&) and (|) set operators + + Make signature destructuring with a Junction an error + + Make Mu eqv Mu work + +------------------------------------------------------------------- +Mon May 24 15:57:56 CEST 2021 - nine@detonation.org + +- update to version 2021.05 + + Make methods keys, values, kv, pairs, antipairs, invert work on Enum + + Make uniname and uniparse method work on all Cool values such as Num or Match + + Add the user and group methods to IO::Path + + Add new methods day-fraction, modified-julian-date and julian-date to DateTime + + Add support for ∊ and ∍ as aliases for ∈ and ∋ + + Deprecate Cool.path method in favor of Cool.IO and NQP operators time_i and time_n in favor of time + + Rename deterministic method on Iterator introduced in 2020.12 into is-deterministic + + Calling ord method on Str:U now throws an exception instead of silently returning Nil + + Make Int.chr and Int.unival handling of negative values consistent + + Faster now, Str.wordcase, Str.uniparse, lines, words, my %h is QuantHash =, Int.unival, + Str.unival, Str.ords, List.sum, Any.sum, chrs for native int arrays, uninames, Str.univals, + Datish.daycount, uniprop, uniprops, Baggy.AT-KEY, infix (elem), DateTime.posix + + Fix a regression in command line arguments parser + + Fix compilation failure with EVAL in precompiled module's mainline + + Fix an edge case of sub-signature handling, making say :([]) eqv :(@); properly result in False + + Make signal handler setup synchronous to avoid race conditions + + Fix race condition in ThreadPoolScheduler + + Fix a potential issue on subclassing from NQP classes or consuming NQP roles + + Fix Int.uniname to handle big negative and big positive integers + + Fix handling of holes in raku method for native str arrays + + Fix resource leak when iterating files using dir method on IO::Path + + Fix an exception when grab was called on an empty SetHash that had contained entries before + + Fix DateTime equivalence check with eqv relying on raku representation + + Fix methods substr, substr-rw, chop, chomp, pred, succ, comb, lines, words, wordcase, trans, + indent, uc, lc, tc, fc, tclc, flip, split, trim, trim-leading, trim-trailing, samemark, + samespace, samecase, subst, subst-mutate when called on a Str subclass + + Make Allomorph methods comb, chop, chomp, lc, uc, tc, tclc, fc, flip, substr, substr-rw return Str + + Make sure trim, trim-leading, trim-trailing, split, samecase, samemark, samespace methods handle Allomorph values + + Fix copying of empty shaped array + +------------------------------------------------------------------- +Sun Mar 21 21:49:09 CET 2021 - nine@detonation.org + +- update to version 2021.03 + + Implement space-delimited command line interface arguments + + Add a predicated wait for Lock::ConditionVariable + + The Pod::To::Text module's output supports rendering of multi-level lists now + + Remove utf32 from encodings lists for MoarVM, it was never supported before + + Make printf directive error more descriptive + + Make sorting and related infix operators about 2x as fast + + Optimize coercive parameter typechecking + + Make >>. construct faster + + Make BagHash.add a few percent faster + + Make xx on a constant value about 5% faster + + Fix single item assignment at List creation (my @l is List = 'foo' now produces a correct result) + + Kernel.signals no longer returns unwanted extraneous data + + Fixed .of method on type objects + + Set up proper precedence info for a number of infix operators + + Fix hypering on Map and when using next + + Fix containerization on hypering + +------------------------------------------------------------------- +Thu Feb 25 08:55:13 CET 2021 - nine@detonation.org + +- update to version 2021.02.1 + + Fix a regression of the 2021.02 release where a lazy iterable usage could suddenly + lead to a hang + + Fix calling list and iterator methods on Map and Array type objects + + Fix a minor memory leak in Rakudo runner +- Remove fix-flapping-tests.diff fixed upstream + +------------------------------------------------------------------- +Sun Feb 21 16:27:19 CET 2021 - nine@detonation.org + +- update to version 2021.02 + + Introduce new coertion semantics. + + Add new method deterministic to Iterator role + + Introduce %*SUB-MAIN-OPTS setting + + Implement MAIN parameter bundling via the %*SUB-MAIN-OPTS option + + Add a new candidate to spurt routine and method. + + Add :emit-on-empty, :emit-timed and :emit-once-on-empty methods to Supply.batch method + + Make is DEPRECATED trait introspectable on Routine instances + + Implement the prefix:<||> operator in postcircumfixes for 6.e and later + + Add a flag to symlink allowing creation of relative symlinks + + Implement binding of array- and hash-slices + + Give raku -v a pure ASCII version + + Introduce is test-assertion trait for routines + + Make Whatever slice work on 1-dim native shaped arrays + + Handle :exists and :delete on 1-dim native shaped arrays with int index + + Introducing the Allomorph class + + Add cmp candidates for Code + + Add parameterizer methods for Metamodel::Primitives + + Set equality operators: (==) Unicode ≡ and ≢ + + Add support for Supply.tail(*), Supply.tail(*-3) and .tail(Inf) + + Make Supply.head(*-3) consistent with List.head(*-3) + + Add IO::Path::Parts class + + Add support for printf($format, Junction) + + Add IO::Handle.do-not-close-automatically, Supply.rotate and Capture.EXISTS-POS methods + + Add RAKU_REPL_OUTPUT_METHOD environment variable + + Add :chomp named argument to Str.lines similar to the same named argument of IO::Handle.new + + Lots and lots of bug fixes and speedups +- Backport fix-flapping-tests.diff +- Get output of failing tests via rakudo-test-log.diff + +------------------------------------------------------------------- +Fri Oct 23 11:30:12 UTC 2020 - Guillaume GARDET + +- Enable tests on armv6 + +------------------------------------------------------------------- +Wed May 13 12:59:55 CEST 2020 - nine@detonation.org + +- update to version 2020.05.1 + + Implement support of environment variables RAKULIB, RAKUDOLIB, RAKU_TEST_DIE_ON_FAIL + and RAKU_TEST_TIMES to eventually replace deprecated PERL6LIB, PERL6_TEST_DIE_ON_FAIL + and PERL6_TEST_TIMES + + Add multiple needles feature to Str.index/rindex + + dd can now also handle BOOTContext objects + + Str now has .Date and DateTime coercers + + Date.yyyy-mm-dd now takes a separator parameter, defaulting to - + + Added Date.dd-mm-yyyy and Date.mm-dd-yyyy methods + + IterationBuffer now has a .Slip method for easier iteration + + Add "is implementation-detail" trait and hide exposed internals with it + + Introduce ^... and ^...^ sequence generator operators + + Add Date.last-date-in-month and Date.first-day-in-month methods + + Add a parents metamethod to Metamodel::ParametricRoleGroupHOW + + Implement VM.request-garbage-collection + + Remove undocumented Seq.new-consumed + + Improve behavior of default ThreadPoolScheduler, increasing efficiency of multithreaded + applications + + Speed up compilation of large projects + + Lots of bug fixes and speedups + +------------------------------------------------------------------- +Mon Mar 9 08:34:11 UTC 2020 - Stefan Seifert + +- Fix /usr/bin/raku missing due to quoting error in call to ln + +------------------------------------------------------------------- +Wed Mar 4 09:56:19 UTC 2020 - Stefan Seifert + +- Update description and summary to follow the rename of Perl 6 to Raku +- Fix shebang lines in installed scripts + +------------------------------------------------------------------- +Tue Mar 3 14:15:18 CET 2020 - nine@detonation.org + +- update to version 2020.02 + + Remove deprecated support for implicit Distribution::Builder prefix + + throws-like sub from Test module now throws an exception on Bool:D matchers + + Supply.repeated now has unique rather than squish semantics + + Enable user-defined chaining operators to work + + Added prefix and suffix methods to Parameter class which return + textual prefix and suffix of the parameter + + Made an improperly typed default for an attribute a compile time error + + New methods: SetHash.set, SetHash.unset, BagHash.add and BagHash.remove, IterationBuffer.Seq, + Compiler.backend, Match.replace-with + + Str.contains now also can take a Regex + + Add :i(ignorecase) and :m(ignoremark) support to + index, starts-with, ends-with, contains, substr-eq, indices + + Cool.subst doesn't need a replacement string anymore + + Supply.first now also works without a matcher + + Properly show enums, subsets and routine return type in Pod::To::Text output + + Added iterator implementation for Junction (fixes e.g. calling ^name on a Junction) + + Fixed concurrency issue with re-checking a precomp file's dependencies + + Lock.protect now allows return of a container + + Work around spurious error in Lock::Async that could lead to crashing + + Fixed handle leak when chaining Proc::Async + + Lots of bug fixes and speedups + +------------------------------------------------------------------- +Tue Jan 28 10:43:42 CET 2020 - nine@detonation.org + +- update to version 2020.01 + + A big overhaul of role applying rules and behavior or submethods, constructors + and destructors. Class attributes and methods are now prioritized over those from roles + + Smartmatching typed Arrays against same-typed Positionals now returns True + + DateTime class now accepts picosecond precision + + Make default degree for hyper/batch utilize number of CPU cores better + + $*ARGFILES special variable now defaults to $*IN if no arguments + + An attempt to use methods index, indiced, contains on a List now gives a warning + + Fix leaking file handles when loading modules + + Fix missing dependency information when precompiling large dependency trees + + Fixed relocatability of bundled native libraries + + Fix "expected IO::Handle:D but got IO::Handle" in parallel test runs + + Fix hang when initializing Int with a type object + + Lots of semantics bug fixes + + Add Version type coercer to Str + + Add Supply.repeated, Supply.decode($encoding), Supply.first, Supply.collate, + Supply.encode($encoding = "utf8"), Supply.comb, Supply.split, Supply.lines(:nl-in) + methods + + Add new is built attribute trait + + Allow Supply.head(*-3) to be synonym of Supply.tail(3) + + RAKUDO_POD_DECL_BLOCK_USER_FORMAT env var for retaining formatting of Pod6 leading + declarator blocks + + Add aliases: $*RAKU variable, Raku language in EVAL, RAKU_EXCEPTIONS_HANDLER env variable + + Add :$match named parameter to comb subroutine when called + on Cool object when the $matcher argument is a Regex + + Add log2 subroutine and method + + Allowed colon syntax on $.foo method, making $.foo: 42 work +- Remove no longer needed rakudo-buildroot-fix.diff - fixed upstream + +------------------------------------------------------------------- +Sun Dec 01 15:35:00 CET 2019 - nine@detonation.org + +- Backport fix for buildroot in packaged files in rakudo-buildroot-fix.diff + (remove in next release) + +------------------------------------------------------------------- +Fri Nov 29 09:43:56 CET 2019 - nine@detonation.org + +- Remove rakudo-fix-rpath.diff (issue has been fixed upstream) +- update to version 2019.11 + * Perl 6 is now Raku! This release comes with initial changes + Added raku and rakudo executables + Added support for .rakumod extension + * Added support for Unicode v12.1 + * Added GB2312 and GB18030 encodings + * [6.e] LEXICAL:: pseudo-package includes all symbols visible in + the lexical scope, including dynamic symbols from caller chain + * [6.e] SETTING:: pseudo-package includes all symbols from all available COREs + * [6.e] UNIT:: pseudo-package includes all lexicals visible at unit level + * [6.e] Symbol binding is now possible for all pseudo-packages + * [6.e] Pseudo-packages now return Failure for a missing symbol (was Nil) + * [6.e] Grammar now returns Failure when failing to parse + * EVAL no longer wraps evaluated code into own CORE context but shares the one + used by the calling scope. It also means that `use v6.X` statement is not + effective inside EVALs anymore + * Individual language-release COREs are now accessible via CORE::v6 namespaces. + * Stagestats are now shown for dependent precompilation + * Greatly improved precompilation support in NativeCall + * Don't recompile dependencies if another process already did it + * Made the Buf.write-* methods return self + * Fixed Maps to keep containers + * Lots of bug fixes and speedups + +------------------------------------------------------------------- +Thu Jul 22 18:20:00 CEST 2019 - nine@detonation.org + +- Fix install-perl6-dist getting installed into the wrong directory + +------------------------------------------------------------------- +Thu Jul 18 10:52:24 CEST 2019 - nine@detonation.org + +- Remove fix-buildroot-in-precomp-files.diff (issue has been fixed upstream) +- Add rakudo-fix-rpath.diff (remove in next release) +- update to version 2019.07 + * --profile-kind option to replace the deprectaed --profile-filename + * Made a Failure throw when it is used as something Iterable + * Fixed a lot of reproducibility issues in Rakudo and precompiled modules + * Made some methods return Bools instead of 0 or 1 + * Lots of bug fixes and speedups + * Added an X::Cannot::Map exception + * Telemetry's snap now also accepts an optional "checkpoint" message + * Telemetry: allow snap :heap for heap snapshots + * CompUnit::Repository::FileSystem objects can now also be created from an IO::Path + * Added support for use v6.e.PREVIEW + * EVAL now supports a :check flag to just check syntax (like perl6 -c) + * Implemented support for Kernel.free-memory and Kernel.total-memory + * Added the CachedIterator role for creating iterators on cached lists + * By default a parametric role group would now choose non-signatured + candidate for introspection; if there is no such candidate then + the first one would be chosen + * Added --confprog, a way to configure the behavior of some + moarvm-internal systems like the profiler + * Removed :where support for Signature/Parameter.perl + * Removed several internal functions from CORE:: and SETTING:: namespaces + * Removed wrappers for no longer existing internal function from RESTRICTED setting + * Removed Compiler::build-date + * Removed the timestamp in Distro's desc + * Removed unused %opts argument from Perl6::World::load_module_early + +------------------------------------------------------------------- +Sat Apr 13 13:27:00 CEST 2019 - nine@detonation.org + +- Add fix-buildroot-in-precomp-files.diff + Fixes environment variables (including ones pointing at the buildroot) + ending up in precompiled files. The patch is a workaround for a known + issue deep in the rakudo compiler. + +Tue Mar 19 09:40:02 CET 2019 - nine@detonation.org + +- update to version 2019.03.1 + * Added a candidates method to CompUnit::Repository::FileSystem + and CompUnit::Repository::Installation + * Added buf8/blob8 read-(u)bits / write-(u)bits methods for + reading/writing any number of **bits** + * Added $?DISTRIBUTION to give introspection and IO capabilities + to the current Distribution + * Added addendum to X::Method::NotFound for better error messages + * Added HLL interface for creating Signature and Parameter + * Made `does X::Control` imply throwing to CONTROL + * Made QuantHashes parameterizable to limit the type of value that + can be put in them + * Allowed `is Type` trait to handle parameterization like + `is Set[Int]` + * Added a dynamic-scope lexical pragma + * Removed ComptUnit::Repository::Installation and Distribution + compatibility shims for old versions of panda and zef + * Renamed Block/WhateverCode.pos to .POSITIONS + * Lots of bug fixes and speedups + +------------------------------------------------------------------- +Fri Dec 28 21:30:27 CET 2018 - nine@detonation.org + +- update to version 2018.12 + * Default language version is now v6.d + * Deprecated .path/.args in Proc::Async, use .command instead + * Implemented X::Language::TooLate + * $*COLLATION.set is no longer experimental + * Added dynamic variable $*FOLDING + * Added Endian enum and implemented new methods in blob8/buf8 + for reading/writing native values + * Added Kernel.endian + * Implemented Blob.readint / Buf.writeint + * Added .native-descriptor for async sockets + * Added .Real method to native arrays + * Implemented last and LAST in whenever blocks + * Lots of bug fixes and speedups + +------------------------------------------------------------------- +Thu Nov 29 17:06:44 UTC 2018 - Guillaume GARDET + +- Disable check on armv6 as it randomly fails +- Add _constraints to avoid test failures (on armv7) + +------------------------------------------------------------------- +Mon Nov 12 17:30:02 UTC 2018 - Jan Engelhardt + +- Replace old $RPM_* shell vars + +------------------------------------------------------------------- +Sun Nov 11 22:03:49 CET 2018 - nine@detonation.org + +- update to version 2018.10 + * Randomized hash iteration order to prevent DDoS attacks + * Deprecated `gethostname()` in favor of `$*KERNEL.hostname` + * Initial support for Unicode 11.0 + * Removed --encoding support + * Fixes for reproducibility of builds + * Added shapes support for HAS scoped attributes + * Added NativeCall CArray.allocate method + * Added "use isms " pragma to stop complaints about Perl 5 traps + * Massive speedups of private and qualified method calls + * Various performance improvements + * Various bug fixes + +------------------------------------------------------------------- +Tue May 1 09:17:03 CEST 2018 - nine@detonation.org + +- update to version 2018.04.1 + * Various performance improvements + * Various bug fixes + * Added support for "api" adverb when loading modules + * Added ShiftJIS decode/encode support + * Added a way to get child process ID via Proc::Async + * Added Proc.pid + * Added Array.grab + * Added fails-like routine in Test.pm6 + * Added support for "const" marked return values in C++ functions + +------------------------------------------------------------------- +Tue Mar 20 09:37:19 CET 2018 - nine@detonation.org + +- update to version 2018.03 + +------------------------------------------------------------------- +Thu Feb 1 07:53:44 CET 2018 - nine@detonation.org + +- update to version 2018.01 + +------------------------------------------------------------------- +Mon Aug 21 23:08:20 CEST 2017 - nine@detonation.org + +- update to version 2017.08 + +------------------------------------------------------------------- +Sat Jul 29 10:30:18 CEST 2017 - nine@detonation.org + +- update to version 2017.07 +- Remove no longer needed rakudo-remove-compile-time-env.diff as it has + been comitted upstream. + +------------------------------------------------------------------- +Fri Jun 2 09:06:09 CEST 2017 - nine@detonation.org + +- update to version 2017.05 +- Backport removal of untested and unspecced feature from rakudo in + rakudo-remove-compile-time-env.diff to fix BUILDROOT path being included + in the compiled file. Fix was committed right after the release. + +------------------------------------------------------------------- +Tue Apr 18 22:40:03 CEST 2017 - nine@detonation.org + +- update to version 2017.04.2 + Contains necessary fixes for packaging Perl 6 modules +- Removed workaround for packaging issue from spec file + +------------------------------------------------------------------- +Sun Mar 19 14:00:50 CET 2017 - nine@detonation.org + +- update to version 2017.03 + +------------------------------------------------------------------- +Tue Dec 20 18:22:40 CET 2016 - nine@detonation.org + +- remove no longer needed patching from the spec file +- update to version 2016.12 + +------------------------------------------------------------------- +Thu Nov 24 16:39:10 CET 2016 - nine@detonation.org + +- update to version 2016.11 + +------------------------------------------------------------------- +Sun Oct 16 13:42:23 CEST 2016 - nine@detonation.org + +- update to version 2016.10 + +------------------------------------------------------------------- +Fri Oct 7 14:04:17 CEST 2016 - nine@detonation.org + +- update to version 2016.09 + +------------------------------------------------------------------- +Sun Jul 24 10:09:24 UTC 2016 - nine@detonation.org + +- update to 2016.07 + * Huge number of performance improvements + * Numerous bug fixes + * Buf: unshift, prepend, pop, shift and splice (similar to List.*) + * Blob|Buf.allocate($elems, @init-pattern) and .reallocate($elems) + * DateTime.new(y,mo,d,h,mi,s) fully positional candidate + * Can now uninstall distributions + * Date/DateTime now fully subclassable + * REPL now supports multi-line statements + * Native str arrays (my str @a) + * &*EXIT can be set to handle exit() statements (for embedding Perl 6) + * Add :kv to .first + * Add provisional $*DEFAULT-READ-ELEMS + * Ability to use a customer debugger module + * $*MAIN-ALLOW-NAMED-ANYWHERE allows MAIN to be friendlier about where it accepts flags + * Add richer set of comparison operators for Versions + * Many improvements to precompilation + * Introduce .Map coercer + * Implement alternate ways to call subtest + * The "is-approx" sub from Test now allows for relative/absolute tolerance + * The "cmp-ok" sub from Test now can take any infix as Str, even custom ones + * A fail in a custom BUILD will now be returned, rather than thrown + * use MONKEY-WRENCH and use MONKEY-BARS are now reserved names for future use + * The "is required" trait on Attributes can now take a Bool or a Str + * Support for new leap-second at 31-12-2016 added + * IO::[Path,Handle] gained a .mode method which returns the POSIX file permissions + * Fixed LTA error message with Str.samemark when no pattern present + * Distribution is now a role interface + * Custom repository implementations now supported, including precompilation + * List.BIND-POS now fails instead of throwing + * Failures in Cool.Numeric and related coercers now get propagated + * Improved warning message for literals with leading zeros + * Improved error message for attempts to `use` core types + * Improved error message when IO::Path.new is given incorrect arguments + * Improved error message when .polymod is given a zero as divisor +- Package now contains precompiled versions of shipped libraries +- removed patch: fb00ed3.diff + +------------------------------------------------------------------- +Tue Feb 2 09:40:00 UTC 2016 - nine@detonation.org + +- Add build system patch missing from rakudo release + new patch: fb00ed3.diff +- Replace ad-hoc patching using sed by proper patch in package + build + +------------------------------------------------------------------- +Tue Feb 2 09:40:00 UTC 2016 - nine@detonation.org + +- update to 2016.01 + * Chained .grep calls on Supply fixed (RT #127297) + * Fixed interaction with perl6-debug and precompilation that + resulted in an endless loop + * re-enabled warning when smart-matching against a True or False + literal + * Fixed internal error when reporting certain type errors + (RT #127207) + * Fixed rare "duplicate definition of symbol" errors + (RT #127107) + * Fixed interpolating of pairs with non-key strings into + signatures + * Fixed error when smart-matching Seq against a Set + (RT #127166) + * Improved error message when smart-matching against an + S///-expression + * Fixed bad interaction between EXPORTHOW and multiple + declarations (RT #126566) + * Fixed various issues regarding precompilation + * Improved accuracy of Complex.sqrt + * hyper now preserves order of results, as designed + * Range.sum on an empty, numeric Range is now 0 + * Fixed Promise.allof() with an empty list of promises + (RT #127101) + * Improved message on premature virtual method call + (RT #127097) + * Better error message for module load failures of types that + are part of the setting + * Support for Readline in addition to Linenoise + +------------------------------------------------------------------- +Mon Jan 4 14:49:13 UTC 2016 - nine@detonation.org + +- update to 2015.12.1 (коледа) + * first release to support the stable Perl 6.c. + * lots of Unicode fixes + * re-designed list handling (Great List Refactor) + * re-designed module management and precompilation + * support for multi dimensional arrays + * support for C++ in NativeCall + * hundreds of fixes and optimizations + +------------------------------------------------------------------- +Thu Jun 11 17:31:41 CEST 2015 - mls@suse.de + +- update to 2015.05 (Dresden) + * profiler support with moarvm + * much improved startup time + * the NativeCall module is now bundled + * "0" (0 as a string) is now True + * native arrays + * 'bit' and 'byte' native types + * NFG, NFC, NFD, Uni + * various API changes for the Great List Refactor + +------------------------------------------------------------------- +Fri Aug 22 14:23:16 CEST 2014 - mls@suse.de + +- update to 2014.08 + * Many optimizations in both rakudo and the underlying VMs. + * remove speed penalty of large ranges in character classes + * quote words syntax \ splits on breakable space only + * Add HyperWhatever / ** + * Cool.eval and eval() are now removed + * .hash now turns an itemized hash into a hash + * subbuf-rw specced and implemented + * the tr/// operator is implemented and has the proper return value + * re-arranged infixish actions to support [[*]]= etc + * initial implementation of S11 (Compilation Units) + * implemented labeled loops and throwing of labels as payload + +------------------------------------------------------------------- +Mon Mar 3 19:27:34 CET 2014 - mls@suse.de + +- update to 2014.02 + * switch from parrot to MoarVM + * the 'eval' sub and method are now spelled 'EVAL' + * the core of Rakudo::Debugger is now part of Rakudo + +------------------------------------------------------------------- +Sun Jul 14 21:02:43 UTC 2013 - daxim@cpan.org + +- update to 2013.06 + * JVM backend added - passes initial sanity tests + * type captures in signature binder implemented + * dir() is now lazy + * &first now returns Nil instead of failing + * Cool.path implemented + +------------------------------------------------------------------- +Mon Jun 3 13:48:44 UTC 2013 - daxim@cpan.org + +- update to 2013.05 + * speedup of repeated shifts of large lists and arrays + * regex special characters can be used as delimiters + * allow slice with :exists adverb on hashes + * fix regex interpolation slowdown + * fix exporting of subroutines + * underlying nqp layer supports parrot and JVM as backend + +------------------------------------------------------------------- +Wed Jan 16 17:40:34 CET 2013 - mls@suse.de + +- update to 2012.12 + * parse errors are much improved + * the junction autothreader is now an order of magnitude faster + * texas versions of the Set and Bag operators implemented + * precedence related traits (equiv, looser, tighter, assoc) + * FIRST/NEXT/LAST can now be used in all types of loop + +------------------------------------------------------------------- +Tue Aug 7 11:53:16 CEST 2012 - mls@suse.de + +- update to 2012.07 + * Built-in meta-objects (e.g. Metamodel::ClassHOW) now inherit from Any + * &open now supports :enc/:encoding + * Changed &dir to return IO::Path objects, not strings + * Deprecated .bytes, .ucfirst, and .lcfirst on Str + * recognize obsolete rand() and rand(N) forms at compile time + * anonymous subset types 'subset :: of Int where { $_ > 0 }' + +------------------------------------------------------------------- +Thu Jun 28 14:18:42 CEST 2012 - mls@suse.de + +- fix install section so that the installed perl6 binary + finds its libraries + +------------------------------------------------------------------- +Fri Jun 22 18:18:56 CEST 2012 - mls@suse.de + +- update to 2012.06 + * Longest-Token Matching for | alternations in regexes + * Stricter numification of strings (fails if the string does not + represent a number) + * 'require' now allows argument lists + * Faster .map / list handling + * Improvements to typed exceptions + +------------------------------------------------------------------- +Fri Jun 8 13:42:00 CEST 2012 - mls@suse.de + +- update to 2012.05 + * -I and -M command-line options + * support for non-Int enums + * 'use' now accepts positional arguments and is able to import by tag name + * 'import' now works + * basic support for Version literals + * %*ENV now propagates into subprocesses + * basic implementation of pack and unpack ported from 'ng' branch + * fff flip-flop operator is now implemented, ff has been improved + * various new regex features and improvements + +------------------------------------------------------------------- +Sat Mar 24 06:40:00 CET 2012 - carlin@glass.org.nz + +- update to 2012.03 + +------------------------------------------------------------------- +Fri Oct 21 19:36:05 CEST 2011 - mls@suse.de + +- update to 2011.10 version + * switch to "new object model" branch + * much faster, both in startup and execution + * native types on various operators + +------------------------------------------------------------------- +Thu Jul 21 20:54:19 CEST 2011 - mls@suse.de + +- update to 2011.07 version + * fix bug in exponentation of negative numbers + * fix build on systems with little RAM + +------------------------------------------------------------------- +Mon Jun 27 12:13:36 CEST 2011 - mls@suse.de + +- update to 2011.06 version + * improved parrot register handling for more efficient code + * gcd and lcm operators + * -n and -p command line options + * basic IPv6 support + +------------------------------------------------------------------- +Thu Jan 20 17:47:49 CET 2011 - mls@suse.de + +- update to 2011.01 version + * faster subroutine calls (type cache) + * implemented 'handles Rolename' trait + * 'use Devel::Trace' debugging pragma + * improved parsing of keyword boundaries + * faster .comb + +------------------------------------------------------------------- +Fri Nov 19 12:50:13 CET 2010 - mls@suse.de + +- update to 2010.11 version + * qw// is now implemented + * .trans is now 5 times faster + * indexing is now possible with both ranges and Whatever + offsets together: @a[0 .. *-2] + +------------------------------------------------------------------- +Fri Oct 22 16:10:11 CEST 2010 - mls@suse.de + +- update to 2010.10 version + * we now have a simple version of require + * the local timezone is available in $*TZ + * Str.flip is now 100 times faster than it used to be + * Hyperoperators can now be applied to infix:<+=> and friends + * improved diagnostic messages + +------------------------------------------------------------------- +Mon Sep 27 15:23:07 CEST 2010 - mls@suse.de + +- update to 2010.09 version + * the specification for temporal objects is now completely implemented + * several performance improvements were implemented + * the series operator has been refactored + * enumeration objects now conform much closer to the current spec + +------------------------------------------------------------------- +Fri Aug 27 15:09:37 CEST 2010 - mls@suse.de + +- update to 2010.08 version + * Due to a specification change, Nil is now undefined, and no longer + simply an empty Parcel. + * Many modifiers are now recognized on the outside of regexes and + substitutions, for example s:g:samecase/abc/defg/ + * Improvements to the performance of integer operations + * Initial implementations of .pack and .unpack methods for the Buf class + * Smartmatching against True or False is now an error. Most people who did + this really wanted to look at the return value of .so instead. + +------------------------------------------------------------------- +Fri Jul 23 12:20:25 CEST 2010 - mls@suse.de + +- update to 2010.07 version + * rakudo now properly constructs closures in most instances + * arrays can now handle infinite ranges + * generic, multi-level Whatever-currying now works + * simple binding operators := and ::= now work + * simple feed operators <== and ==> now work + +------------------------------------------------------------------- +Fri Jun 18 12:35:30 CEST 2010 - mls@suse.de + +- update to 2010.06 version + * rakudo now uses immutable iterators internally + * many more things are now evaluated lazily + * backtraces no longer report routines from Parrot internals + * match objects now act like real hashes and arrays + * regexes can now interpolate variables + +------------------------------------------------------------------- +Thu May 20 17:55:29 CEST 2010 - mls@suse.de + +- update to 2010.05 version + * lexical classes and roles were implemented + * basic support for named enumerations has been restored + * Numeric / Real roles much closer to the spec now + +------------------------------------------------------------------- +Thu Apr 22 15:35:51 CEST 2010 - mls@suse.de + +- update to 2010.04 version + * fixed string interpolation + * fixed assignment precedence issue + * added DateTime type + +------------------------------------------------------------------- +Fri Mar 19 11:59:56 CET 2010 - mls@suse.de + +- update to 2010.03 version + * Numerous updates to trigonometric functions and the Rat class + * Basic s/// and s[...] = '...' implemented + * use improved and need/import implemented, with some basic support + for versioned modules and lexical importation + * Grammars work again and now include support for regexes taking + parameters and proto-regexes + * Series operator now has basic support for the current Spec. + * User defined operators working again + * Support, though with caveats, for !, R, X and Z meta-operators + +------------------------------------------------------------------- +Fri Feb 19 12:24:44 CET 2010 - mls@suse.de + +- update to 2010.02 version + +------------------------------------------------------------------- +Fri Oct 23 15:44:35 CEST 2009 - mls@suse.de + +- update to October version + +------------------------------------------------------------------- +Mon Sep 21 18:05:24 CEST 2009 - mls@suse.de + +- update to September version + +------------------------------------------------------------------- +Thu Aug 27 18:51:56 CEST 2009 - mls@suse.de + +- update to August version + +------------------------------------------------------------------- +Fri Jun 26 14:25:01 CEST 2009 - mls@suse.de + +- update to June version + +------------------------------------------------------------------- +Thu Apr 23 16:22:37 CEST 2009 - mls@suse.de + +- update to April version + +------------------------------------------------------------------- +Tue Apr 7 18:58:45 CEST 2009 - mls@suse.de + +- initial revision + diff --git a/rakudo.spec b/rakudo.spec new file mode 100644 index 0000000..831f52f --- /dev/null +++ b/rakudo.spec @@ -0,0 +1,92 @@ +# +# spec file for package rakudo +# +# 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/ +# + + +Name: rakudo +Version: 2025.05 +Release: 0 +Summary: Raku (formerly Perl 6) implemenation that runs on MoarVM +License: Artistic-2.0 +Group: Development/Languages/Other +URL: https://rakudo.org/ +Source0: https://rakudo.org/dl/rakudo/rakudo-%{version}.tar.gz +Patch0: rakudo-test-log.diff +BuildRequires: moarvm-devel >= 2025.05 +BuildRequires: nqp >= 2025.05 +BuildRequires: perl(Archive::Tar) +BuildRequires: perl(Digest::SHA) +BuildRequires: perl(IPC::Cmd) +BuildRequires: perl(YAML::Tiny) +Requires: moarvm >= 2025.05 +Requires: nqp >= 2025.05 +Provides: /usr/bin/raku +Provides: raku = %{version}-%{release} +Provides: raku(CompUnit::Repository::Staging) +Provides: raku(MoarVM::Profiler) +Provides: raku(MoarVM::SIL) +Provides: raku(MoarVM::SL) +Provides: raku(MoarVM::Spesh) +Provides: raku(NativeCall) +Provides: raku(NativeCall::Compiler::GNU) +Provides: raku(NativeCall::Compiler::MSVC) +Provides: raku(NativeCall::Types) +Provides: raku(Pod::To::Text) +Provides: raku(RakuDoc::To::Text) +Provides: raku(Test) +%if !0%{?rhel_version} +BuildRequires: fdupes +%endif +%ifarch s390x +BuildRequires: libffi-devel +%endif + +%description +The most mature, production-ready implementation of the Raku language. + +%prep +%autosetup -p1 + +%build +perl Configure.pl --prefix="%{_prefix}" +VERBOSE_BUILD=1 make + +%check +rm t/08-performance/99-misc.t +RAKUDO_SKIP_TIMING_TESTS=1 make test + +%install +%make_install +mkdir -p "%{buildroot}/%{_datadir}/perl6/bin" +cp tools/install-dist.raku "%{buildroot}/%{_datadir}/perl6/bin/install-perl6-dist" +chmod +x "%{buildroot}/%{_datadir}/perl6/bin/install-perl6-dist" +sed -i -e '1s:!%{_bindir}/env :!%{_bindir}/:' "%{buildroot}/%{_datadir}/perl6/bin"/* +rm "%{buildroot}/%{_bindir}/raku" +rm "%{buildroot}/%{_bindir}/raku-debug" +ln -s rakudo "%{buildroot}/%{_bindir}/raku" +ln -s rakudo-debug "%{buildroot}/%{_bindir}/raku-debug" +%if !0%{?rhel_version} +%fdupes %{buildroot}/%{_bindir} +%fdupes %{buildroot}/%{_datadir}/perl6/runtime +%endif + +%files +%doc CREDITS +%license LICENSE +%{_bindir}/* +%{_datadir}/perl6 + +%changelog -- 2.51.1