./lang/rakudo, Perl 6 reference implementation

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 2020.08.2, Package name: rakudo-2020.08.2, Maintainer: pkgsrc-users

Rakudo Perl 6, or simply Rakudo, is a compiler for the Perl 6 programming

Required to run:
[lang/nqp] [devel/MoarVM]

Required to build:

Master sites:

SHA1: d4834f1099326cb06d504a5da1eada3d1ce644eb
RMD160: 535c5bacaf394ec23e7df6fd6c8c540c2d37bf51
Filesize: 4630.104 KB

Version history: (Expand)

CVS history: (Expand)

   2020-09-15 00:57:16 by Makoto Fujiwara | Files touched by this commit (3) | Package updated
Log message:
(lang/rakudo) Updated 2020.02.1 to 2020.08.2

New in 2020.08.2:
  + Fixes:
    + Fix output of `--show-config` option [1a1fe7fb][f00c4198]

New in 2020.08.1:
  + Changes:
    + Fix compiler version [1336e5f3]
    + Method `invoke` of `WalkList` returns a lazy `Seq` instance now [fe40ee1e]
  + Internal:
    + `Seq` class now has its own proto for `new` method [a19996db]

New in 2020.08:
  + Changes:
    + Methods `name` and `usage-name` of `Parameter` now return an empty `Str`,
      when there is no name, instead of `Nil`. Method `default` returns `Code` \ 
type object,
      when no default was provided instead of `Any` type object [c11f4b18]
    + Remove redundant `(())` from `Map.new.raku` [491e1def]
    + Routine `done-testing` of `Test` module returns `Bool` now,
      indicating if the tests passed or not [337848fe]
  + Deprecations:
    + Deprecate `--nqp-lib` command line option,
      which had no effect for more than a year [9071653e]
  + Fixes:
    + Make `X::Method::NotFound` exception more user-friendly
    + Fix false positive typechecking exceptions for some generic types
    + Ensure `Routine` subtypes are composed before performing mixins with
      their instances [7f2ae26c][e3c2646e]
    + Fix mixing in a role with attributes into a NQP class [1b5f6b98][9e51d01b]
    + Make exceptions thrown by supply iterators don't claim to have
      originally been thrown within the iterator itself [fcfc60b6]
    + Fix `Baggy.pickpairs` called with a `Callable` [08f81f24]
    + Fix a rare, yet possible data race [9d6d8dd7]
  + Additions:
    + Add `set_parameterizer`, `parameterize_type`, `type_parameterized`,
      `type_parameters` and `type_parameter_at` methods for \ 
`Metamodel::Primitives` [2ab94429]
  + Internal:
    + Type `Parameter` methods [c11f4b18]
    + Fix release pipeline to not delete the GNU/Linux build [4ad4bd30]
    + Make `Rakudo::Internals::JSON` up to 4.4x as fast [b60e1636][43bd739f]
    + Do roast-related cleanup, add `quicktest` make target
    + Rework `tools/update-passing-test-data.pl` to support backends [ea0c98cf]
    + Make `main-version.nqp` a backend-specific configuration file [80b0747a]
    + Add a `Perl6::SysConfig` class [ace5e22f]
    + Simplify binary release instructions a little [27eb5ea9]
    + Add tests to make sure profilers can be invoked [d7aa7e66]
    + Remove an outdated workaround from `Cool` implementation [a3af5833]
    + Fix incorrect method call [02a83442]

New in 2020.07:
  + Fixes:
    + Improve "Method not found" error message for some rare cases \ 
    + Fix calling `.say`/`.put`/`.note` methods on Match objects [9f546ef6]
    + Add word wrapping to numerous error messages, improve wording
    + Wordwrap `Mu.WHY` [16d24a21]
    + Fix check for valid Raku module extension to be an exact match instead of \ 
