Releases: rakudo/rakudo
2021.02
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
toearlier
andlater
methods onDateish
[8a1f8f6][10dea6e] - Add "Solaris" option to the list returned by
KERNELnames
method on$*RAKU
[f918f0f] - Introduce the
slice
method onSeq
accepting indices
(e.g.@a.Seq.slice(0, 2 ... *)
) [63be83d] - Implement
Map
method onQuantHash
[110343d]
- Add support of the
- Changes:
- Add a way to set
arg0
(when specified, passed as first argument
to the process instead of the program name) forProc
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
aQuantHash
to anArray
object [6cd50ab] - Conversion of a
Str
object to Enum now returns a
Failure
object wrapping anX::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 forQuantHash
andCapture
types [8f6c7fe] - Throw a proper NYI error on attempt to parametrize a Hash with native types [5aec4aa]
- Add a way to set
- Efficiency:
- Makes
DateTime.new(y,m,d,h,m,s)
about 25% faster [0c8d238] - Make
>>.
faster [8c3795e] - Make the
truncated-to
method implementation forDateTime
andDate
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]
- Makes
- 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 onComplex
[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:
- No longer use Travis for CI [53da206]
- Add
MoarVM::SIL
helper module for developers to have better
interface to spesh results [7f90c71][c8647ad][b01320a]
[1a03ce0][6793c55][842bbae][842bbae][1b45d0a][7e97062]
[98b91f4][dfd604d][1fb8caf][3235f3e] - Resurrect
make test
on the JVM backend
[bad3621][5dfdd35][0b4332d][3f1607f] - Make
Rakudo:Internals
methodSHORT-STRING
handle null str correctly [f2e324d] - Introduce
Rakudo::Internals.TARGET
,Rakudo::Internals.E
,
Rakudo::Internals.RERUN-WITH
methods [025448a][467a931][116c8e8][164815f] - Implement the
repo-chain
method on$*REPO
iteratively,
rather than recursively [50d1d86] - Make
RAKUDO_SCHEDULER_DEBUG_STATUS
logging leaner [aa9e849] - Remove a now unneeded
unimatch
method multi [6306f1e] - Improve the internal subroutine
proclaim
ofTest
module
[5133103][297cba1][446caae] - Implement
sec
,asec
andsech
in terms of other NQP trigonometric functions [c9d69dc] - Add support for native BOOT arrays for the
dd
routine [4e645ee] - Fix individual running of some test files [74e5212]
- Add tests for inlining
[1fb058e][87d7c5a][5a402a1][d94d07e][0536d03][a3c7d00][9c7b556] - Various cleanup and micro-optimization changes
[336a217][e14833b][3c79db6][e5f94a1][620fa7a][fa648a5]
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.
-
See https://raku.org/ ↩
2020.12
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)
onBuf
,chdir(Str(), :$!test)
onIO::Path
)
andindir(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]
- Deprecated method candidates (
- Additions:
- Add new method
deterministic
toIterator
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 thetouch
utility [f2ea0a6] - Add
:emit-on-empty
and:emit-once-on-empty
methods toSupply.batch
method [cb8eb68] - Add
:emit-timed
toSupply.batch
method [492651e] - Make
is DEPRECATED
trait introspectable onRoutine
instances [0d1c8a8]
- Add new method
- Changes:
- Improve output of
Attribute
documentation when rendered withPod::To::Text
[a0a8a51] - Increase sensitivity of
Supply.batch(:seconds)
x 1000 [aecfc9b] - The
cas
subroutine now acceptsMu
as both its target and values [998cae5] - Defined
List
instances no longer returnTrue
when callingACCEPT
with an undefinedList
(i.e.List ~~ ()
returns False now) [9fd79f9] - Mark the base native
array
class asPositional
[d1d2546]
- Improve output of
- Efficiency:
- Implement metamodel transparency of nominalizables and fix handling of
definite parameters, gaining back some performance loss introduced with
the new coercion protocol in previous release
[d37906d][ed16d6c][b5465b1][e481619] - Fix a shaped array performance problem [f27e212]
- Make execution of some kinds of
when
faster [c080e59][0006475][b3a2558] - Make
cas
subroutine ~10% faster [484f870] - Make
@a[*-1]
candidates about 60% faster [2d5d3bf] - Optimize some array operators [4ac0f73]
- Make array access
[$i]
with$i
being a native int about 2x as fast [7c0956b] - Improve the performance of signature binding [b1f59a2]
- Speed up various aspects of native 1-dim shaped arrays and
native arrays in general
[42fceb0][2c5b545][3def3ce][705e6e6][a76e2b6][60fa48e]
[6792cc4][bd944e7][2274aa8][392d8be][1c43c46]
- Implement metamodel transparency of nominalizables and fix handling of
- Fixes:
- Fix number of issues with REPL execution. e.g. it "forgetting" previous
multi sub declarations, callingWHAT
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 ofIO::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 onCompUnit::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 handlesRAKU_TEST_TIMES
environment variable,
previously calledPERL6_TEST_TIMES
[d84ed4e]
- Fix number of issues with REPL execution. e.g. it "forgetting" previous
- Internal:
- Remove deprecated functionality to core epilogue [7406f8c]
- Introduce
Rakudo::Iterator.TailWith
[f6c7ddb][9dbb52f] - Add
sink-all
method to a number of PredictiveIterators [cf0f2f2] - Make
Iterator.sink-all
default to usingskip-one
[f0ebdd0] - Add
raku
method toRakudo::Internals::IterationSet
for easier debugging [0d301fa] - Remove all easily removable
nqp::stmts
from Rakudo code [f2f2cf8] - Another round of nqp::if -> ternaries [aba90b0]
- Fix unwanted references to other compilations by CompilerServices [d0de766]
- Type IO::Socket::INET family/type/protocol values [534cc54]
- Add missing debug type names for easier debugging [a68b8ab]
- Move "is test-assertion" to candidates [15ec4fe]
- Adapt filenames in binary release scripts [3748884]
- Various cleanup and micro-optimization changes [1801a5a]
[eabdee4][45246ae][6852f40][dce6804][c663cc3][1712f03]
[b525c4d][6ee47f0][912381b][2ce5260][80f9283][161325e]
[65f24a8][c02c9cd][46e9468][82d31e0][137d49b][53ad24a]
[1331ffd][c4c4ba9]
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.
-
See https://raku.org/ ↩
2020.11
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 ascoercive
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.
Ifcoerce
method ofMetamodel::CoercionHOW
is used forFoo(Bar)
,
then the following methods are tried in the order of mentioning:- the current standard of
Bar.Foo
Bar.COERCE-INTO(Foo)
Foo.COERCE-FROM(Bar)
Also, nested coercions are supported now.
User code that depends heavily on compiler internals in this area can become incompatible,
so upgrade with caution if there is any of such sort.
[f2d7328][2675813][81f3334][27fb3ec][3961495][841529a][ea2fdd2]
[3a7ae22][ebef668][178c853][dcfcda6][7429bfe][32a8024][42a0d13]
[0dc9664][f4f5d2c][e890ddf][9725c2e][58576c2][0edb1fc][1dd99ef]
[72984bf][4efcdba][43a81a2][8a1ba7f][cad8087][9f62532][34bc0b9]
[a3ed020][b452566][6dbce0a][824c5ad][c015759][efd8078][2fb0f9f]
- the current standard of
- Implement the
prefix:<||>
operator in postcircumfixes for6.e
and later,
originally described in Synopsis 09 [e6787d7][48b1b20][7a2264b][35213f6] - Give
dd
(an internal Rakudo-specific routine for debugging purposes)
support forBOOTThread
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]
- Introduce new coertion semantics. It includes coercions being first-class
- 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
andunshift
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
underuse v6.e
pragma [6b87d3e] - Don't inherit mixin class language revision. This allows mixin of custom roles
underv6.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 aJunction
[5b36918] - Fix for
isa-ok
to handle test subjects not inheriting fromMu
(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
andHash::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]
- Replace all simple
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.
-
See https://raku.org/ ↩
2020.10
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 theraku.exe
executable) [0ea6902][708d0ca] - Add 𝐑𝐚𝐤𝐮𝐝𝐨™ and 𝐑𝐚𝐤𝐮™ welcome message [80a4ada][4e9178f][bae905e]
- Implement
- Changes:
- Add a new implementation for multi-level Hash slicing,
not backward-compatible with6.c
version and to be enabled since6.e
[551b577][f106c23][6986ea1][8a2d9a6][1c08e66][1c08e66]
[d08247d][94d8968][18f3808][4b278bc][f9b3f92][b1ec248]
[d6e94ae][564faa6][93503c2][b60772f][198f603][ff2f2b0]
[420cb1f][c701a48][1971ba4][964f6e4][3ca1fed][54eb431]
[d713e45] False.truncate
returnsFalse
instead of 0 now [7192a99]- Make "is rw" on parameters of MAIN worry [d0854ff]
- Change
IterationBuffer.raku
output.
Note that IterationBuffer.raku is a debugging tool: it does
not roundtrip, nor is it the intent that it ever will. [33bb650]
- Add a new implementation for multi-level Hash slicing,
- 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]
- Adapt to simplified
- 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]
- Fix stub packages in multi part declarations only knowing
- Internal:
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.
-
See https://raku.org/ ↩
2020.09
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:
- Changes:
- Deprecations:
- The
parse-names
subroutine is now explicitly deprecated in 6.d
to be be removed in 6.e, useuniparse
subroutine instead [eef7383]
- The
- 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 ofBlob
[f98861a] - Prevent parser bug for multiple
[
in reduce metaop [86bac5a] - Make JVM honor
PERL6_HOME
env variable [038fbc4][c990124] - The
set
/unset
methods onSetHash
and theadd
/remove
methods
onBagHash
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
- Give a hint about missing provides in a META6.json when module
- Internal:
- Efficiency:
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.
-
See https://raku.org/ ↩
2020.08.2
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.
-
See https://raku.org/ ↩
2020.08.1
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
ofWalkList
returns a lazySeq
instance now [fe40ee1]
- Method
- Internal:
Seq
class now has its own proto fornew
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.
-
See https://raku.org/ ↩
2020.08
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
andusage-name
ofParameter
now return an emptyStr
,
when there is no name, instead ofNil
. Methoddefault
returnsCode
type object,
when no default was provided instead ofAny
type object [c11f4b1] - Remove redundant
(())
fromMap.new.raku
[491e1de] - Routine
done-testing
ofTest
module returnsBool
now,
indicating if the tests passed or not [337848f]
- Methods
- Deprecations:
- Deprecate
--nqp-lib
command line option,
which had no effect for more than a year [9071653]
- Deprecate
- Fixes:
- Make
X::Method::NotFound
exception more user-friendly
[b36afcb][760034e][eb0ca2a][66adb77][acc5e64][4546a60] - Fix false positive typechecking exceptions for some generic types
[3d5fba7][973b83d][8d40691][1db17c4][1eb712d] - Ensure
Routine
subtypes are composed before performing mixins with
their instances [7f2ae26][e3c2646] - Fix mixing in a role with attributes into a NQP class [1b5f6b9][9e51d01]
- Make exceptions thrown by supply iterators don't claim to have
originally been thrown within the iterator itself [fcfc60b] - Fix
Baggy.pickpairs
called with aCallable
[08f81f2] - Fix a rare, yet possible data race [9d6d8dd]
- Make
- Additions:
- Add
set_parameterizer
,parameterize_type
,type_parameterized
,
type_parameters
andtype_parameter_at
methods forMetamodel::Primitives
[2ab9442]
- Add
- 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]
- Type
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.
-
See https://raku.org/ ↩
2020.07
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:
- Fixes:
- Improve "Method not found" error message for some rare cases [0a86798]
- Fix calling
.say
/.put
/.note
methods on Match objects [9f546ef] - Add word wrapping to numerous error messages, improve wording
[eb589c0][1b84e03][3cb29a0][6db1fb1][80aaede][4203186][f70a3cc]
[3ffed2f][a7a1fe2][cd8846a][83a126b][3add861][3d9a9fc][697596f]
[56e5f7d][88b0e7a][7a93c90][f550c9f][a4b982c][9396343][58685ee]
[5f423a7][92f8c19][5627e02][5b7ecdc][a745505][f96a641][1f93724]
[98c7e51][248664c][3bc4fa9] - Wordwrap
Mu.WHY
[16d24a2] - Fix check for valid Raku module extension to be an exact match instead of suffix-like one [d4eef8d]
- Fix result of
.raku
method called on a generic typed array [90f86d4]
- 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
returnsTrue
) [701f4cf][dbd69ba] - Add support for Supply.tail(*) and .tail(Inf) [9ccfc90]
- Add support for Supply.tail(*-3) [eaa72af]
- Make
Supply.head(*-3)
consistent withList.head(*-3)
[5c8c732][70e5cfb] - Rakudo now supports the
--rakudo-home
command line option to specify the path of the Rakudo home [914bcba]
- Set equality operators:
- Efficiency:
- Internal:
- Micro-optimize
buf8.new
creation code in compiler [ed936c1] - Give
Supply.tail
its own candidate [1a91af8] - Add
Str.naive-word-wrapper
(implementation detail)
[056d6a4][9ea66e1][6db1fb1][4589349][821f582][3674f81] - Make
IO::Path
use its own.succ
/.pred
logic [305fc7b] - Remove placeholder files [07009cc]
- Re-imagine
CompUnit::Repository::FileSystem!distribution
[f3b1c8d] - Change
perl6
toRaku
in nqp-configure submodule URL [ddebab5] - Refactor
Rakudo home
andNQP home
handling [e4f020c] - Do core setting name mapping via compiler config [6e087e1]
- Fix for spectest not seeing Inline::Perl5 [d563072]
- Micro-optimize
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.
-
See https://raku.org/ ↩
2020.06
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///
ora/../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 usingcleanup
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
andProc::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.
- Results of
- Changes:
- Support verbatim argument handling for
Proc
[709941c][9a75738] - Signatures of
slurp
andspurt
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 returnsSeq
instead ofList
[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
returnsTrue
now) [3b4794f][840d3e8]
- Support verbatim argument handling for
- Fixes:
- Fix code objects created BEGIN time EVAL getting lost in precompilation [537f887][169f63d]
- The
is
routine fromTest
module now handles types that cannot be stringified and
compares them usingraku
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 ofIO::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 isgist
[285717a] - Add
:chomp
named argument toStr.lines
similar to the same named argument ofIO::Handle.new
[1bcc5d7]
- Add
- 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
andIO::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
andIO::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 andIO::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
andnot
routines faster [d8c2650][8a3c36f][5c93dda][cb69cfc] - Optimize symbol lookup [c5f5d7e][dc6594d][5d61b3d]
- Prevent
$*OUT
lookup for each eigenstate of Junction when callingprint
orput
[4297cb0] - Make
printf
routine up to 5% faster [e46d459] - Streamline variable
is
andof
handling [5561669] - Make
Hash.sort
a tiny bit faster [cd61724] - Various small optimizations [a907497][b50fd8b][65e17c4]
- Make creation of regex captures faster [15961f9][272c463]
- Internal:
- Set up CI with Azure Pipelines [ae07d68][43213e4][55529de]
[78fe25b][42c3799][4085cfd][5b4faed][5587574][fce783a][adfa192] - Fix
main-version.nqp
dependencies [b71cb3a] - Improve
say
,put
,print
,note
methods ofIO::Handle
[7a902b5]
[88d9822][627b39b][438c1d2][483cac3][2b38666] - Simplify
Shaped1Array.reverse
[de173a1] - Simplify
EVAL(:check)
code [afe8511] - Rework part of
Match
internals [0a84aa7] - Simplify
Kernel.signals
usingSignal
values [5644c70] - Simplify
Grammar.parse
code [f10e5bc][8be2406][1402c1d] - Allow debuggers for Rakudo to be specified by environment variables [48e073e]
- Default to using egdb when possible in rakudo-gdb-m which covers OpenBSD developer environments [b01b012]
- Introduce INTERPOLATE [417a591][777e7b6][3f9f23a][638517d][0590722]
- Various internal improvements to the code base [ef0c457][e71d3cb]
[37533ee][b3d933b][4afaab7][3796405][17bf5d5][d9defb6][2aac854]
[799d627][a56e62d][c1decf2][a69465a][26d88b9][44b2701][95f7d34]
[b5bf1bf][285717a][21c3ef8][4103a30][a616fe5][e645ff6][ea8c04d]
[ad9b9f4][9942ccc][1c94538][9f73351][e9f8035][a431968][519a572]
[4ba70b7][496e916][d984e7c][bf01f84][da9943a][150af9a][6f45945]
[92d0183][98dec90][792a0f0][902401b][4d1ef59][2bfaab6] - Update
INSTALL.txt
for the latest changes [8bb0235][e1db95e][bd5e19e] - Various small improvements to compiler's user-facing documentation [dac68b2]
[302bc8e][736ce71][10a8f6a][627ffd4][3d6756b][eab17e7][18ecb60]
[2cff6dd][77b2f2a][197bba9][621577b][d09cf9d][8a8f62c][a79efde]
[797c96d][8c3f013][11afa53][fbb0abc] - Various changes to documentation related to renaming process
[6ead4ce][142d03b][e0384ee][0ccd4cf][4d6031f][d53a3b1][de6ebd4][b003239]
- Set up CI with Azure Pipelines [ae07d68][43213e4][55529de]
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...