Files
rakudo/rakudo.spec
Stefan Seifert 0e0a8ad80f Accepting request 1285907 from home:niner9:branches:devel:languages:raku
- 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<Raku> 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(<bar baz>))
  + 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<coerce-allomorphs-to> setting
  + Implement MAIN parameter bundling via the %*SUB-MAIN-OPTS<bundling> 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<foo>)
    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<rev> 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 <Perl5>" 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 \<a b c\> 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
2025-06-15 15:38:05 +00:00

93 lines
2.8 KiB
RPMSpec

#
# 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