suffix-like one [d4eef8d4]
    + Fix result of `.raku` method called on a generic typed array [90f86d4c]
  + Additions:
    + Set equality operators: `(==)` Unicode `≡` and `≢` which allow to check
      for sameness of the operands using QuantHash semantics
      (for example, `1,2,3 (==) 3,1,2` returns `True`) [701f4cfb][dbd69ba7]
    + Add support for Supply.tail(*) and .tail(Inf) [9ccfc90e]
    + Add support for Supply.tail(*-3) [eaa72afa]
    + Make `Supply.head(*-3)` consistent with `List.head(*-3)` [5c8c7324][70e5cfb9]
    + Rakudo now supports the `--rakudo-home` command line option to specify the \ 
path of the Rakudo home [914bcbad]
  + Efficiency:
    + Make <a b c d>.permutations between 23 and 85x faster [682a4d4f]
    + Make IO::Handle.read(1) about 3x as fast and consuming less memory \ 
  + Internal:
    + Micro-optimize `buf8.new` creation code in compiler [ed936c14]
    + Give `Supply.tail` its own candidate [1a91af8c]
    + Add `Str.naive-word-wrapper` (implementation detail)
    + Make `IO::Path` use its own `.succ` / `.pred` logic [305fc7bd]
    + Remove placeholder files [07009cc0]
    + Re-imagine `CompUnit::Repository::FileSystem!distribution` [f3b1c8df]
    + Change `perl6` to `Raku` in nqp-configure submodule URL [ddebab5a]
    + Refactor `Rakudo home` and `NQP home` handling [e4f020ca]
    + Do core setting name mapping via compiler config [6e087e13]
    + Fix for spectest not seeing Inline::Perl5 [d5630720]

New in 2020.06:
    + Results of `dir` routine called with dirty base path are presented
      as cleaned up for some paths (like `///` or `a/../a`) unlike
      before. While compatibility with most of other cases is preserved
      and no ecosystem fallout was observed, be cautious of the possible
      observable changes if the code does not clean dirty paths using `cleanup` \ 
    + Since this release, when you start Raku with "-" as a single \ 
positional parameter, it
      will now check if STDIN is connected to a terminal.  If it is, then
      the REPL will be started, rather than appearing to freeze waiting
      for the user to enter something and issue an EOF.  If STDIN is *not*
      connected to a terminal, then Raku will read from STDIN and process
      that as the source of a program.
    + The `run` routine, `Proc.spawn` and `Proc::Async.new` are
      extended with a new argument `:$win-verbatim-args` defaulting to
      `False`. If the argument is left off or set to False, the
      arguments are quoted according to the Microsoft convention. This
      is identical to Rakus previous behavior and thus backwards
      compatible. When passing True the passed arguments are
      concatenated with a single space. No other processing takes
      place. This allows to manually quote the arguments as necessary.
  + Changes:
    + Support verbatim argument handling for `Proc` [709941c6][9a75738f]
    + Signatures of `slurp` and `spurt` routines not accepting redundant arguments is
      now compile time error rather than run-time one [22f43444]
    + The `Distro.desc` method now states codename for MacOS [b4b2a5ec]
    + The `gist` method output for multi-dimensional arrays is truncated now \ 
    + Parametrization a variable type in form `my $foo is Type[Foo, Bar]` works \ 
for all types now [de43f193]
    + The `rotate` method now returns `Seq` instead of `List` [4b501bd4]
    + Add CACHEDIR.TAG to mark cache dirs as cache [37646b86][c3bdb617][ef90599e]
    + Improve GNU C++ name mangling [4f672c27]
    + Make `Instant.raku` output simpler [c0b5fb28]
    + Improve smartmatching against `Mu`/`Any`/`Junction` types
      (`Mu.new ~~ Mu` does not die anymore, `any(Mu, Any) ~~ Mu` returns `True` \ 
now) [3b4794f4][840d3e81]
  + Fixes:
    + Fix code objects created BEGIN time EVAL getting lost in precompilation \ 
    + The `is` routine from `Test` module now handles types that cannot be \ 
stringified and
      compares them using `raku` method now [c9e94623]
    + Fix various JVM and JS backend issues [8e5b610a][2b81f978]
    + Fix BEGIN time `EVAL` accidentally running CHECK phasers of the outer comp \ 
