Skip to content

Releases: rakudo/rakudo

2021.02

21 Feb 13:48
2021.02
82b62bb
Compare
Choose a tag to compare

On behalf of the Rakudo development team, I’m very happy to announce the
February 2021 release of Rakudo #143. Rakudo is an implementation of
the Raku1 language.

The source tarball for this release is available from
https://rakudo.org/files/rakudo.
Pre-compiled archives will be available shortly.

New in 2021.02:

  • Additions:
    • Add support of the is implementation-detail trait
      for classes and roles [4384fc5]
    • Introduce support for passing multiple time units
      to earlier and later methods on Dateish [8a1f8f6][10dea6e]
    • Add "Solaris" option to the list returned by KERNELnames
      method on $*RAKU [f918f0f]
    • Introduce the slice method on Seq accepting indices
      (e.g. @a.Seq.slice(0, 2 ... *)) [63be83d]
    • Implement Map method on QuantHash [110343d]
  • Changes:
    • Add a way to set arg0 (when specified, passed as first argument
      to the process instead of the program name) for Proc objects [ce12455]
    • Return to REPL implementation prior to 2020.12 release [d53a927][3910319]
    • Move to CentOS 7 in binary release GNU/Linux build [38e69d8]
    • Provide single argument semantics for assigning
      a QuantHash to an Array object [6cd50ab]
    • Conversion of a Str object to Enum now returns a
      Failure object wrapping an X::Enum::NoValue instead
      of returning the enum's type object
      [e3a0c32][28b9581][184079c][5bc394f][bcb9a2c][e44b524]
    • Module installing at sorting now prefers API sorting over version sorting [43613ac]
    • Implement the item method for QuantHash and Capture types [8f6c7fe]
    • Throw a proper NYI error on attempt to parametrize a Hash with native types [5aec4aa]
  • Efficiency:
    • Makes DateTime.new(y,m,d,h,m,s) about 25% faster [0c8d238]
    • Make >>. faster [8c3795e]
    • Make the truncated-to method implementation for DateTime and Date
      a lot faster [e6c0b5e][c9ac5d9]
    • Improve startup time
      [39d3f13][f993b34][43ccad2][8231488][7be4f5e][d53d030]
    • Make Array.ASSIGN-POS about 15% faster [f623f1b]
    • Make Hash slice assignment about 2x as fast
      [75c5816][09552ab][281d9f3]
    • Make array slices on a Hash about 40% faster [c039b28]
    • Re-imagine array slicing, fixing issues, between 2x and 10x faster [ca7bc91]
    • Makes slice assignment on a native array from an Iterable
      about 15x as fast [4d40e23]
    • Optimize (AT|ASSIGN|BIND|EXISTS|DELETE)-POS methods [4c91d74]
    • Speedup the basic @A[*] (Whatever slice) [9ad80af]
  • Fixes:
    • Fix segfault caused by repossession of native call site [8c63c54]
    • Make sure that calling new on a shaped array works correctly [623d4c1]
    • Fix deleting colonpair with R-metaop in value by the Optimizer [18ae0df]
    • Improve error message on operation on closed handle [3865f1c]
    • Provide a more accurate implementation of ** infix operator on Complex [12b49b8]
    • Make sure that .of method of various types works on type objects [790240f]
    • Fix potential deadlock on specialization of roles [65a5cce]
    • Fix native @a[*-4 .. *..2] (Callable candidates of subscription taking
      more than a single argument, and the ones returning something else than an Int) [8150a28]
    • Throw on non-Int result in Iterable index on native array [8a3e983]
    • Throw on non-Int result in Iterable index on native array assignment [5eb5507]
    • Fixes for building and testing on Solaris platform [ac10a7a]
    • Fix problem in Compiler.verbose-config [ed6e2c8]
    • Fix an obscure error in &Perl6::Actions::lower_signature [bef6b4f]
    • Fix calling programs with spaces in their path on Windows [570372f][c3d3027]
    • Fix passing tests for X::Adverb on JVM backend [e6f4935]
  • Internal:

The following people contributed to this release:

Elizabeth Mattijsen, Stoned Elipot, Stefan Seifert, Juan Julián Merelo Guervós, Patrick Böker,
Will "Coke" Coleda, Alexander Kiryuhin, Timo Paulssen, Nicholas Clark, Daniel Green,
Vadim Belman, Christian Bartolomäus, Jan-Olof Hendig, Richard Hainsworth,
JustThisGuyAZ, stoned, Ben Davies, Daniel Sockwell, Jonathan Worthington,
Mikhail Khorkov, Brian Duggan, Fernando Santagata, Luis F. Uceta,
Moritz Lenz, Nick Logan, Stéphane Payrard, alanrocker, tony-o

This release implements 6.c and 6.d versions of the Raku specification.
6.c version of the language is available if you use the use v6.c
version pragma, otherwise 6.d is the default.

Upcoming releases in 2021 will include new functionality that is not
part of 6.c or 6.d specifications, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of
6.c and 6.d specifications will continue to work unchanged. There may
be incremental spec releases this year as well.

If you would like to contribute or get more information, visit
https://raku.org, https://rakudo.org/community, ask on the
perl6-compiler@perl.org mailing list, or ask on IRC #raku on freenode.

Additionally, we invite you to make a donation to The Perl Foundation
to sponsor Raku development: https://donate.perlfoundation.org/
(put “Raku Core Development Fund” in the ‘Purpose’ text field)

