Commit 5fc86344 authored by Robert Lemmen's avatar Robert Lemmen

New upstream version 2018.12

parent 20630c1f

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

...@@ -98,6 +98,11 @@ U: brrt ...@@ -98,6 +98,11 @@ U: brrt
E: bartwiegmans@gmail.com E: bartwiegmans@gmail.com
D: Hack MoarVM JIT stuff D: Hack MoarVM JIT stuff
N: Ben Davies
U: Kaiepi
E: kaiepi@outlook.com
D: Improving *BSD and networking support
N: Bernhard Schmalhofer N: Bernhard Schmalhofer
U: bernhard U: bernhard
E: Bernhard.Schmalhofer@gmx.de E: Bernhard.Schmalhofer@gmx.de
...@@ -317,11 +322,6 @@ E: francois.perrad@gadz.org ...@@ -317,11 +322,6 @@ E: francois.perrad@gadz.org
W: http://fperrad.googlepages.com/home W: http://fperrad.googlepages.com/home
U: fperrad U: fperrad
N: M. Faiz Zakwan Zamzuri
E: skelic3@gmail.com
U: faraco
W: https://faracosite.wordpress.com
N: Gabor Szabo N: Gabor Szabo
E: szabgab@gmail.com E: szabgab@gmail.com
...@@ -603,6 +603,10 @@ D: Test infrastructure, tests, general Rakudo hacking ...@@ -603,6 +603,10 @@ D: Test infrastructure, tests, general Rakudo hacking
N: Mouq N: Mouq
E: alexmoquin@gmail.com E: alexmoquin@gmail.com
N: Momo
E: skelic3@gmail.com
U: momozor
N: Nicholas Clark N: Nicholas Clark
U: nicholas U: nicholas
E: nick@ccl4.org E: nick@ccl4.org
......
This diff is collapsed.
New in 2018.12:
+ Fixes:
+ Fixed infiniloops with some set operators [99d94db4][9f5cc8d1]
+ Fixed regression in handling of `"1"..9` [d92b155c]
+ Fixed use of `Proxy` in a class attribute using
the `Attribute`.`get_value`/`set_value` interface [a5411e45]
+ Fixed semantics of `minpairs`/`maxpairs` (ignore undefined values) [7bf7a2c6]
+ Fixed error on `@a > 2` if `@a` is a native array
+ Fixed error reporting on initializing shaped array with
improperly shaped data [fd216fec]
+ Negative indexes on native arrays are now checked properly [dd2af90c]
+ Fixed use of uninitialized value in `IO::Notification` [83d0056b]
+ Enums can now have private methods mixed in [3c2cfb22]
+ Fixed resource content lookup for `Distribution::Path` [370310b3]
+ Fixed precompilation when cwd gets changed at run time [e2e5cc53]
+ Shared library versions are now ignored on OpenBSD [5603128e]
+ Many improvements to the JS backend [1865db0d][fdd249a3][194c84b9]
[1dd59f10][52c2af5d][8b13655c][2869a48b][cf5432ae][758caa89]
[e0b943d0][a759f9d7]
+ Various improvements to produced messages [869b9e58][abfb9a40]
[79824db5][55d08c8f][24c8e172]
+ Additions:
+ Added `Endian` enum and implemented new methods in `blob8`/`buf8`
for reading/writing native values [46d4c9fe][011c6f11][f66861dc]
[f0279313][b781f8cc][543219c9][77182713][06156a7c]
+ Added `Kernel.endian` [2a761ca7][af43b159]
+ Implemented `Blob.readint` / `Buf.writeint` [4f14d713][fecfb22d]
[5cc0e02d][79dd1c8e][ceaf7218][631940c7][38afa2d6][e7b61aff]
+ Added `.native-descriptor` for async sockets [a4db9139][2fd90b1e]
+ Added `.Real` method to native arrays [dd3f91a2]
+ Implemented `last` and `LAST` in `whenever` blocks [890d628a]
+ Efficiency:
+ Made `<$rx>` interpolation 1.05x as fast [62243cd9]
+ Made simple regex matches 1.05x as fast [01c56b48]
+ Other minor optimizations [93ea7ed1][a0cb89a7][adb85609][6c2f3c83]
+ Internal:
+ Introduced a more generally usable `X::ArrayShapeMismatch` error [dd030145]
+ Internal micro-optimizations [38bc682b][f18432ea]
New in 2018.11: New in 2018.11:
+ SPECIAL NOTES: + SPECIAL NOTES:
+ 🎆❇️🔥 Default language version is now `v6.d` 🔥❇️🎆 [46ef0ea0] + 🎆❇️🔥 Default language version is now `v6.d` 🔥❇️🎆 [46ef0ea0]
......
# Announce: Rakudo Perl 6 compiler, Release #129 (2018.12)
On behalf of the Rakudo development team, I’m very happy to announce the
December 2018 release of Rakudo Perl 6 #129. Rakudo is an implementation of
Perl 6 on the Moar Virtual Machine[^1].
This release implements 6.c and 6.d versions of the Perl 6 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 2019 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.
The tarball for this release is available from <https://rakudo.org/files/rakudo>.
Please note: This announcement is not for the Rakudo Star
distribution[^2] — it’s announcing a new release of the compiler
only. For the latest Rakudo Star release, see
<https://rakudo.org/files/star>.
The changes in this release are outlined below:
New in 2018.12:
+ Fixes:
+ Fixed infiniloops with some set operators [99d94db4][9f5cc8d1]
+ Fixed regression in handling of `"1"..9` [d92b155c]
+ Fixed use of `Proxy` in a class attribute using
the `Attribute`.`get_value`/`set_value` interface [a5411e45]
+ Fixed semantics of `minpairs`/`maxpairs` (ignore undefined values) [7bf7a2c6]
+ Fixed error on `@a > 2` if `@a` is a native array
+ Fixed error reporting on initializing shaped array with
improperly shaped data [fd216fec]
+ Negative indexes on native arrays are now checked properly [dd2af90c]
+ Fixed use of uninitialized value in `IO::Notification` [83d0056b]
+ Enums can now have private methods mixed in [3c2cfb22]
+ Fixed resource content lookup for `Distribution::Path` [370310b3]
+ Fixed precompilation when cwd gets changed at run time [e2e5cc53]
+ Shared library versions are now ignored on OpenBSD [5603128e]
+ Many improvements to the JS backend [1865db0d][fdd249a3][194c84b9]
[1dd59f10][52c2af5d][8b13655c][2869a48b][cf5432ae][758caa89]
[e0b943d0][a759f9d7]
+ Various improvements to produced messages [869b9e58][abfb9a40]
[79824db5][55d08c8f][24c8e172]
+ Additions:
+ Added `Endian` enum and implemented new methods in `blob8`/`buf8`
for reading/writing native values [46d4c9fe][011c6f11][f66861dc]
[f0279313][b781f8cc][543219c9][77182713][06156a7c]
+ Added `Kernel.endian` [2a761ca7][af43b159]
+ Implemented `Blob.readint` / `Buf.writeint` [4f14d713][fecfb22d]
[5cc0e02d][79dd1c8e][ceaf7218][631940c7][38afa2d6][e7b61aff]
+ Added `.native-descriptor` for async sockets [a4db9139][2fd90b1e]
+ Added `.Real` method to native arrays [dd3f91a2]
+ Implemented `last` and `LAST` in `whenever` blocks [890d628a]
+ Efficiency:
+ Made `<$rx>` interpolation 1.05x as fast [62243cd9]
+ Made simple regex matches 1.05x as fast [01c56b48]
+ Other minor optimizations [93ea7ed1][a0cb89a7][adb85609][6c2f3c83]
+ Internal:
+ Introduced a more generally usable `X::ArrayShapeMismatch` error [dd030145]
+ Internal micro-optimizations [38bc682b][f18432ea]
The following people contributed to this release:
Paweł Murias, Elizabeth Mattijsen, Aleks-Daniel Jakimenko-Aleksejev,
Stefan Seifert, Jonathan Worthington, Ben Davies, Petr Rockai, Nick Logan,
Samantha McVey, Timo Paulssen, Momo
If you would like to contribute or find out more information, visit
<https://perl6.org>, <https://rakudo.org/how-to-help>, ask on the
<perl6-compiler@perl.org> mailing list, or ask on IRC #perl6 on freenode.
Additionally, we invite you to make a donation to The Perl Foundation
to sponsor Perl 6 development: <https://donate.perlfoundation.org/>
(put “Perl 6 Core Development Fund” in the ‘Purpose’ text field)
The next release of Rakudo (#130), is tentatively scheduled for 2019-01-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 <http://moarvm.org/>
[^2]: What’s the difference between the Rakudo compiler and the Rakudo
Star distribution?
The Rakudo compiler is a compiler for the Perl 6 language.
Not much more.
The Rakudo Star distribution is the Rakudo compiler plus a selection
of useful Perl 6 modules, a module installer, Perl 6 introductory
documentation, and other software that can be used with the Rakudo
compiler to enhance its utility.
...@@ -18,7 +18,18 @@ Note that we are trying very hard to ensure there are no backward ...@@ -18,7 +18,18 @@ Note that we are trying very hard to ensure there are no backward
compatibility issues post Christmas. As such, we may end up delaying compatibility issues post Christmas. As such, we may end up delaying
some releases to ensure any compatibility issues are resolved. some releases to ensure any compatibility issues are resolved.
2018-12-15 Rakudo #129 (AlexDaniel + Releasable) 2019-01-19 Rakudo #130
2019-02-16 Rakudo #131
2019-03-16 Rakudo #132
2019-04-20 Rakudo #133
2019-05-18 Rakudo #134
2019-06-15 Rakudo #135
2019-07-20 Rakudo #136
2019-08-17 Rakudo #137
2019-09-21 Rakudo #138
2019-10-19 Rakudo #139
2019-11-16 Rakudo #140
2019-12-21 Rakudo #141
(More planned dates can be generated with F<tools/release-dates.p6>). (More planned dates can be generated with F<tools/release-dates.p6>).
...@@ -257,7 +268,9 @@ C<make spectest> (you can abort it after the repository is retrieved). ...@@ -257,7 +268,9 @@ C<make spectest> (you can abort it after the repository is retrieved).
(cd t/spec && git checkout master) # test latest language spec (cd t/spec && git checkout master) # test latest language spec
make stresstest make stresstest
(cd t/spec && git checkout 6.c-errata) # test stable language spec (cd t/spec && git checkout 6.c-errata) # test stable language spec (6.c)
make stresstest
(cd t/spec && git checkout 6.d-errata) # test stable language spec (6.d)
make stresstest make stresstest
There are many tests to run for the stresstest target. If There are many tests to run for the stresstest target. If
...@@ -495,6 +508,7 @@ Previous releases were bundled as part of monthly Parrot releases. ...@@ -495,6 +508,7 @@ Previous releases were bundled as part of monthly Parrot releases.
2018-09-23 Rakudo #126 "2018.09" (AlexDaniel + Releasable) 2018-09-23 Rakudo #126 "2018.09" (AlexDaniel + Releasable)
2018-10-28 Rakudo #127 "2018.10" (AlexDaniel + Releasable) 2018-10-28 Rakudo #127 "2018.10" (AlexDaniel + Releasable)
2018-11-29 Rakudo #128 "2018.11" (AlexDaniel + Releasable) # v6.d 2018-11-29 Rakudo #128 "2018.11" (AlexDaniel + Releasable) # v6.d
2018-12-21 Rakudo #129 "2018.12" (AlexDaniel + Releasable)
=head1 COPYRIGHT =head1 COPYRIGHT
......
...@@ -8,6 +8,7 @@ class Perl6::Metamodel::EnumHOW ...@@ -8,6 +8,7 @@ class Perl6::Metamodel::EnumHOW
does Perl6::Metamodel::Stashing does Perl6::Metamodel::Stashing
does Perl6::Metamodel::AttributeContainer does Perl6::Metamodel::AttributeContainer
does Perl6::Metamodel::MethodContainer does Perl6::Metamodel::MethodContainer
does Perl6::Metamodel::PrivateMethodContainer
does Perl6::Metamodel::MultiMethodContainer does Perl6::Metamodel::MultiMethodContainer
does Perl6::Metamodel::RoleContainer does Perl6::Metamodel::RoleContainer
does Perl6::Metamodel::BaseType does Perl6::Metamodel::BaseType
......
...@@ -1957,68 +1957,79 @@ Did you mean to add a stub (\{...\}) or did you mean to .classify?" ...@@ -1957,68 +1957,79 @@ Did you mean to add a stub (\{...\}) or did you mean to .classify?"
Seq.new( $iter.skip-at-least($n) ?? $iter !! Rakudo::Iterator.Empty ) Seq.new( $iter.skip-at-least($n) ?? $iter !! Rakudo::Iterator.Empty )
} }
# Note that the implementation of minpairs/maxpairs only differs in the
# value against which the result of cmp is compared (-1 for minpairs,
# +1 for maxpairs). Abstracting the logic in a helper sub, did not change
# the binary size significantly, but would introduce a runtime penalty.
# Hence the almost identical pieces of code here.
proto method minpairs(|) {*} proto method minpairs(|) {*}
multi method minpairs(Any:D:) { multi method minpairs(Any:D:) {
Seq.new( my \iter := self.pairs.iterator;
nqp::if( my \result := nqp::create(IterationBuffer);
nqp::eqaddr( nqp::until(
(my $pulled := (my $iter := self.pairs.iterator).pull-one), nqp::eqaddr((my \pair := iter.pull-one),IterationEnd)