unit [eeb4f43f][b874c68e]
    + Fix results o `"١٢٣".Numeric` and `"١٢٣".Int` \ 
    + Fix race in `PIO` method of `IO::Handle` [f33ce01c]
    + Fix `Date(now)` call [9dcbc5ff]
    + Fix `.comb(Str)` to ensure non-overlapping results [8d5a0f70]
    + Fix `Instant.raku` for Rational values [f506cc03]
    + Fix sorting of 2 element native arrays [becb85eb]
    + Make sure `push-all` does not push when exhausted when splitting using a \ 
regex [077300c5]
    + Improve error message for method calls placed after white space [4278e4c2]
    + Improve `X::Syntax::Variable::MissingInitializer` exception's error \ 
message [ee005d8b]
    + Improve `X::Method::NotFound` exception's error message to only suggest a \ 
submethod if correct [b02a7413]
    + Improve `malformed loop spec` related errors [d3c3e534]
    + Improve error message for case of too many directives in routine `sprintf` \ 
    + Improve detection of a version control conflict marker to provide an error \ 
message [65e412f7]
  + Additions:
    + Add `IO::Handle.do-not-close-automatically` method [61046d76][999d04aa]
    + Add `IO::Path::Parts` class [4387f280][187312b8][e9ea048b][30ae200f]
    + Add support for `printf($format, Junction)` [110324d3]
    + Add `Supply.rotate` method [9f7c9278]
    + Add `Capture.EXIST-POS` method [6a4f79ec][b55ecdf0][3372352e]
    + Add `RAKU_REPL_OUTPUT_METHOD` environment variable which sets
      the method used to stringify a value of an expression in REPL, default is \ 
`gist` [285717a0]
    + Add `:chomp` named argument to `Str.lines` similar to the same named \ 
argument of `IO::Handle.new` [1bcc5d73]
  + Efficiency:
    + Make creation of regex captures faster [15961f91][272c4636]
    + Make file test methods like `.d` or `.x` faster [c821bbc5]
    + Make `Match.caps` about 35% faster [87e91def]
    + Make `Str.split(Regex)` up to 2x faster [9c74d983]
    + Make `Str.split(Regex, *%_)` up to 2x faster [a9796fe5]
    + Make `dir` routine about 15% faster [700b7432]
    + Make `Blob.join` between 4% and 11% faster [84ff64cf]
    + Make `Blob.gist` about 2x as fast [b55667ef]
    + Make `QuantHash` implementation a bit faster  [4a728f2a]
    + Make `IO::Spec::Win32.basename` about 1.7x as fast [ecd06c9f]
    + Make `IO::Spec::Win32.tmpdir` about 1.8x as fast [6d427d47]
    + Make `IO::Spec::Win32.path` about 2x as fast [1a8e07c2]
    + Make `IO::Spec::Unix.path` about 3.5x as fast [8dc58abf]
    + Make `IO::Spec::Unix.basename` and `IO::Spec::Unic.extension` about 1.7x \ 
as fast [f89fad87]
    + Make `IO::Spec::Unix.tmpdir` about 1.8x as fast [a2860ead]
    + Make `WhateverCode.ACCEPTS` about 2x as fast [853e6227]
    + Make `IO::Path.sibling` about 2x as fast [a5eb1d4a]
    + Make `IO::Path.succ` and `IO::Path.pred` about 3x as fast [26b9f388][7238b094]
    + Make `IO::Path.parent` about 2.7x as fast [71cb0c56]
    + Make `IO::Path.parent(N)` about 2x as fast [f93ce875]
    + Make `IO::Path.child` about 1.4x as fast [f5b2c240]
    + Make `IO::Path.add` about 1.25x as fast [718d305b]
    + Make `IO::Path.dir` between 1.5x and 2.2x as fast [b63976a8]
    + Make `IO::Path.is-absolute` a bit faster [fc88b9c2][bd7fcb28]
    + Make `IO::Path.spurt` up to 35% faster [7571f65a]
    + Make `IO::Path.slurp` up to 4.7x as fast [d03fa4b0][cde948ae][36d89cf6]
    + Make `slurp` routine up to 40% faster [f3baa389][fc3e1aea]
    + Make `spurt` routine a few % faster [da5825e6]
    + Make `Str.Numeric` about 4.3x as fast [a0e58412]
    + Make `.IO` method and `IO::Path.new` about 2x as fast [2a88990b]
    + Make `IO::Spec.curupdir` about 25% faster [6a0eaabd][16d93e26]
    + Make `"42".Int` about 4.3x faster [3ee1777a]
    + Reduce overhead of `Code.ACCEPTS(value)` by 20% [2eec62fe]
    + Make `so` and `not` routines faster [d8c26500][8a3c36f8][5c93ddac][cb69cfce]
    + Optimize symbol lookup [c5f5d7ee][dc6594d6][5d61b3d0]
    + Prevent `$*OUT` lookup for each eigenstate of Junction when calling \ 
