Commit 9ea5ab22 authored by Alessandro Ghedini's avatar Alessandro Ghedini

Merge tag 'upstream/2012.09.1'

Upstream version 2012.09.1
parents 40759b82 a6001b4e
*~
src/gen/*
Perl6/*
nqp/
install/
Makefile
......@@ -12,7 +11,9 @@ Makefile
*.lib
lib/Test.pir
lib/Pod/To/Text.pir
lib/lib.pir
CORE.setting.pbc
RESTRICTED.setting.pbc
SAFE.setting.pbc
perl6
perl6.pbc
......@@ -30,7 +31,6 @@ perl6.rc
t/localtest.data
t/spec
parrot
perl6
perl6.c
perl6.o
MANIFEST
......@@ -54,3 +54,4 @@ lib/Safe.pir
rakudo_test_run.tar.gz
config.status
config.default
qperl6.*
......@@ -6,8 +6,8 @@
works. It is sorted by name and formatted to allow easy
grepping and beautification by scripts.
The fields are: name (N), email (E), web-address (W),
description (D), subversion username (U) and snail-mail
address (S).
description (D), Subversion or GitHub username (U) and
snail-mail address (S).
Thanks,
......@@ -205,7 +205,8 @@ U: __ash__
E: ash@greaterthaninfinity.com
N: Jonathan Scott Duff
U: duff
U: perlpilot
U: PerlJam
E: duff@pobox.com
N: Jonathan "Duke" Leto
......
......@@ -56,7 +56,7 @@ MAIN: {
}
# --with-parrot and --gen-parrot imply --gen-nqp
if (!defined $gen_nqp && (defined $with_parrot || defined $gen_parrot)) {
if (!defined $gen_nqp && !defined $with_nqp && (defined $with_parrot || defined $gen_parrot)) {
$gen_nqp = '';
}
......
......@@ -8,10 +8,13 @@
library installed (<http://site.icu-project.org/>). Rakudo can run
without ICU, but some Unicode-related features do not work properly.
To get readline support (command history and editing), you'll also
need the "libreadline-dev" library.
As an example, on Debian GNU/Linux or Ubuntu Linux, the necessary
components for building Rakudo can be installed via the command
aptitude install build-essential libicu-dev git-core
aptitude install make gcc libicu-dev libreadline-dev git-core
(Perl is installed by default already). To enable parallel testing you
also need the CPAN module Test::Harness in version 3.16 or newer; you
......@@ -19,8 +22,9 @@
variable.
Building and invoking Rakudo
Because Rakudo is under rapid development, we generally recommend
downloading Rakudo directly from github and building from there:
If you're wanting the bleeding-edge version of the Rakudo Perl 6
compiler, we recommend downloading Rakudo directly from Github
and building it from there.
$ git clone git://github.com/rakudo/rakudo.git
......@@ -78,7 +82,7 @@
satify a minimum specified by the Rakudo being built -- Configure.pl
and "make" will verify this for you. Released versions of Rakudo
always build against the latest release of Parrot; checkouts of
the HEAD revision from github often require a version of Parrot
Rakudo's HEAD revision from Github often require a version of Parrot
that is newer than the most recent Parrot monthly release.
Once built, Rakudo's "make install" target will install Rakudo and its
......
Rakudo Perl 6
This is Rakudo Perl, a Perl 6 compiler for the Parrot virtual machine.
Rakudo Perl is Copyright (C) 2008-2011, The Perl Foundation. Rakudo Perl
Rakudo Perl is Copyright (C) 2008-2012, The Perl Foundation. Rakudo Perl
is distributed under the terms of the Artistic License 2.0. For more
details, see the full text of the license in the file LICENSE.
......@@ -15,9 +15,10 @@ Rakudo Perl 6
please visit http://perl6.org/compilers/features .
Building Rakudo
See the INSTALL.txt file for detailed prerequisits and build and
See the INSTALL.txt file for detailed prerequisites and build and
installation instructions. The short version is
$ # recommended: install libicu-dev and libreadline-dev packages
$ perl Configure.pl --gen-parrot --gen-nqp
$ make
$ make spectest # optional
......
2012.04.1
2012.09.1
New in 2012.09.1
+ is-prime and expmod
+ smart matching against Signature literals
+ binding to signatures in declarators
+ the is hidden and base traits
+ ability to set encoding on sockets temporarily removed (reverts to 2012.08 behavior)
New in 2012.09
+ class Iterable does not inherit from class Cool anymore
+ basic macro unquoting
+ basic support for m:P5/.../ regexes
+ support for indirect type names in routine and type declarations
+ compiler now built with QAST-based NQP, which generates better code, thus
making the compiler a little faster
+ support for "is export" traits on constants
+ implemented Str.wordcase
+ can now write more complex proto subs and methods, using {*} to enter the
dispatcher
+ tie-breaking with constraints now picks the first matching one rather than
demanding they be mutually exclusive
New in 2012.08
+ tclc implemented
+ --> ReturnType in signatures and prefix type constraints of routine return
types are honored
+ reduced memory usage at build time by around 35% - 40%
+ the argument to IO::Socket.recv is now interpreted as a number of characters
+ enum lists and arguments to parametric roles are now evaluated at compile time
+ switched to new internal AST and backend representations (QAST and PIRT)
+ removed deprecated routines Str.bytes and Str.lcfirst/&lcfirst
+ errors from traits now contain file name and line number
+ IO::File and IO::Dir have been removed
+ inliner has been improved and can inline a wider range of routines
+ simple implementation of the 'soft' pragma
+ fixed over-eager treatment of numeric literals as int rather than Int in cases
where they appeared each side of an infix operator
+ detect circularities in module loading
+ sigilless variables in signatures when proeceed by | or \
+ prevented blocks that declare variables turning into hash constructors
+ made pre-compilation complain if dependencies are not pre-compiled yet
+ fixed interpolation of double-quoted strings in regexes
+ fixed issue with Num.new not being friendly to subclassing
+ implemented handling of complex numbers in Str.Numeric
New in 2012.07
+ Deprecated SAFE.setting in favor of RESTRICTED.setting
+ Ranges can now interpolate in argument lists
+ The built-in meta-objects (such as Metamodel::ClassHOW) now inherit from Any
+ &open now supports :enc/:encoding
+ Exception.fail, .resumable and .resume
+ Changed &dir to return IO::Path objects, not strings
+ Deprecated .bytes, .ucfirst, and .lcfirst
+ &slurp now supports :bin
+ &spurt implemented
+ cleaned up Version implementation
+ fixed :s file test
+ recognize obosolete rand() and rand(N) forms at compile time
+ anonymous subset types 'subset :: of Int where { $_ > 0 }'
New in 2012.06
+ Rakudo is now compiled with the same regex engine as user-space regexes use
+ transitive longest-token matching in protoregexes
+ changed the output of Match.gist
+ string to number conversion now fails for non-numbers
+ string to number conversion now recognizes radix notation
+ string incrementation is now aware of more scripts
+ <|w> word boundary in regexes implemented
+ more errors from within the meta model now contain line number and file name
+ &push and &unshift functions can now autovivify
+ user-defined operators properly participate in LTM
+ Rakudo's C code is now compiled with optimization switches turned on
+ basic module loading tracing with the RAKUDO_MODULE_DEBUG=1 env variable
+ longest token matching with alternations
+ require with argument list
+ compile time errors in loaded modules now show a module loading backtrace
+ improved list and .map handling
+ can now use | to flatten a pair into an argument list as a named argument
New in 2012.05
+ meta ops //=, ||= and &&= now short-circuit properly
+ Failure objects don't blow up the REPL anymore
+ allow case insensitive regex matches without ICU in limited cases
+ %*ENV now propagates into subprocesses
+ RAKUDOLIB env variable supported in addition to PERL6LIB
+ -I and -M command line options
+ $?LINE and $?FILE variables
+ warnings now include line number from program, not from CORE.setting
+ reduction meta-operator on list-associative ops now has correct semantics
+ now have :th alias for :nth in Str.match
+ import collisions now report the name of the module that is to blame
+ ms// fixed
+ <$x> in regexes caches the compiled regex, which can be a big performance win
+ implemented temp and let
+ 'use' can now import by tag name
+ 'use' with positional arguments
+ lib.pm
+ updated calling conventions for traits
+ implemented fff flip-flop operator; improvements to ff form also
+ removed current directory from default library search path
+ 'import' works
+ symbols installed in EXPORT in all nested packages, not just UNIT::EXPORT
+ enumeration types can be used as roles
+ END phasers now run when program ends with exit or an exception
+ fix Rat.floor and .ceiling to work for large numbers
+ improved Rat stringification
+ Real is now a role, as it should be
+ implemented < foo bar baz > syntax for alternations in regexes
+ implemented <( and )> syntax for setting from/to of match in regexes
+ support for non-Int enums
+ basic support for Version literals
+ chmod now available as a function
+ roundrobin implemented
+ fixed a bug in precompilation of modules that use roles from other modules
+ basic implementation of pack and unpack
+ implemented substr-rw, which provides an l-value (assignable) substring
+ implemented <~~> (recursive call into self) syntax in regexes
+ 'LAZY' statement prefix
New in 2012.04.1
+ autvivification for arrays and hashes
+ more robust module precompilation
......
Rakudo Roadmap
--------------
Last updated: 2012-04-20
Last updated: 2012-09-01
This document serves as a guide to the major goals for Rakudo
development, as things stood in December 2011. They have been
......@@ -28,9 +28,6 @@ remove completed ones, re-prioritize, volunteer for a goal,
rescue yourself from a goal, etc.
Compiler Performance/Portability Improvements (jnthn)
1 *** get NQP bootstrapped with QRegex engine
1 ** LTM and other updates to Rakudo grammar to work on QRegex
2 ***** design, implement and switch to QAST
2 ** finish up any remaining s/pir::/nqp::/
2 ? re-organize Rakudo, build process, etc. for multi-backend
3 ** Optimizing multis for `[+] 1..10` and `[<=] 1..10` etc.
......@@ -42,59 +39,58 @@ Macros (masak)
3 ? Textual macros
Operators
2 * precedence traits for user defined operators
2 * precedence traits for user defined operators (jnthn)
2 *** missing native operators, including ++/-- (jnthn)
3 ** logical cascades
3 ** operator adverbs
Regexes
1 ** LTM for alternations
2 ** array variable interpolation
2 ** ~~ inside regexes
2 * Null pattern detection (at parse time)
2 * :sigspace ignores leading whitespace
2 ** ? quantifier produces Nil or Match, not List[Match]
3 ** <*foo>
3 * <~~>
3 ** <|w>, <|b>, ...
3 * <(, )>
3 ** explicit backtracking control (::, :::)
3 ** <cut>
3 ** <~~0>, <~~foo>
3 *** explicit backtracking control (::, :::)
3 ** <cut> and <commit>
Built-ins/Data Structures
2 *** throwing typed exceptions (moritz)
2 *** packed arrays (jnthn)
2 ***** NFG strings, .codes, .graphs, etc.
2 ** Rat/FatRat/Rational cleanup
2 *** other S02 data types -- KeySet, KeyBag
2 *** other S02 data types -- KeySet, KeyBag (tadzik)
2 ** sized/shaped arrays (jnthn)
2 ** Str.Numeric rewrite (japhb, str-numeric branch)
2 *** val() (japhb)
3 *** arrays with custom keys
3 *** complete Buf implementation
3 *** complete LoL and slice context implementation
3 *** Cat and stream matching
? ? Correct type smiley support (:U, :D, :T, etc.)
Phasers
2 ** LAST/NEXT/FIRST in loops other than for loops
Language Features
1 *** basic Perl 5 interop (use, eval, etc.)
1 ** non-Numeric enums
2 ** enumerations as roles
2 *** heredocs
2 * $=DATA and friends (tadzik)
2 ** module versioning
2 ** import/export tags
2 ** missing bits of enums
2 *** new syntax/semantics for coercion (jnthn)
2 ** MAIN and USAGE (japhb)
2 ** Failure changes (japhb)
2 *** module versioning
2 ? coercion types
2 * improved hash/block disambiguation
3 *** domain specific languages -- slang and grammar tweaks
3 **** more advanced Perl 5 interop (lexical embedding, etc.)
3 *** temp variables
3 ? Parse and execute simple Perl 5 code
Optimizer (jnthn)
2 ** ro/rw variable tracking, related transforms
2 ** context/non-context variable tracking
2 *** :D/:U constraint tracking and integration with dispatch analysis
2 ** inlining of routines that do method calls
2 * topic preservation elimination on simple block inlines
2 *** inlining calls to methods
3 *** guard lifting for method call inlining
......@@ -105,3 +101,6 @@ STD Convergence (needs more exploration)
2 *** using mixins for derived languages
2 *** more of STDs TTIAR error handling
3 ** work on convergence with STD's quote parsing
Other things (to be organized into above groups)
3 ? AUTOLOAD, including possibly AUTOLOADING setting components
Announce: Rakudo Perl 6 compiler development release #52 ("MadMongers")
On behalf of the Rakudo development team, I'm glad to announce the
May 2012 release of Rakudo Perl #52 "MadMongers". Rakudo is an
implementation of Perl 6 on the Parrot Virtual Machine (see
<http://www.parrot.org>). The tarball for this release
is available from <http://github.com/rakudo/rakudo/downloads>.
Please note: This announcement is not for the Rakudo Star
distribution[*] -- it's announcing a new release of the compiler only.
For the latest Rakudo Star release, see
<http://github.com/rakudo/star/downloads>.
The Rakudo Perl compiler follows a monthly release cycle, with each
release named after a Perl Mongers group. The May 2012 release is
code named after MadMongers.
This release includes a whole lot of changes since the last one, including:
* -I and -M command-line options
* support for non-Int enums
* 'use' now accepts positional arguments and is able to import by tag name
* 'import' now works
* basic support for Version literals
* %*ENV now propagates into subprocesses
* basic implementation of pack and unpack ported from 'ng' branch
* fff flip-flop operator is now implemented, ff has been improved
* various new regex features and improvements
Rakudo now also includes the lib.pm module.
This is only a small peek at the changes in this release. For a more
detailed list, see "docs/ChangeLog".
The development team thanks all of our contributors and sponsors for
making Rakudo Perl possible, as well as those people who worked on
Parrot, the Perl 6 test suite and the specification.
The following people contributed to this release:
Moritz Lenz, Jonathan Worthington, Patrick R. Michaud,
Jonathan Scott Duff, Tadeusz Sośnierz, Carl Masak, Will "Coke" Coleda,
Marcus Ramberg, kboga, TimToady, Kyle Hasselbacher, Geir Amdal, JimmyZ,
benabik and gfldex.
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 (#53) is scheduled for June 21, 2012. A
list of the other planned release dates and code names for 2012 is
available in the "docs/release_guide.pod" file. In general, Rakudo
development releases are scheduled to occur soon after each Parrot
monthly release. Parrot releases the third Tuesday of each month.
On behalf of the development team, I encourage you to try the new release.
Have fun, and let us know about your experience.
[*] What's the difference between the Rakudo compiler and the Rakudo
Star distribution?
The Rakudo compiler is a compiler for the Perl 6 language.
Nothing else.
The Rakudo Star distribution is the Rakudo compiler plus a selection
of useful Perl 6 modules, the most recent incarnation of the "Using
Perl 6" book, and other software that can be used with the Rakudo
compiler to enhance its utility. Rakudo Star is meant for early
adopters who wish to explore what's possible with Rakudo Perl 6 and
provide feedback on what works, what doesn't, and what else they
would like to see included in the distribution.
Announce: Rakudo Perl 6 compiler development release #53 ("Strasbourg")
On behalf of the Rakudo development team, I'm glad to announce the
June 2012 release of Rakudo Perl #53 "Strasbourg". Rakudo is an
implementation of Perl 6 on the Parrot Virtual Machine (see
<http://www.parrot.org>). The tarball for this release
is available from <http://github.com/rakudo/rakudo/downloads>.
Please note: This announcement is not for the Rakudo Star
distribution[*] -- it's announcing a new release of the compiler only.
For the latest Rakudo Star release, see
<http://github.com/rakudo/star/downloads>.
The Rakudo Perl compiler follows a monthly release cycle, with each
release named after a Perl Mongers group. The June 2012 release is
code named after Strasbourg, the location of the French Perl Workshop 2012.
This release includes a lot of changes since the last one, including:
* Longest-Token Matching for | alternations in regexes
* Stricter numification of strings (fails if the string does not
represent a number)
* 'require' now allows argument lists
* Faster .map / list handling
* Improvements to typed exceptions
This is only a small peek at the changes in this release. For a more
detailed list, see "docs/ChangeLog".
The development team thanks all of our contributors and sponsors for
making Rakudo Perl possible, as well as those people who worked on
Parrot, the Perl 6 test suite and the specification.
The following people contributed to this release:
Contributors to Rakudo since the release on 2012-05-17:
Moritz Lenz, Jonathan Worthington, Patrick R. Michaud, kboga,
Jonathan Scott Duff, Tadeusz Sośnierz, Carl Masak, Geoffrey Broadwell,
diakopter, Solomon Foster, JimmyZ, TimToady
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 (#54) is scheduled for July 19, 2012. A
list of the other planned release dates and code names for 2012 is
available in the "docs/release_guide.pod" file. In general, Rakudo
development releases are scheduled to occur soon after each Parrot
monthly release. Parrot releases the third Tuesday of each month.
On behalf of the development team, I encourage you to try the new release.
Have fun, and let us know about your experience.
[*] What's the difference between the Rakudo compiler and the Rakudo
Star distribution?
The Rakudo compiler is a compiler for the Perl 6 language.
Nothing else.
The Rakudo Star distribution is the Rakudo compiler plus a selection
of useful Perl 6 modules, the most recent incarnation of the "Using
Perl 6" book, and other software that can be used with the Rakudo
compiler to enhance its utility. Rakudo Star is meant for early
adopters who wish to explore what's possible with Rakudo Perl 6 and
provide feedback on what works, what doesn't, and what else they
would like to see included in the distribution.
Announce: Rakudo Perl 6 compiler development release #54 ("Tallinn")
On behalf of the Rakudo development team, I'm glad to announce the
July 2012 release of Rakudo Perl #54 "Tallinn". Rakudo is an
implementation of Perl 6 on the Parrot Virtual Machine (see
<http://www.parrot.org>). The tarball for this release
is available from <http://github.com/rakudo/rakudo/downloads>.
Please note: This announcement is not for the Rakudo Star
distribution[*] -- it's announcing a new release of the compiler only.
For the latest Rakudo Star release, see
<http://github.com/rakudo/star/downloads>.
The Rakudo Perl compiler follows a monthly release cycle, with each
release named after a Perl Mongers group. The July 2012 release is
code-named after Tallinn, a fine old capital where jnthn and masak had
much useful discussions about Perl 6 macro design last year.
This release includes a lot of changes since the last one, including:
- Built-in meta-objects (e.g. Metamodel::ClassHOW) now inherit from Any
- &open now supports :enc/:encoding
- Changed &dir to return IO::Path objects, not strings
- Deprecated .bytes, .ucfirst, and .lcfirst on Str
- recognize obosolete rand() and rand(N) forms at compile time
- anonymous subset types 'subset :: of Int where { $_ > 0 }'
This is only a small peek at the changes in this release. For a more
detailed list, see "docs/ChangeLog".
The development team thanks all of our contributors and sponsors for
making Rakudo Perl possible, as well as those people who worked on
Parrot, the Perl 6 test suite and the specification.
The following people contributed to this release:
Patrick R. Michaud, Moritz Lenz, Jonathan Worthington, Jonathan Scott Duff,
Carl Mäsak, ronaldxs, Felix Herrmann, harmil, Gabor Szabo, sisar
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 (#55) is scheduled for August 23, 2012. A
list of the other planned release dates and code names for 2012 is
available in the "docs/release_guide.pod" file. In general, Rakudo
development releases are scheduled to occur soon after each Parrot
monthly release. Parrot releases the third Tuesday of each month.
On behalf of the development team, I encourage you to try the new release,
to live life to its fullest, to cherish each moment, and to have fun.
[*] What's the difference between the Rakudo compiler and the Rakudo
Star distribution?
The Rakudo compiler is a compiler for the Perl 6 language.
Nothing else.
The Rakudo Star distribution is the Rakudo compiler plus a selection
of useful Perl 6 modules, the most recent incarnation of the "Using
Perl 6" book, and other software that can be used with the Rakudo
compiler to enhance its utility. Rakudo Star is meant for early
adopters who wish to explore what's possible with Rakudo Perl 6 and
provide feedback on what works, what doesn't, and what else they
would like to see included in the distribution.
Announce: Rakudo Perl 6 compiler development release #55 ("Frankfurt")
On behalf of the Rakudo development team, I'm glad to announce the
August 2012 release of Rakudo Perl #55 "Frankfurt". Rakudo is an
implementation of Perl 6 on the Parrot Virtual Machine (see
<http://www.parrot.org>). The tarball for this release
is available from <http://github.com/rakudo/rakudo/downloads>.
Please note: This announcement is not for the Rakudo Star
distribution[*] -- it's announcing a new release of the compiler only.
For the latest Rakudo Star release, see
<http://github.com/rakudo/star/downloads>.
The Rakudo Perl compiler follows a monthly release cycle, with each
release named after a Perl Mongers group. The August 2012 release is
code-named after Frankfurt.pm, the group that hosted this year's
YAPC::Europe conference in Frankfurt am Mein.
This release brings a massive amount of changes; some of them are
outlined below:
- Memory usage of build stage is reduced by 35% - 40%
- Sigilless variables in signatures (prefixed by | or \)
- Blocks that declare variables don't turn into hash constuctors anymore
- Better error reporting for traits
- --> ReturnType in signatures and prefix type constraints of routine
return types are now honored
- Circularities in module loading are now detected
- Improvements in inliner, which allow it to inline a wider
range of routines
Some features have been deprecated:
- Parameters preceeded by a | or \ may not have a sigil anymore.
sub f(\$x) { say $x }
must be changed to
sub f(\x) { say x }
Usage of \$x will unconditionally warn in 2012.09 and be removed in 2012.10
- IO::Path.dir (which returns the directory part of the path)
has been renamed to IO::Path.directory.
IO::Path.dir will be removed or re-purposed in 2012.09
- The LAZY statement prefix will be removed in 2012.09. It was a non-specced
experiment and did not work out well.
This is only a small peek at the changes in this release. For a more
detailed list, see "docs/ChangeLog".
The development team thanks all of our contributors and sponsors for
making Rakudo Perl possible, as well as those people who worked on
Parrot, the Perl 6 test suite and the specification.
The following people contributed to this release:
Jonathan Worthington, Moritz Lenz, Arne Skjærholt, Geoffrey Broadwell,
Will "Coke" Coleda, Tadeusz Sośnierz, Patrick R. Michaud, Felix Herrmann,
Carl Mäsak, kboga, thou, Brian Gernhardt, Stefan O'Rear, GlitchMr,
ChoHag, Larry Wall and lumi_
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 (#56) is scheduled for September 20, 2012. A
list of the other planned release dates and code names for 2012 is
available in the "docs/release_guide.pod" file. In general, Rakudo
development releases are scheduled to occur soon after each Parrot
monthly release. Parrot releases the third Tuesday of each month.
On behalf of the development team, I encourage you to try the new release,
to live life to its fullest, to cherish each moment, and to have fun.
[*] What's the difference between the Rakudo compiler and the Rakudo
Star distribution?
The Rakudo compiler is a compiler for the Perl 6 language.
Nothing else.
The Rakudo Star distribution is the Rakudo compiler plus a selection
of useful Perl 6 modules, the most recent incarnation of the "Using
Perl 6" book, and other software that can be used with the Rakudo
compiler to enhance its utility. Rakudo Star is meant for early
adopters who wish to explore what's possible with Rakudo Perl 6 and
provide feedback on what works, what doesn't, and what else they
would like to see included in the distribution.
Announce: Rakudo Perl 6 compiler development release #56 ("Perl")
On behalf of the Rakudo development team, I'm thrilled to announce the
September 2012 release of Rakudo Perl #56 "Perl". Rakudo is an
implementation of Perl 6 on the Parrot Virtual Machine (see
<http://www.parrot.org>). The tarball for this release
is available from <http://github.com/rakudo/rakudo/downloads>.
Please note: This announcement is not for the Rakudo Star
distribution[*] -- it's announcing a new release of the compiler only.
For the latest Rakudo Star release, see
<http://github.com/rakudo/star/downloads>.
The Rakudo Perl compiler follows a monthly release cycle, with each
release named after a Perl Mongers group. The September 2012 release is
code-named after Perl.pm, a group located in scenic Perl in Saarland,
Germany, where an important meetup took place on August 16th-19th
concerning the reunification of Perl 5 and Perl 6.
This release brings changes; some of them are outlined below:
- basic macro unquoting
- basic support for m:P5/.../ regexes
- support for indirect type names in routine and type declarations
- support for "is export" traits on constants
- Str.wordcase implemented
- slightly faster compilation (thanks to switching NQP over to QAST)
- tie-breaking with constraints now picks the first matching one rather than
demanding they be mutually exclusive
A possibly breaking change:
- class Iterable does not inherit from class Cool anymore
This is only a small peek at the changes in this release. For a more
detailed list, see "docs/ChangeLog".
The development team thanks all of our contributors and sponsors for
making Rakudo Perl possible, as well as those people who worked on
Parrot, the Perl 6 test suite and the specification.
The following people contributed to this release:
Jonathan Worthington, Moritz Lenz, Carl Mäsak, Salve J. Nilsen, Patrick R.
Michaud, Gerhard R, Tadeusz Sośnierz, Will "Coke" Coleda, Geoffrey Broadwell,
diakopter, PerlJam, cognominal, Larry Wall
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 (#57) is scheduled for October 18, 2012. A
list of the other planned release dates and code names for 2012 is
available in the "docs/release_guide.pod" file. In general, Rakudo
development releases are scheduled to occur soon after each Parrot
monthly release. Parrot releases the third Tuesday of each month.
On behalf of the development team, I encourage you to try the new release,
to live life to its fullest, to cherish each moment, and to have fun.
[*] What's the difference between the Rakudo compiler and the Rakudo
Star distribution?
The Rakudo compiler is a compiler for the Perl 6 language.
Nothing else.
The Rakudo Star distribution is the Rakudo compiler plus a selection
of useful Perl 6 modules, the most recent incarnation of the "Using
Perl 6" book, and other software that can be used with the Rakudo
compiler to enhance its utility. Rakudo Star is meant for early
adopters who wish to explore what's possible with Rakudo Perl 6 and
provide feedback on what works, what doesn't, and what else they
would like to see included in the distribution.
Announce: Rakudo Perl 6 compiler development release 2012.09.1
On behalf of the Rakudo development team, I'm announcing an
out-of-schedule release of the Rakudo Perl 6 compiler. Rakudo is an
implementation of Perl 6 on the Parrot Virtual Machine (see
<http://www.parrot.org>). The tarball for this release
is available from <http://github.com/rakudo/rakudo/downloads>.
Please note: This announcement is not for the Rakudo Star distribution[*]
-- it's announcing a new release of the compiler only. For the latest
Rakudo Star release, see <http://github.com/rakudo/star/downloads>.