The next release of Rakudo (#144), is tentatively scheduled for 2021-03-20.

A list of the other planned release dates is available in the
“docs/release_guide.pod” file.

The development team appreciates feedback! If you’re using Rakudo, do
get back to us. Questions, comments, suggestions for improvements, cool
discoveries, incredible hacks, or any other feedback – get in touch with
us through (the above-mentioned) mailing list or IRC channel. Enjoy!

Please note that recent releases have known issues running on the JVM.
We are working to get the JVM backend working again but do not yet have
an estimated delivery date.

  1. See https://raku.org/

2020.12

19 Dec 16:12
2020.12
45b4e64
Compare
Choose a tag to compare

On behalf of the Rakudo development team, I’m very happy to announce the
December 2020 release of Rakudo #142. Rakudo is an implementation of
the Raku1 language.

The source tarball for this release is available from
https://rakudo.org/files/rakudo.
Pre-compiled archives will be available shortly.

New in 2020.12:

  • Removals:
    • Deprecated method candidates (subbuf(Any:U) on Buf, chdir(Str(), :$!test) on IO::Path)
      and indir(IO() $path, &what, :$test!) subroutine candidate that were
      throwing an exception instead of a deprecation warning for a long time
      were removed from CORE [9040318]
  • Additions:
    • Add new method deterministic to Iterator role [87fc041][b83b1b3][b63c0e0][c37a88e][96285af]
    • Introduce %*SUB-MAIN-OPTS<coerce-allomorphs-to> setting [bd5eba4][49eecd6]
    • Add a new candidate to spurt routine and method.
      It does not have an argument taking content to write,
      making it similar to the touch utility [f2ea0a6]
    • Add :emit-on-empty and :emit-once-on-empty methods to Supply.batch method [cb8eb68]
    • Add :emit-timed to Supply.batch method [492651e]
    • Make is DEPRECATED trait introspectable on Routine instances [0d1c8a8]
  • Changes:
    • Improve output of Attribute documentation when rendered with Pod::To::Text [a0a8a51]
    • Increase sensitivity of Supply.batch(:seconds) x 1000 [aecfc9b]
    • The cas subroutine now accepts Mu as both its target and values [998cae5]
    • Defined List instances no longer return True when calling ACCEPT
      with an undefined List (i.e. List ~~ () returns False now) [9fd79f9]
    • Mark the base native array class as Positional [d1d2546]
  • Efficiency:
  • Fixes:
    • Fix number of issues with REPL execution. e.g. it "forgetting" previous
      multi sub declarations, calling WHAT on native type
      [7c0a81f][eae309a][e46a1da][f2851b9][e8ab527][0d6278f]
      [6f7718c][be45507]
    • Fix roles not being auto-punned for postcifcumfix:<( )>, by
      implementing an invocation protocol for roles [79d2aea]
      [5a22a7c][77a7bd2][17223fc][4009f40][538ad1b][9f98595]
    • Fix concurrency issue in compilations with heredocs [147bae3]
    • Fix subsets of coercions [af43ef6]
    • Fix an issue with splitdir method of IO::Spec::Unix
      leading to action at a distance bugs [3d46341][f154244]
    • Fix argument of a coercion type not having a workable default value
      [44cc88b][856dfb2]
    • Fix error reporting for slurpy named parameters with type constraints [e1f09cf]
    • Fix behavior of postcircumfix [ ] called with Iterable on
      native array [4304e25]
    • Disallow calling of postcircumfix [ ] with type objects [6c7044e]
    • Fix a bug in set symmetric difference logic [7b6de5c]
    • Make Num coercer demand definite invocant [a75b3fa]
    • Add missing handling of adverbs :kv, :p, :k, :v for
      1-dim shaped native arrays, also support many adverbs at once
      (e.g. :exists:(kv|p) [0f4970d][02e48d8]
    • Give stub packages created by package_at_key a proper longname [aab4f55]
    • Fix raku method called on CompUnit::Repository::Distribution instance [7d0813c]
    • Fix proper reporting of the X::Parameter::RW exception message [1732054]
    • Fix RAKUDO_MODULE_DEBUG output when the message contains meta characters [b58510f]
    • The Test module now correctly handles RAKU_TEST_TIMES environment variable,
      previously called PERL6_TEST_TIMES [d84ed4e]
  • Internal:

The following people contributed to this release:

Elizabeth Mattijsen, Nicholas Clark, Stoned Elipot, Vadim Belman,
Stefan Seifert, Jonathan Worthington, Will "Coke" Coleda,
Christian Bartolomäus, Peter du Marchie van Voorthuysen, Alexander Kiryuhin,
Daniel Green, Moray Jones, Daniel Mita, Dominique Dumont, Patrick Böker,
Stéphane Payrard, Jan Krňávek, JustThisGuyAZ, Leon Timmermans, Tim Gates,
Tom Browder, stoned

This release implements 6.c and 6.d versions of the Raku specification.
6.c version of the language is available if you use the use v6.c
version pragma, otherwise 6.d is the default.

Upcoming releases in 2021 will include new functionality that is not
part of 6.c or 6.d specifications, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of
6.c and 6.d specifications will continue to work unchanged. There may
be incremental spec releases this year as well.

If you would like to contribute or get more information, visit
https://raku.org, https://rakudo.org/community, ask on the
perl6-compiler@perl.org mailing list, or ask on IRC #raku on freenode.

Additionally, we invite you to make a donation to The Perl Foundation
to sponsor Raku development: https://donate.perlfoundation.org/
(put “Raku Core Development Fund” in the ‘Purpose’ text field)

The next release of Rakudo (#143), is tentatively scheduled for 2021-01-23.

A list of the other planned release dates is available in the
“docs/release_guide.pod” file.

The development team appreciates feedback! If you’re using Rakudo, do
get back to us. Questions, comments, suggestions for improvements, cool
discoveries, incredible hacks, or any other feedback – get in touch with
us through (the above-mentioned) mailing list or IRC channel. Enjoy!

Please note that recent releases have known issues running on the JVM.
We are working to get the JVM backend working again but do not yet have
an estimated delivery date.

  1. See https://raku.org/

2020.11

21 Nov 13:45
2020.11
34faae5
Compare
Choose a tag to compare

On behalf of the Rakudo development team, I’m very happy to announce the
November 2020 release of Rakudo #141. Rakudo is an implementation of
the Raku1 language.

The source tarball for this release is available from
https://rakudo.org/files/rakudo.
Pre-compiled archives will be available shortly.

New in 2020.11:

  • Additions:
    • Introduce new coertion semantics. It includes coercions being first-class
      type objects, a parameter being marked as coercive if its type is a coerce,
      coercions redelegating method calls to their target type, coercions type checking
      being more correct. Coercions are now nominalizable, they nominalize into
      the target type. Aside from those changes, coercion protocol is introduced.
      If coerce method of Metamodel::CoercionHOW is used for Foo(Bar),
      then the following methods are tried in the order of mentioning:
    • Implement the prefix:<||> operator in postcircumfixes for 6.e and later,
      originally described in Synopsis 09 [e6787d7][48b1b20][7a2264b][35213f6]
    • Give dd (an internal Rakudo-specific routine for debugging purposes)
      support for BOOTThread objects [59d140b]
    • Add a flag to symlink allowing creation of relative symlinks [089bd59]
    • Implement binding of array-slices (e.g. @A[1,2,3] := <a b c>) [051e036]
    • Implement binding of hash-slices (e.g. %h<a b c> := 1,2,3) [87ef76a]
    • Give raku -v a pure ASCII version [329e47f]
    • Introduce is test-assertion trait for routines, improving behaving of
      test assertions written by the user [585db59][86a208e][2436532]
    • Make Whatever slice work on 1-dim native shaped arrays [1cb2df8]
    • Handle :exists and :delete on 1-dim native shaped arrays with int index [db3ca28]
    • Add Windows specific build instructions [07c9513][5b282cf]
  • Changes:
    • Unicode support is updated to match with 13.0, 13.1 versions [bd803d5][68196c9]
    • Do not allow infix:<does> on Int or Str, print an error message saying
      but should be used [2f3de2f]
    • Datetime.local now defaults to $*TZ [9443fba]
    • Values passed to sub form of push and unshift are not longer flattened [e78c53b]
  • Efficiency:
    • Create common Version objects at setting compile time [18882bf][7f9f9e9]
    • Make Str.raku about 35% faster [97d473b][5cbe14e]
    • Make DateTime.now 60% faster [53b558f][fd5950f]
    • Simplify native shaped array .shape method [424ce71]
    • Constantize empty list / hash in Match [0447b15]
    • Constantize encoding and clean parts lookup [8af0c46]
    • Simplify Hash parameterization [1321a85]
    • Streamline handling of bind/delete on native arrays [adeff7d]
    • Make simple native shaped array access about 5x as fast [3e6e15e][75574be][f6cdbd8]
  • Fixes:
    • Fix building on Windows with MinGW [200821c]
    • Fix a rare issue with precompilation [dd0a2a1]
    • Improvements of postcircumfix[;] in 6.e language version [39c5159][03e1ba7][316902d]
    • Make auto-generated mixin role be of language revision c.
      This fixes $a but $b under use v6.e pragma [6b87d3e]
    • Don't inherit mixin class language revision. This allows mixin of custom roles
      under v6.e.PREVIEW pragma [2991016]
    • Fix some issues with $*TZ and long-running processes [613da57][78935eb]
    • Make MacOS nick lookup hash a constant, also improving build reproducibility
      on MacOS [78f1645][2ad244b]
    • Add support for MacOS 11.0 nick [ccc50f7]
    • Use alternate test for DST change [89211e2][ede52fb]
    • Make sure match processing can handle $/ being a Junction [5b36918]
    • Fix for isa-ok to handle test subjects not inheriting from Mu
      (e.g. isa-ok Any.HOW, Metamodel::ClassHOW) [dbf53c0]
    • Fix IO::Path.absolute(IO::Path) breakage on Windows [08f5d02]
    • Fix regression in list handling of take / take-rw introduced back in 2020.01 release [3e10cc6]
    • Provide more improvements to language revision support and provide a better fix for mixins
      [7de2b15][9075c76][b21dd02][38bb244][74faa0a]
  • Internal:
    • Replace all simple nqp::if(42,foo,bar) with ternaries [b1912d9]
    • Strip excessive escaping in an internal script [857fbfd]
    • Update docs/running.pod [39eedac]
    • Make sigils2bit mapper a setting compiler time thing [a541aed][0a4eaf3]
    • Expose the Array::Shaped role, Array::Shaped1|2|3 roles [ee08923][532b542][cb95c65][e45bcd5][e45bcd5]
    • Expose Hash::Object and Hash::Typed roles [1a6cf78]
    • Make unicode property tests deterministic [151fd31]
    • Pseudostash code doesn't need a sub [7b2d9af]
    • Refactor Array::set-shape a bit [18af3f4][417ad76]
    • Better check for subness of MAIN [e3352cd]
    • Don't use "perl" in identifiers unless needed [fa2013d]
    • Prevent a compiler warning about an invalid cast [f0808da]
    • Make setting array shapes more alike [e612214]

The following people contributed to this release:

Elizabeth Mattijsen, Vadim Belman, Will "Coke" Coleda, Patrick Böker,
Alexander Kiryuhin, Stoned Elipot, Christian Bartolomäus, Samantha McVey,
Nicholas Clark, Peter du Marchie van Voorthuysen, Daniel Green,
Stefan Seifert, Fernando Santagata, Ben Davies, Juan Julián Merelo Guervós,
Daniel Mita, Jonathan Worthington, José Joaquín Atria,
Matthew Wilson, Timo Paulssen, Yves Guillemot

This release implements 6.c and 6.d versions of the Raku specification.
6.c version of the language is available if you use the use v6.c
version pragma, otherwise 6.d is the default.

Upcoming releases in 2020 will include new functionality that is not
part of 6.c or 6.d specifications, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of
6.c and 6.d specifications will continue to work unchanged. There may
be incremental spec releases this year as well.

If you would like to contribute or get more information, visit
https://raku.org, https://rakudo.org/community, ask on the
perl6-compiler@perl.org mailing list, or ask on IRC #raku on freenode.

Additionally, we invite you to make a donation to The Perl Foundation
to sponsor Raku development: https://donate.perlfoundation.org/
(put “Raku Core Development Fund” in the ‘Purpose’ text field)

The next release of Rakudo (#142), is tentatively scheduled for 2020-11-21.

A list of the other planned release dates is available in the
“docs/release_guide.pod” file.

The development team appreciates feedback! If you’re using Rakudo, do
get back to us. Questions, comments, suggestions for improvements, cool
discoveries, incredible hacks, or any other feedback – get in touch with
us through (the above-mentioned) mailing list or IRC channel. Enjoy!

Please note that recent releases have known issues running on the JVM.
We are working to get the JVM backend working again but do not yet have
an estimated delivery date.

  1. See https://raku.org/

2020.10

24 Oct 21:43
2020.10
89e12a9
Compare
Choose a tag to compare

On behalf of the Rakudo development team, I’m very happy to announce the
October 2020 release of Rakudo #140. Rakudo is an implementation of
the Raku1 language.

The source tarball for this release is available from
https://rakudo.org/files/rakudo.
Pre-compiled archives will be available shortly.

New in 2020.10:

  • Additions:
    • Implement MAIN parameter bundling via the %*SUB-MAIN-OPTS<bundling>
      option [75f92d2][04164a0]
    • Generate a rakuw.exe executable on Windows which will not spawn
      a console window (in contrast to the raku.exe executable) [0ea6902][708d0ca]
    • Add 𝐑𝐚𝐤𝐮𝐝𝐨™ and 𝐑𝐚𝐤𝐮™ welcome message [80a4ada][4e9178f][bae905e]
  • Changes:
  • Efficiency:
    • Adapt to simplified nqp::isprime_I [80bf1db]
    • Make %a{a;b} about 30% faster [a577409]
    • Further simplify %h{a;b;c} candidate [e435a08]
    • Make Hash.DELETE-KEY on a non-existing key 40% faster
      [3131ce2][fcabad4]
    • Make making a Uni between 1.5x and 22x as fast [2999be3]
    • Make .grep/.first on native arrays about 3.5x as fast
      [240bc9e][cf23947]
    • Make .unique/.repeated/.squish on native arrays faster [c37ffe7]
  • Fixes:
    • Fix stub packages in multi part declarations only knowing
      part of their name [51db534]
    • Build System: Add a check to prevent building a Rakudo with a
      stale NQP version [4dbdcb8][d8db03b]
    • Make BUILD(ALL)PLAN output a bit clearer [a26beb6]
    • Make $*USER and $*GROUP return correct values on some non-English
      locales [6a89d71]
    • Fix possible race in multi-threaded precompilation [1294621]
    • Produce a better error message for my &MAIN = { } [e0e24a8]
    • Fix issue with Z / X used with set operators [338c743]
    • Produce a better error message for incorrect code infix:(&) [4af961e]
    • Fix NativeCall/C++ to allow double instantiation [ecaf334][f3ffb70]
    • An attempt to copy a directory to a file does not remove the file
      anymore [41a76ca]
    • Fix a problem with multi submethods been treated as method [7cfca09]
  • Internal:
    • More fixes to the binary release scripts [bd029ae][99acfa9]
    • Move Int candidates from Numeric.pm6 to Int.pm6 [bf799ba]
    • Add .gitattributes file and specify file extensions [42e0434]

The following people contributed to this release:

Elizabeth Mattijsen, Patrick Böker, Will "Coke" Coleda, Daniel Green,
Stoned Elipot, Alexander Kiryuhin, Nicholas Clark, Vadim Belman,
Christian Bartolomäus, Stefan Seifert, Zoffix Znet, Moritz Lenz,
Norbert Buchmueller, Alexandre Jousset, Jakub A. G, José Joaquín Atria,
Tom Browder, Aleks-Daniel Jakimenko-Aleksejev, Clifton Wood,
Daniel Mita, JJ Merelo, Leon Timmermans, Perry Thompson, Simon Proctor,
stoned, wayland

This release implements 6.c and 6.d versions of the Raku specification.
6.c version of the language is available if you use the use v6.c
version pragma, otherwise 6.d is the default.

Upcoming releases in 2020 will include new functionality that is not
part of 6.c or 6.d specifications, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of
6.c and 6.d specifications will continue to work unchanged. There may
be incremental spec releases this year as well.

If you would like to contribute or get more information, visit
https://raku.org, https://rakudo.org/community, ask on the
perl6-compiler@perl.org mailing list, or ask on IRC #raku on freenode.

Additionally, we invite you to make a donation to The Perl Foundation
to sponsor Raku development: https://donate.perlfoundation.org/
(put “Raku Core Development Fund” in the ‘Purpose’ text field)

The next release of Rakudo (#141), is tentatively scheduled for 2020-11-21.

A list of the other planned release dates is available in the
“docs/release_guide.pod” file.

The development team appreciates feedback! If you’re using Rakudo, do
get back to us. Questions, comments, suggestions for improvements, cool
discoveries, incredible hacks, or any other feedback – get in touch with
us through (the above-mentioned) mailing list or IRC channel. Enjoy!

Please note that recent releases have known issues running on the JVM.
We are working to get the JVM backend working again but do not yet have
an estimated delivery date.

  1. See https://raku.org/

2020.09

26 Sep 12:21
2020.09
41b5c08
Compare
Choose a tag to compare

On behalf of the Rakudo development team, I’m very happy to announce the
September 2020 release of Rakudo #139. Rakudo is an implementation of
the Raku1 language.

The source tarball for this release is available from
https://rakudo.org/files/rakudo.
Pre-compiled archives will be available shortly.

New in 2020.09:

  • Additions:
  • Build System:
    • Fix relocatable build-time NQP-home [eab3e1c][5a40482][077f8f9]
    • Fix RUN_RAKUDO to use the dummy Rakudo home [a56ce83]
    • Make Perl6::SysConfig depend on NQPs HLL::SysConfig [64eb6fc]
  • Changes:
  • Deprecations:
    • The parse-names subroutine is now explicitly deprecated in 6.d
      to be be removed in 6.e, use uniparse subroutine instead [eef7383]
  • Fixes:
    • Give a hint about missing provides in a META6.json when module
      is not found in CURFS [b2d625b]
    • Make Blob.gist work for all sizes of Blob [f98861a]
    • Prevent parser bug for multiple [ in reduce metaop [86bac5a]
    • Make JVM honor PERL6_HOME env variable [038fbc4][c990124]
    • The set/unset methods on SetHash and the add/remove methods
      on BagHash give proper error message when called on a type object [b0b4459]
    • Fix behavior of Supply.head($n) [46a7299]
    • Improve wording on X::MultipleTypeSmiley error [a937174]
    • Fix long standing race condition in precompilation causing
      spurious test failures [3780c1d]
    • Fix --rakudo-home Configure.pl parameter
  • Internal:
    • Start to use nqp::execname on the JVM backend [3ba803d]
    • Test the install instead of the build runners [f2bf446]
    • Add missing files to the make clean target for the JVM backend [58e729f]
    • Tweak release-related scripts [d6e2731][ccb4161][a0c12cd]
    • Remove use of deprecated undefine [e59262f]
  • Efficiency:
    • Allow for more paralellism when precompiling modules, making
      parallel compilation faster [961a653][8642533][0500ed3]
    • Streamline X::Multi::Ambiguous listing [999680e][b8121ce]

The following people contributed to this release:

Nicholas Clark, Vadim Belman, Will "Coke" Coleda, Elizabeth Mattijsen,
Juan Julián Merelo Guervós, Patrick Böker, Alexander Kiryuhin, Stoned Elipot,
rir, Daniel Sockwell, Timo Paulssen, Jonathan Worthington, Daniel Lathrop,
Christian Bartolomäus, stoned, Stefan Seifert, Norbert Buchmueller,
Tom Browder, Ben Davies, Daniel Green, Moritz Lenz, Paul Cochrane, Antonio,
Clifton Wood, Jan-Olof Hendig, L'Alabameñu, Shlomi Fish, Tobias Boege

This release implements 6.c and 6.d versions of the Raku specification.
6.c version of the language is available if you use the use v6.c
version pragma, otherwise 6.d is the default.

Upcoming releases in 2020 will include new functionality that is not
part of 6.c or 6.d specifications, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of
6.c and 6.d specifications will continue to work unchanged. There may
be incremental spec releases this year as well.

If you would like to contribute or get more information, visit
https://raku.org, https://rakudo.org/community, ask on the
perl6-compiler@perl.org mailing list, or ask on IRC #raku on freenode.

Additionally, we invite you to make a donation to The Perl Foundation
to sponsor Raku development: https://donate.perlfoundation.org/
(put “Raku Core Development Fund” in the ‘Purpose’ text field)

The next release of Rakudo (#140), is tentatively scheduled for 2020-10-24.

A list of the other planned release dates is available in the
“docs/release_guide.pod” file.

The development team appreciates feedback! If you’re using Rakudo, do
get back to us. Questions, comments, suggestions for improvements, cool
discoveries, incredible hacks, or any other feedback – get in touch with
us through (the above-mentioned) mailing list or IRC channel. Enjoy!

Please note that recent releases have known issues running on the JVM.
We are working to get the JVM backend working again but do not yet have
an estimated delivery date.

  1. See https://raku.org/

2020.08.2

26 Aug 21:55
2020.08.2
e3071de
Compare
Choose a tag to compare

On behalf of the Rakudo development team, I'm announcing an
out-of-schedule release of the Rakudo compiler.
Rakudo is an implementation of the Raku1 language.

This release is a point release in addition to the regular, monthly
releases. This release fixes output of Rakudo for the case of --show-config
command line option passed.

As Rakudo matures, resolves old restrictions and starts to support more
building options, inevitably parts of the system are changed and the build
system turns out to be one of the less test covered parts.

The team increases test coverage to match with the issues found, the amount of
places where problems demanding point releases can hide decreases.

The tarball for this release is available from http://rakudo.org/downloads/rakudo/.
Pre-compiled archives will be available shortly.

The changes in this release are outlined below:

New in 2020.08.2:

The following people contributed to this release:

Patrick Böker, Alexander Kiryuhin

This release implements 6.c and 6.d versions of the Raku specification.
6.c version of the language is available if you use the use v6.c
version pragma, otherwise 6.d is the default.

Upcoming releases in 2020 will include new functionality that is not
part of 6.c or 6.d specifications, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of
6.c and 6.d specifications will continue to work unchanged. There may
be incremental spec releases this year as well.

If you would like to contribute or get more information, visit
https://raku.org, https://rakudo.org/community, ask on the
perl6-compiler@perl.org mailing list, or ask on IRC #raku on freenode.

Additionally, we invite you to make a donation to The Perl Foundation
to sponsor Raku development: https://donate.perlfoundation.org/
(put “Raku Core Development Fund” in the ‘Purpose’ text field)

The next release of Rakudo (#139), is tentatively scheduled for 2020-09-19.

A list of the other planned release dates is available in the
“docs/release_guide.pod” file.

The development team appreciates feedback! If you’re using Rakudo, do
get back to us. Questions, comments, suggestions for improvements, cool
discoveries, incredible hacks, or any other feedback -- get in touch with
us through (the above-mentioned) mailing list or IRC channel. Enjoy!

Please note that recent releases have known issues running on the JVM.
We are working to get the JVM backend working again but do not yet have
an estimated delivery date.

  1. See https://raku.org/

2020.08.1

23 Aug 14:56
2020.08.1
b86c05c
Compare
Choose a tag to compare

On behalf of the Rakudo development team, I'm announcing an
out-of-schedule release of the Rakudo compiler.
Rakudo is an implementation of the Raku1 language.

This release is a point release in addition to the regular, monthly
releases. This release fixes confusing user facing compiler's version
which occurred with 2020.08 (note: no .1) release.

The tarball for this release is available from http://rakudo.org/downloads/rakudo/.
Pre-compiled archives will be available shortly.

The changes in this release are outlined below:

New in 2020.08.1:

  • Changes:
    • Method invoke of WalkList returns a lazy Seq instance now [fe40ee1]
  • Internal:
    • Seq class now has its own proto for new method [a19996d]

The following people contributed to this release:

Vadim Belman, Aleks-Daniel Jakimenko-Aleksejev, Elizabeth Mattijsen,
Alexander Kiryuhin

This release implements 6.c and 6.d versions of the Raku specification.
6.c version of the language is available if you use the use v6.c
version pragma, otherwise 6.d is the default.

Upcoming releases in 2020 will include new functionality that is not
part of 6.c or 6.d specifications, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of
6.c and 6.d specifications will continue to work unchanged. There may
be incremental spec releases this year as well.

If you would like to contribute or get more information, visit
https://raku.org, https://rakudo.org/community, ask on the
perl6-compiler@perl.org mailing list, or ask on IRC #raku on freenode.

Additionally, we invite you to make a donation to The Perl Foundation
to sponsor Raku development: https://donate.perlfoundation.org/
(put “Raku Core Development Fund” in the ‘Purpose’ text field)

The next release of Rakudo (#139), is tentatively scheduled for 2020-09-19.

A list of the other planned release dates is available in the
“docs/release_guide.pod” file.

The development team appreciates feedback! If you’re using Rakudo, do
get back to us. Questions, comments, suggestions for improvements, cool
discoveries, incredible hacks, or any other feedback -- get in touch with
us through (the above-mentioned) mailing list or IRC channel. Enjoy!

Please note that recent releases have known issues running on the JVM.
We are working to get the JVM backend working again but do not yet have
an estimated delivery date.

  1. See https://raku.org/

2020.08

22 Aug 17:06
ee96b37
Compare
Choose a tag to compare

On behalf of the Rakudo development team, I’m very happy to announce the
August 2020 release of Rakudo #138. Rakudo is an implementation of
the Raku1 language.

The source tarball for this release is available from
https://rakudo.org/files/rakudo.
Pre-compiled archives will be available shortly.

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 [c11f4b1]
    • Remove redundant (()) from Map.new.raku [491e1de]
    • Routine done-testing of Test module returns Bool now,
      indicating if the tests passed or not [337848f]
  • Deprecations:
    • Deprecate --nqp-lib command line option,
      which had no effect for more than a year [9071653]
  • Fixes:
  • Additions:
    • Add set_parameterizer, parameterize_type, type_parameterized,
      type_parameters and type_parameter_at methods for Metamodel::Primitives [2ab9442]
  • Internal:
    • Type Parameter methods [c11f4b1]
    • Fix release pipeline to not delete the GNU/Linux build [4ad4bd3]
    • Make Rakudo::Internals::JSON up to 4.4x as fast [b60e163][43bd739]
    • Do roast-related cleanup, add quicktest make target
      [1e20dfc][6fd0981][333ce78][dd8cd41]
    • Rework tools/update-passing-test-data.pl to support backends [ea0c98c]
    • Make main-version.nqp a backend-specific configuration file [80b0747]
    • Add a Perl6::SysConfig class [ace5e22]
    • Simplify binary release instructions a little [27eb5ea]
    • Add tests to make sure profilers can be invoked [d7aa7e6]
    • Remove an outdated workaround from Cool implementation [a3af583]
    • Fix incorrect method call [02a8344]

The following people contributed to this release:

Vadim Belman, Juan Julián Merelo Guervós, Will "Coke" Coleda, Patrick Böker,
Elizabeth Mattijsen, Alexander Kiryuhin, stoned, Daniel Lathrop, Timo Paulssen,
Stoned Elipot, Christian Bartolomäus, Tom Browder, rir, Ben Davies,
Daniel Green, Jonathan Worthington, Paul Cochrane, Stefan Seifert,
Daniel Sockwell, Nicholas Clark, Antonio, Tobias Boege

This release implements 6.c and 6.d versions of the Raku specification.
6.c version of the language is available if you use the use v6.c
version pragma, otherwise 6.d is the default.

Upcoming releases in 2020 will include new functionality that is not
part of 6.c or 6.d specifications, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of
6.c and 6.d specifications will continue to work unchanged. There may
be incremental spec releases this year as well.

If you would like to contribute or get more information, visit
https://raku.org, https://rakudo.org/community, ask on the
perl6-compiler@perl.org mailing list, or ask on IRC #raku on freenode.

Additionally, we invite you to make a donation to The Perl Foundation
to sponsor Raku development: https://donate.perlfoundation.org/
(put “Raku Core Development Fund” in the ‘Purpose’ text field)

The next release of Rakudo (#139), is tentatively scheduled for 2020-09-19.

A list of the other planned release dates is available in the
“docs/release_guide.pod” file.

The development team appreciates feedback! If you’re using Rakudo, do
get back to us. Questions, comments, suggestions for improvements, cool
discoveries, incredible hacks, or any other feedback – get in touch with
us through (the above-mentioned) mailing list or IRC channel. Enjoy!

Please note that recent releases have known issues running on the JVM.
We are working to get the JVM backend working again but do not yet have
an estimated delivery date.

  1. See https://raku.org/

2020.07

20 Jul 20:27
2020.07
d0233dd
Compare
Choose a tag to compare

On behalf of the Rakudo development team, I’m very happy to announce the
July 2020 release of Rakudo #137. Rakudo is an implementation of
the Raku1 language.

The source tarball for this release is available from
https://rakudo.org/files/rakudo.
Pre-compiled archives will be available shortly.

New in 2020.07:

The following people contributed to this release:

Elizabeth Mattijsen, JJ Merelo, Timo Paulssen, Patrick Böker, Alexander Kiryuhin,
Nicholas Clark, Vadim Belman, Will "Coke" Coleda, Antonio, Ben Davies,
Christian Bartolomäus, Daniel Green, Jonathan Worthington,
Richard Hainsworth, stoned, Stefan Seifert, Daniel Sockwell,
Joshua Yeshouroun, Nick Logan, Trey Harris

This release implements 6.c and 6.d versions of the Raku specification.
6.c version of the language is available if you use the use v6.c
version pragma, otherwise 6.d is the default.

Upcoming releases in 2020 will include new functionality that is not
part of 6.c or 6.d specifications, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of
6.c and 6.d specifications will continue to work unchanged. There may
be incremental spec releases this year as well.

If you would like to contribute or get more information, visit
https://raku.org, https://rakudo.org/community, ask on the
perl6-compiler@perl.org mailing list, or ask on IRC #raku on freenode.

Additionally, we invite you to make a donation to The Perl Foundation
to sponsor Raku development: https://donate.perlfoundation.org/
(put “Raku Core Development Fund” in the ‘Purpose’ text field)

The next release of Rakudo (#138), is tentatively scheduled for 2020-07-20.

A list of the other planned release dates is available in the
“docs/release_guide.pod” file.

The development team appreciates feedback! If you’re using Rakudo, do
get back to us. Questions, comments, suggestions for improvements, cool
discoveries, incredible hacks, or any other feedback – get in touch with
us through (the above-mentioned) mailing list or IRC channel. Enjoy!

Please note that recent releases have known issues running on the JVM.
We are working to get the JVM backend working again but do not yet have
an estimated delivery date.

  1. See https://raku.org/

2020.06

21 Jun 00:02
2020.06
eda1a4b
Compare
Choose a tag to compare

On behalf of the Rakudo development team, I’m very happy to announce the
June 2020 release of Rakudo #136. Rakudo is an implementation of
the Raku[^1] language.

The source tarball for this release is available from
https://rakudo.org/files/rakudo.
Pre-compiled archives will be available shortly.

New in 2020.06:

  • SPECIAL NOTES:
    • 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 method.
    • 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 [709941c][9a75738]
    • Signatures of slurp and spurt routines not accepting redundant arguments is
      now compile time error rather than run-time one [22f4344]
    • The Distro.desc method now states codename for MacOS [b4b2a5e]
    • The gist method output for multi-dimensional arrays is truncated now [cfc3e57][4bfe5bd]
    • Parametrization a variable type in form my $foo is Type[Foo, Bar] works for all types now [de43f19]
    • The rotate method now returns Seq instead of List [4b501bd]
    • Add CACHEDIR.TAG to mark cache dirs as cache [37646b8][c3bdb61][ef90599]
    • Improve GNU C++ name mangling [4f672c2]
    • Make Instant.raku output simpler [c0b5fb2]
    • Improve smartmatching against Mu/Any/Junction types
      (Mu.new ~~ Mu does not die anymore, any(Mu, Any) ~~ Mu returns True now) [3b4794f][840d3e8]
  • Fixes:
    • Fix code objects created BEGIN time EVAL getting lost in precompilation [537f887][169f63d]
    • The is routine from Test module now handles types that cannot be stringified and
      compares them using raku method now [c9e9462]
    • Fix various JVM and JS backend issues [8e5b610][2b81f97]
      [12f8f1e][5b86436][1464b35][a059373][9fe471c]
    • Fix BEGIN time EVAL accidentally running CHECK phasers of the outer comp unit [eeb4f43][b874c68]
    • Fix results o "١٢٣".Numeric and "١٢٣".Int [c2e8b22]
    • Fix race in PIO method of IO::Handle [f33ce01]
    • Fix Date(now) call [9dcbc5f]
    • Fix .comb(Str) to ensure non-overlapping results [8d5a0f7]
    • Fix Instant.raku for Rational values [f506cc0]
    • Fix sorting of 2 element native arrays [becb85e]
    • Make sure push-all does not push when exhausted when splitting using a regex [077300c]
    • Improve error message for method calls placed after white space [4278e4c]
    • Improve X::Syntax::Variable::MissingInitializer exception's error message [ee005d8]
    • Improve X::Method::NotFound exception's error message to only suggest a submethod if correct [b02a741]
    • Improve malformed loop spec related errors [d3c3e53]
    • Improve error message for case of too many directives in routine sprintf [c988f83]
    • Improve detection of a version control conflict marker to provide an error message [65e412f]
  • Additions:
    • Add IO::Handle.do-not-close-automatically method [61046d7][999d04a]
    • Add IO::Path::Parts class [4387f28][187312b][e9ea048][30ae200]
    • Add support for printf($format, Junction) [110324d]
    • Add Supply.rotate method [9f7c927]
    • Add Capture.EXIST-POS method [6a4f79e][b55ecdf][3372352]
    • Add RAKU_REPL_OUTPUT_METHOD environment variable which sets
      the method used to stringify a value of an expression in REPL, default is gist [285717a]
    • Add :chomp named argument to Str.lines similar to the same named argument of IO::Handle.new [1bcc5d7]
  • Efficiency:
    • Make creation of regex captures faster [15961f9][272c463]
      [ed65d73][e3fa44a][7f47db8][0b48651][537a6e4][f627d2c][6f6b2df][219199b]
    • Make file test methods like .d or .x faster [c821bbc]
    • Make Match.caps about 35% faster [87e91de]
    • Make Str.split(Regex) up to 2x faster [9c74d98]
    • Make Str.split(Regex, *%_) up to 2x faster [a9796fe]
    • Make dir routine about 15% faster [700b743]
    • Make Blob.join between 4% and 11% faster [84ff64c]
    • Make Blob.gist about 2x as fast [b55667e]
    • Make QuantHash implementation a bit faster [4a728f2]
    • Make IO::Spec::Win32.basename about 1.7x as fast [ecd06c9]
    • Make IO::Spec::Win32.tmpdir about 1.8x as fast [6d427d4]
    • Make IO::Spec::Win32.path about 2x as fast [1a8e07c]
    • Make IO::Spec::Unix.path about 3.5x as fast [8dc58ab]
    • Make IO::Spec::Unix.basename and IO::Spec::Unic.extension about 1.7x as fast [f89fad8]
    • Make IO::Spec::Unix.tmpdir about 1.8x as fast [a2860ea]
    • Make WhateverCode.ACCEPTS about 2x as fast [853e622]
    • Make IO::Path.sibling about 2x as fast [a5eb1d4]
    • Make IO::Path.succ and IO::Path.pred about 3x as fast [26b9f38][7238b09]
    • Make IO::Path.parent about 2.7x as fast [71cb0c5]
    • Make IO::Path.parent(N) about 2x as fast [f93ce87]
    • Make IO::Path.child about 1.4x as fast [f5b2c24]
    • Make IO::Path.add about 1.25x as fast [718d305]
    • Make IO::Path.dir between 1.5x and 2.2x as fast [b63976a]
      [6b22c1e][7691742][9b9d9f6]
    • Make IO::Path.is-absolute a bit faster [fc88b9c][bd7fcb2]
    • Make IO::Path.spurt up to 35% faster [7571f65]
    • Make IO::Path.slurp up to 4.7x as fast [d03fa4b][cde948a][36d89cf]
    • Make slurp routine up to 40% faster [f3baa38][fc3e1ae]
    • Make spurt routine a few % faster [da5825e]
    • Make Str.Numeric about 4.3x as fast [a0e5841]
    • Make .IO method and IO::Path.new about 2x as fast [2a88990]
    • Make IO::Spec.curupdir about 25% faster [6a0eaab][16d93e2]
    • Make "42".Int about 4.3x faster [3ee1777]
    • Reduce overhead of Code.ACCEPTS(value) by 20% [2eec62f]
    • Make so and not routines faster [d8c2650][8a3c36f][5c93dda][cb69cfc]
    • Optimize symbol lookup [c5f5d7e][dc6594d][5d61b3d]
    • Prevent $*OUT lookup for each eigenstate of Junction when calling print or put [4297cb0]
    • Make printf routine up to 5% faster [e46d459]
    • Streamline variable is and of handling [5561669]
    • Make Hash.sort a tiny bit faster [cd61724]
    • Various small optimizations [a907497][b50fd8b][65e17c4]
  • Internal:

The following people contributed to this release:

Elizabeth Mattijsen, Juan Julián Merelo Guervós, Patrick Böker,
Will "Coke" Coleda, Daniel Green, Stoned Elipot, Alexander Kiryuhin, Stefan Seifert,
Sizhe Zhao, Christian Bartolomäus, Tom Browder, Vadim Belman,
Jonathan Worthington, Tim Smith, Luis F. Uceta, andreoss, Suman Khanal,
Aleks-Daniel Jakimenko-Aleksejev, Nicholas Clark,
Luc St-Louis, Mike Swierczek, Timo Paulssen, Ben Davies,
Wenzel P. P. Peppmeyer, Donald Hunter, Jan-Olof Hendig, Jac...

Read more