`print` or `put` [4297cb05]
    + Make `printf` routine up to 5% faster [e46d4590]
    + Streamline variable `is` and `of` handling [5561669b]
    + Make `Hash.sort` a tiny bit faster [cd617248]
    + Various small optimizations [a9074977][b50fd8b5][65e17c40]
  + Internal:
    + Set up CI with Azure Pipelines [ae07d685][43213e49][55529de1]
    + Fix `main-version.nqp` dependencies [b71cb3ae]
    + Improve `say`, `put`, `print`, `note` methods of `IO::Handle` [7a902b5e]
    + Simplify `Shaped1Array.reverse` [de173a18]
    + Simplify `EVAL(:check)` code [afe85110]
    + Rework part of `Match` internals [0a84aa7f]
    + Simplify `Kernel.signals` using `Signal` values [5644c709]
    + Simplify `Grammar.parse` code [f10e5bce][8be24067][1402c1d1]
    + Allow debuggers for Rakudo to be specified by environment variables [48e073e2]
    + Default to using egdb when possible in rakudo-gdb-m which covers OpenBSD \ 
developer environments [b01b0120]
    + Introduce INTERPOLATE [417a591a][777e7b65][3f9f23a9][638517da][05907227]
    + Various internal improvements to the code base [ef0c457b][e71d3cb0]
    + Update `INSTALL.txt` for the latest changes [8bb0235b][e1db95e8][bd5e19e4]
    + Various small improvements to compiler's user-facing documentation [dac68b27]
    + Various changes to documentation related to renaming process

New in 2020.05.1:

  + Fixes:
    + Fix relocatable builds on the moar backend [46648b9b]

New in 2020.05:

  + Fixes:
    + Decontainerize attribute default values [d71761e3]
    + Fix `Cool` catchers for some `Str` methods
    + Update some internal documentation to use Raku name [f2cc20c6]
    + Add `Cool.contains(Regex)` candidates [c3c1e8c9]
    + Make format of all `QuantHash`'s classes `.gist` uniform [cf01f7a2]
    + `Method` objects that don't have `*%_` in their signature, `.gist` ok \ 
    + Fix `DateTime` default stringification when the second is 0 [95de7859]
    + Make `Blob/Buf.list` non-lazy so they can be used in hypers \ 
    + Remove unnecessary parentheses from `Pair.raku` [35a827af]
    + `IO::CatHandle.slurp` did not accept `:bin` parameter [42c4c3fc]
    + Fixed some cases where `IO::Handle.slurp` was used without `:close` [efab398e]
    + `run` routine with `out` named parameter being a `Handle` and `merge` flag
      enabled now writes both stdout and stderr to the handle [1f838791]
    + A single whenever react based on a signal is now serialized by default \ 
    + `&cmp-ok` subroutine of `Test` module now works with objects without \ 
support for methods [fc0f78d5]
    + Ensure meta-ops respect user-defined chain ops [ac012f18]
    + Fix exception when mixing in roles that use `is built` at runtime [4c026ab8]
    + Fix inconsistent match result when using a code block in a regex [1e0474d4]
    + Fix error message related to `nextcallee` subroutine [136087e7]
    + Fix regression in sequence operator [0a6456a4]
    + Fix reflection for . twigilled parameters [296fbcf4]
    + Fix `Parameter.raku` with `OUTER` default values [87d2ff95][2f8538ed]
    + Fix `Capture.WHICH` for subclasses of `Capture` [8808401c]
    + Fix `Capture.EXISTS-KEY` for some `Capture` values [2d18cdeb]
    + Make (1..-Inf).reverse) work as intended [3983b4f8]
    + Make (foo .. foo).reverse correctly [c588323e]
    + Properly throw an exception on attempts to add a key to an immutable `Map` \ 
    + `INPUTRC` environment variable is now checked for a Readline config when \ 
