Rakudo Perl 6 development release #21 ("Seattl

brian_d_foy on 2009-09-18T15:57:00

particle writes "On behalf of the Rakudo development team, I'm pleased to announce
the September 2009 development release of Rakudo Perl #21 "Seattle".
Rakudo is an implementation of Perl 6 on the Parrot Virtual Machine [1].
The tarball for the September 2009 release is available from
http://github.com/rakudo/rakudo/downloads .

Due to the continued rapid pace of Rakudo development and the frequent
addition of new Perl 6 features and bugfixes, we recommend building Rakudo
from the latest source, available from the main repository at github.
More details are available at http://rakudo.org/how-to-get-rakudo.

Rakudo Perl follows a monthly release cycle, with each release code named
after a Perl Mongers group. September 2009 is code named "Seattle" for the
enthusiasm they have shown for Perl 6 during monthly meetings, and the
feedback, encouragement and support given me for the past several years.

Since the 2009-08 release, Rakudo Perl builds from an "installed
Parrot" instead of using Parrot's build tree. This release of Rakudo
requires Parrot 1.6.0. For the latest information on building and
using Rakudo Perl, see the README file section titled "Building and
invoking Rakudo". (Quick note: the "--gen-parrot" option still
automatically downloads and builds Parrot as before, if you prefer
that approach.)

Also, unlike previous versions of Rakudo Perl, the "perl6"
(or "perl6.exe") executables only work when invoked from the
Rakudo root directory until a "make install" is performed.
Running "make install" will install Rakudo and its libraries
into the Parrot installation that was used to build it, and then
the executables will work when invoked from any directory.

Some of the specific major changes and improvements occuring
with this release include:

* Rakudo is now passing 15,497 spectests, an increase of 3,128
    passing tests since the August 2009 release. With this release
    Rakudo is now passing 71.5% of the available spectest suite.

* Rakudo now supports contextual variables.

* Rakudo now supports the rational (Rat) data type.

* Rakudo now supports overloading of many of the builtin operators,
    many of which are now defined in the core setting. Many have
    also been improved to be more faithful to the specification
    with respect to types and coercions.

* Substantially improved support for trait handling. Most of the
    "built-in" traits are now defined in the core setting.

* The %*ENV variable now works properly for modifying the process environment.

Since the Perl 6 specification is still in flux, some deprecated features
have been removed from Rakudo. Prominently among those are:

  * '=$handle' is deprecated in favor of '$handle.get' (one line)
      and '$handle.lines' (all lines).

  * 'int $obj' is deprecated in favor of '$obj.Int'.

The development team thanks all of our contributors and sponsors for
making Rakudo Perl possible. If you would like to contribute,
see http://rakudo.org/how-to-help , ask on the perl6-compiler@perl.org
mailing list, or ask on IRC #perl6 on freenode.

The next release of Rakudo (#22) is scheduled for October 22, 2009.
A list of the other planned release dates and codenames for 2009 is
available in the "docs/release_guide.pod" file. In general, Rakudo
development releases are scheduled to occur two days after each
Parrot monthly release. Parrot releases the third Tuesday of each month.

Have fun!

References:
[1] Parrot, http://parrot.org/"


I've got a question

hobbs on 2009-09-19T10:42:10

I know that the people working on Rakudo are all smart folks, and not lazy either, so there must be something thoroughly difficult about implementing s///. But, not knowing anything about Rakudo's internals I can't for the life of me imagine what the hangup is. Anyone want to venture an explanation?

Re:I've got a question

JonathanWorthington on 2009-09-20T12:10:06

Well, in part it is laziness, but the "doing work twice is bad" kind. :-) We could probably hack something in for this, but instead are waiting until the grammar engine is advanced enough that we can handle this (and other quoting constructs) the way STD does. Converging Rakudo's grammar towards STD (the standard Perl 6 grammar) is something that pmichaud++ is actively working on, so it shouldn't be too long before we support s/// (I'm the wrong person to give a specific guess though.

For now, $string.subst(/pattern/ "rep") works (and the fact that this works is one reason we've not hacked something in sooner - because there's a good enough way already).

Hope this helps (and I'm sure pm will jump on anything inaccurate I said here - I'm not the brains behind the parsing stuff...)

Jonathan

Re:I've got a question

hobbs on 2009-10-18T09:30:53

A bit belated but I just wanted to say I appreciate the reply. I know it's just a peeve of mine, but I felt like airing it. And I do hope that the plan is at least to address this by "spring". s/// is just too much "basic idiomatic perl", and if you don't have it it will be your "word count". :)

Re:I've got a question

JonathanWorthington on 2009-10-18T12:19:35

Oh, I'm sure it's a peeve of more than just you. :-) While I mentioned that there's work going on to adopt something like the STD grammar that will allow us to parse these, I neglected to mention that doing that is one of the "must do" tasks for Rakudo *. So yes, we really should have s/// support by then. :-)