Announce: Rakudo Perl 6 compiler, Release #127 (2018.10)

[email protected] (Aleks-Daniel Jakimenko-Aleksejev) Mon, 29 Oct 2018 00:54:15 +0200
Newsgroups perl.perl6.compiler
Message-ID <[email protected]>
--WM6MxcEgafHJmA2KSXESwwhd1Nf7fGrsO
Content-Type: multipart/mixed; boundary="tZQ3oSaI3S1NNMR8UJFrXDbnFrXlXxNMI";
 protected-headers="v1"
From: Aleks-Daniel Jakimenko-Aleksejev <[email protected]>
To: [email protected]
Message-ID: <[email protected]>
Subject: Announce: Rakudo Perl 6 compiler, Release #127 (2018.10)

--tZQ3oSaI3S1NNMR8UJFrXDbnFrXlXxNMI
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Content-Language: en-US

On behalf of the Rakudo development team, I=E2=80=99m very happy to annou=
nce the
October 2018 release of Rakudo Perl=C2=A06 #127. Rakudo is an implementat=
ion of
Perl=C2=A06 on the Moar Virtual Machine[^1].

This release implements the 6.c version of the Perl=C2=A06 specifications=
=2E
It includes bugfixes and optimizations on top of
the 2015.12 release of Rakudo.

Upcoming releases in 2018 will include new functionality that is not
part of the 6.c specification, available with a lexically scoped
pragma. Our goal is to ensure that anything that is tested as part of the=

6.c specification will continue to work unchanged. There may be increment=
al
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] =E2=80=94 it=E2=80=99s announcing a new release of the c=
ompiler
only. For the latest Rakudo Star release, see
<https://rakudo.org/files/star>.

The changes in this release are outlined below:

New in 2018.10:
=C2=A0 + SPECIAL NOTES:
=C2=A0=C2=A0=C2=A0 + This is the first Rakudo release that comes with an =
additional
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 JS backend. See `6pad` project for running=
 Perl=C2=A06 code directly
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 in your browser.
=C2=A0 + Deprecations:
=C2=A0=C2=A0=C2=A0 + Deprecated `gethostname()` in favor of `$*KERNEL.hos=
tname` [f7fa5185]
=C2=A0 + Fixes:
=C2=A0=C2=A0=C2=A0 + Fixed/improved divide-by-zero errors in
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 `Rational.floor`/`.ceiling`/`.=
Str` [a639fa9c][6d70346c]
=C2=A0=C2=A0=C2=A0 + Fixed semantics of `[Nil]` [88e6de22]
=C2=A0=C2=A0=C2=A0 + Fixed issue with custom `bless` method [64137bd2]
=C2=A0=C2=A0=C2=A0 + Made nativecall's `postcircumfix:<[ ]>` return conta=
iners [be2d4cb4]
=C2=A0=C2=A0=C2=A0 + Fixed hash descriptor when doing `Hash[Int].new` [9a=
cbf000][ea710414]
=C2=A0=C2=A0=C2=A0 + `Nil` is now allowed in initialization and assignmen=
t of hashes
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 [f61ba41a][605bcb39][7e86d4e3]=