using REPL [61a48362]
    + Add missing label support for some loop constructs [66a2250a]
    + Make `Real.sign` always return an `Int` [42a303ec]
    + Result of `reverse` called on a `List` value with holes returns a
      reverse of the list with `Nil` in place of holes instead of `Mu` now \ 
    + Various small JVM backend related improvements \ 
  + Additions:
    + Added `docs/IN-MEMORIAM.md` to commemorate departed contributors \ 
    + Implement support of environment variables `RAKULIB` and `RAKUDOLIB`
      to eventually replace deprecated `PERL6LIB`
[b3bb0d38][cc165a05][1fd660a9][00c0dec3][be9bb4b1][30a3186b][e8f7eb56][61124c35] \ 
    + Implement support for environment variables `RAKU_TEST_DIE_ON_FAIL` and \ 
      to replace `PERL6_TEST_DIE_ON_FAIL` and `PERL6_TEST_TIMES` [30e7a67c][afff3b0b]
    + Show timing information when installing core modules in build process \ 
    + Add multiple needles feature to `Str.index/rindex` [4cec44a3][cf02c2e9]
    + `dd` can now also handle `BOOTContext` objects [8b70bfb8]
    + `Str` now has `.Date` and `DateTime` coercers [d95d218f]
    + `Date.yyyy-mm-dd` now takes a separator parameter, defaulting to `-` [3017cfea]
    + Added `Date.dd-mm-yyyy` and `Date.mm-dd-yyyy` methods [70ac9b72]
    + `IterationBuffer` now has a `.Slip` method for easier iteration [d68fe5eb]
    + Add `is implementation-detail` trait and hide exposed internals with it
    + Introduce `^...` and `^...^` sequence generator operators [371590fa][bbed2255]
    + Add `Date.last-date-in-month` and `Date.first-day-in-month` methods \ 
    + Add a `parents` metamethod to `Metamodel::ParametricRoleGroupHOW` [8dcfa849]
  + Removals:
    + Remove undocumented `Seq.new-consumed` [0f97a7f5]
    + Move implementation detail to internals [aed658d6][b639221d][86bc3b3d]
    + Turn `infix:<…>` and `infix:<…^>` into aliases [bd4e119d]
  + Build system:
    + Fix CircleCI configuration [efba9639][ffcc6198]
    + Be more robust when working with git reference directories that has spaces \ 
in path
    + Move prebuild archive scripts to scripts folder [e1114208]
    + Change update-submodules.pl to not use the shell at all [0ae8b4e0]
    + Fix installation of perl6 aliases [aeb418a5]
    + Move RUN_CLEAN_TARGET_FILES to a separate script [ffad1024]
    + Fix building non-moar backends on Windows [47650ebe]
    + Fix `--nqp-home` Configure.pl parameter [94fdb3d5][59fe24bc]
    + Make timing based performance tests opt in via `RAKUDO_RUN_TIMING_TESTS` \ 
environment variable [31ffc2bd]
  + Efficiency:
    + Speed up compilation of large projects [c9092582][6956c063]
    + Make `raku -n` as fast as manual iteration with `.IO.lines` \ 
    + Improve behavior of default `ThreadPoolScheduler`,
      increasing efficiency of multithreaded applications [77a2201e][750abe03]
    + Make method lookup with the handles trait 13% faster in certain cases \ 
    + Simplify "previous setting" logic [9f4a0f1c]
    + Make creation of `Failure` objects faster [79ca396e]
    + Make default `DateTime` stringification about 12% faster [0e872356][d95141ed]
    + Make all `IO::Path` filetest methods a few percent faster \ 
    + Make `IO::Path.mode` about 14x as fast [a093b7fa]
    + Make `Date.yyyy-mm-dd` about 250x as fast [3017cfea][f9ecf6e8]
    + Make accessing native shaped arrays about 15x faster [80f2aebf]
    + Make `Seq.Numeric` and `Seq.Int` slightly faster [b7b9358f]
    + Make a number of traits around 2% faster [4bbe308b]
    + Make a minor optimization to a bunch of STORE methods [a4fbbfa3]
    + Make `Capture.raku` 45% faster [5baa645b][d6298edc]
    + Make `Capture.WHICH` 60% faster [688f6710]
    + Make `Capture.AT-KEY` 2% faster [22c0a53d]
    + Make `push(@a, foo)` about 20x as fast [385ab4cf]
    + Make `append(@a, foo)` about 20x as fast [b98d2e00][1e4c7361]
    + Make `unshift(@a, foo)` about 20x as fast [6541775c]
    + Make `prepend(@a, foo)` about 20x as fast [9b735b76]
    + Make `Num.Rat` faster [f987cdb0][2d1ba433]
    + Make `Date.succ` faster for days 28-31 [285da3b8]
    + Make `Str.tc` about 10% faster [5610416c]
    + Make `Supply.grab` a few percent faster [e0336d52]
    + `...` (SEQUENCE) optimizations \ 
    + CompUnit::* optimizations \ 
    + Be better at inlining `any` Junction [76923bee]
    + Optimize symbol lookup at compunit creation time [35832540][75da4cfe]
    + Numerous small optimizations and improvements [014d493a][776ef800][87226876]
  + Internal:
    + Update Appveyor perl requirement on Windows to 5.22 [370956b9]
    + Add optional "lazy" flag to \ 
`Rakudo::Iterator.SequentialIterators` [101a80f2]
    + Give `IterationBuffer` its own `iterator` method [2b49d685]
    + Adopt MoarVM-provided `value_desc_cont` [4221f822]
    + Add `Rakudo::Iterator.AllButLast` iterator [77defa77][aa5154e0]
    + Add `Rakudo::Iterator.AllButFirst` iterator [4fe18a48]
    + Add and use `Rakudo::Iterator.ReifiedListReverse` iterator
    + Add `Exception.message` stub [2e605520]
    + Make `Mu.iterator` use `Rakudo::Iterator.OneValue` [65fdea7d]
    + Make `Rakudo:Iterator.OneValue` a `PredictiveIterator` [ec50b961]
    + Rename `SlippyIterator` to `Rakudo::SlippyIterator` [50f13f03][fa3c0dba]
    + Don't use named variables between internal methods [92750571]
    + Implement `VM.request-garbage-collection` [e223be56]
    + `Rakudo::Iterator.ReifiedList` now returns a `PredictiveIterator` [063bfa05]
   2020-08-31 20:13:29 by Thomas Klausner | Files touched by this commit (3631) | Package updated
Log message:
*: bump PKGREVISION for perl-5.32.
   2020-03-08 20:47:47 by Benny Siegert | Files touched by this commit (4) | Package updated
Log message:
Update rakudo to 2020.02.1.

Upstream changelog is very long, but the language has been renamed from
Perl 6 to Raku, so bin/raku is now the main interpreter binary.
   2020-03-08 17:51:54 by Thomas Klausner | Files touched by this commit (2833)
Log message:
*: recursive bump for libffi
   2020-01-26 18:32:28 by Roland Illig | Files touched by this commit (981)
Log message:
all: migrate homepages from http to https

pkglint -r --network --only "migrate"

As a side-effect of migrating the homepages, pkglint also fixed a few
indentations in unrelated lines. These and the new homepages have been
checked manually.
   2019-12-28 01:45:42 by Makoto Fujiwara | Files touched by this commit (1) | Package updated
Log message:
(lang/rakudo) Update PLIST, hopefully fix packaging
   2019-08-23 00:33:15 by Adrian Steinmann | Files touched by this commit (8) | Package updated
Log message:
Update rakudo, nqp, MoarVM to 2019.07.1
   2019-08-11 15:25:21 by Thomas Klausner | Files touched by this commit (3557) | Package updated
Log message:
Bump PKGREVISIONs for perl 5.30.0