=C2=A0=C2=A0=C2=A0 + Fixed ContainerDescriptor for arrays with a dimensio=
n of three
[a2e78ec8]
=C2=A0=C2=A0=C2=A0 + Fixed indexing of shaped arrays with a dimension hig=
her than 3
[0307c366]
=C2=A0=C2=A0=C2=A0 + `.in-timezone`s value is now coerced to Int [c8438e6=
a]
=C2=A0=C2=A0=C2=A0 + Stub methods from roles are now verified [fd5d5bdf]
=C2=A0=C2=A0=C2=A0 + Fixed double-closing of handles in `.lines` when `:c=
lose` and
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 `$limit` are used [6edb142f]
=C2=A0=C2=A0=C2=A0 + Fixed closing of handles in `IO::Handle.lines` when =
`$limit`
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 is used [c1c75740]
=C2=A0=C2=A0=C2=A0 + Consistified Rat.base to fail instead of throw [a804=
ab57]
=C2=A0=C2=A0=C2=A0 + Fixed enforcing of return constraints on multi metho=
d stubs [abba67b2]
=C2=A0=C2=A0=C2=A0 + Various improvements to produced messages [cc2fcc9a]=
[560e94ef]
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 [bf10f4c5][243a2f01][7d02b949]=
[9894eda5][0243275d]
=C2=A0 + Additions:
=C2=A0=C2=A0=C2=A0 + [6.d] Constructs `$()`/`@()`/`%()` no longer have an=
y `$/`-related
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 magic [bb88a032]
=C2=A0=C2=A0=C2=A0 + [6.d] DefiniteHOWs' (type smileys) default default i=
s now the base
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 type [38b198c9]
=C2=A0=C2=A0=C2=A0 + Zero-Denominator Rationals are now normalized on cre=
ation [671c4115]
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 [75ec2248]
=C2=A0=C2=A0=C2=A0 + Made `my @a is List =3D 1,2,3,4` work [2bdf2b35]
=C2=A0=C2=A0=C2=A0 + Using `is Type` on `@` and `%` attributes is now all=
owed [b537ce2e]
=C2=A0=C2=A0=C2=A0 + Added a BOM on `open` for utf16 filehandles [959b89c=
f][479348f3]
=C2=A0=C2=A0=C2=A0 + Added initial support for Unicode 11.0 [5c272ee4]
=C2=A0=C2=A0=C2=A0 + Pluggable `MAIN` interface refactored, documented an=
d tested
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
[f234b9af][35f3d83d][7c9b2955][33c24153][8c3a4131][fbfccfa2]][341190e2][2=
4413b5f[2c43d2bf]
=C2=A0=C2=A0=C2=A0 + Usage message now limits itself to partially matchin=
g candidates
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 [0d1be77e]
=C2=A0=C2=A0=C2=A0 + Added additional dashed variants for utf16le and utf=
16be [4307996a]
=C2=A0=C2=A0=C2=A0 + Added `Parameter.coerce_type` method [0243275d]
=C2=A0=C2=A0=C2=A0 + Added `Code.cando` method to allow for `.cando` on a=
ll `Callable`s
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 [45eeab78][69533b50]
=C2=A0 + Removals:
=C2=A0=C2=A0=C2=A0 + Removed --encoding support [bea08ec6][31b19d09]
=C2=A0 + Efficiency:
=C2=A0=C2=A0=C2=A0 + Made Hash.push/append between 1.2x and 1.4x as fast =
[12cfde2a]
=C2=A0=C2=A0=C2=A0 + Made `"".ord` orders of magnitude faster [b22edce4]
=C2=A0=C2=A0=C2=A0 + Made `=3D=3D` with Rationals up to 1.55x as fast [c5=
a2eb81]
=C2=A0=C2=A0=C2=A0 + Made Rational `=3D=3D=3D` Rational 2.47x as fast [97=
e8413b]
=C2=A0=C2=A0=C2=A0 + Made many cases of `for (range-like things)` up to 1=
50x as fast
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 [2dd02751][645eeb52][dfd6450d]=
[49baea70][89787028][2af789d7]
=C2=A0=C2=A0=C2=A0 + Made `[42]` not allocate anything anymore [8c4546bb]=

=C2=A0=C2=A0=C2=A0 + Made `[@a]` and `[1,2,3]` about 1.4x as fast [e43081=
3f]
=C2=A0=C2=A0=C2=A0 + Made `Array.List` coercion 1.5x as fast [3d405e89]
=C2=A0=C2=A0=C2=A0 + Made `.isa` about 2x as fast [4e8740c8]
=C2=A0=C2=A0=C2=A0 + Made `infix:<%%>` 10.42x as fast on natives [3d161a5=
6]
=C2=A0=C2=A0=C2=A0 + Other minor optimizations [464a86b1][ab83b9d8][8cc3d=
5d7][b107cda5]
=C2=A0 + Internal:
=C2=A0=C2=A0=C2=A0 + Made `make` an only [369068ae]
=C2=A0=C2=A0=C2=A0 + Added skip-one method to appropriate PredictiveItera=
tors [e54885e5]
=C2=A0=C2=A0=C2=A0 + More things are now initialized at setting compile t=
ime
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 [06dfbf02][688cbac1][92735770]=

=C2=A0=C2=A0=C2=A0 + Simplified initialization of `CompUnit::RepositoryRe=
gistry`
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 [0425d927][8e1cd01a]
=C2=A0=C2=A0=C2=A0 + Introduced `IterationBuffer.List` [8c10da6a]
=C2=A0=C2=A0=C2=A0 + Made it not go through `.new` if we can `nqp::create=
` [84311b77]
=C2=A0=C2=A0=C2=A0 + Made sure `.STORE` only works on instances [9daac683=
]
=C2=A0=C2=A0=C2=A0 + Added `$*INSIDE-EVAL` to mark that we're inside an `=
EVAL` [73b7c603]


The following people contributed to this release:

Zoffix Znet, Elizabeth Mattijsen, Pawe=C5=82 Murias, JJ Merelo, Tom Browd=
er,
Bart Wiegmans, Jonathan Worthington, Will "Coke" Coleda,
Aleks-Daniel Jakimenko-Aleksejev, Samantha McVey, thebooort,
Juan Juli=C3=A1n Merelo Guerv=C3=B3s, Ben Davies, Fernando Correa de Oliv=
eira,
Timo Paulssen, Daniel Green, MorayJ, Valentin Anger,
threadless-screw, Jeremy Studer, Nick Logan, finanalyst, Alexander,
Amir Aharoni, Claudio Ramirez, Luis F. Uceta, Nacho Mas, Richard Hainswor=
th,
Alex Schroeder, Bartosz Janus, Brad Gilbert, Jared Miller, Jason Cole,
Jonathan Beebe, Patrick Sebastian B=C3=B6ker, Rafael Schipiura,
Tzu-Li "tison" Chen, Tzu-Li Chen, sarna

If you would like to contribute or find out more information, visit
<https://perl6.org>, <https://rakudo.org/how-to-help>, ask on the
<[email protected]> mailing list, or ask on IRC #perl6 on freenode.=


Additionally, we invite you to make a donation to The Perl Foundation
to sponsor Perl=C2=A06 development: <https://donate.perlfoundation.org/>
(put =E2=80=9CPerl=C2=A06 Core Development Fund=E2=80=9D in the =E2=80=98=
Purpose=E2=80=99 text field)

The next release of Rakudo (#128), is tentatively scheduled for 2018-11-1=
7.

A list of the other planned release dates is available in the
=E2=80=9Cdocs/release_guide.pod=E2=80=9D file.

The development team appreciates feedback! If you=E2=80=99re using Rakudo=
, do
get back to us. Questions, comments, suggestions for improvements, cool
discoveries, incredible hacks, or any other feedback =E2=80=93 get in tou=
ch 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=E2=80=99s the difference between the Rakudo compiler and the R=
akudo
Star distribution?

The Rakudo compiler is a compiler for the Perl=C2=A06 language.
Not much more.

The Rakudo Star distribution is the Rakudo compiler plus a selection
of useful Perl=C2=A06 modules, a module installer, Perl=C2=A06 introducto=
ry
documentation, and other software that can be used with the Rakudo
compiler to enhance its utility.



--tZQ3oSaI3S1NNMR8UJFrXDbnFrXlXxNMI--

--WM6MxcEgafHJmA2KSXESwwhd1Nf7fGrsO
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEE4aV1zMLVjHqlYJ/hRxDZ1DSko8YFAlvWPhcACgkQRxDZ1DSk
o8aS9A//YY9nW9XXSf4xiIoXBTiCjYG9KSm9S8pfDOY5GqVu8NeboQ4jdXhFLnWt
DxQi4MRJiCEJVGJK+74O7f10zlwlUXFIZJo4fk4pvZ2TRUP/8eefCSOXtI8UP+as
Ta2/ueNG2XLE5SDA4KSF5Fo5DDygxp83UTfx881RcFAk+qMAqkxNcbZho8uIeEtO
JIOVh/B4FYkh7lluvq8fDVeX3E1W06GGw1n5BuiZ5fhIXQsWh+QW9Kd+UY9HwaEg
jsCI5SsLM+Y1EmlSLGM1TYurq1HO1AcTA95ieWmDZiHHSIUgo+IjbZ2vzElyOMpO
WCQWU/S5wDfhUmZkgIsUkkMTXDwxJwO0t+ZMpIcCTwUDuJucWhyP4nSoLYbDRhXj
nZNdH9de9/dbSa5ioA32sU27reDnxxLtApePKwhgcG4nuS6ruSxHrJFQX0/mXgu8
t6VZp1zl74RNQbRn8QlQH4rTbfBd+s6LJdH9A5tIR4pWBAt6QqH86hh/9mtb1yIN
2a3jpaAnmuFsCnrhlEi6iD01EoLy1JkAzNa4wmCmSGwGNO5jZiG1uPgq0oQ57Ppv
EZPnsP1GTHYlmyYXEIPGdzH11QdwnWT/eCVSmw7vnqFSd/rGYowML4JzTepE8CaF
tr15Q65PCnWzig4o1qDhkZUytT3xy+lBGzqVMOOyTWsRBhjFWek=
=1HN2
-----END PGP SIGNATURE-----

--WM6MxcEgafHJmA2KSXESwwhd1Nf7fGrsO--