Commit 7c273a43 authored by Alessandro Ghedini's avatar Alessandro Ghedini

Imported Upstream version 2013.02.1

parent 96809731
......@@ -33,7 +33,10 @@ MAIN: {
'with-parrot=s', 'gen-parrot:s', 'parrot-option=s@',
'parrot-make-option=s@',
'make-install!', 'makefile-timing!',
);
) or do {
print_help();
exit(1);
};
# Print help if it's requested
if ($options{'help'}) {
......
New in 2013.02
+ "Did you mean ..." suggestions for symbol-not-found errors
+ Compile-time optimization of some cases of junctions in boolean context
+ Date and DateTime now support a .delta method
+ IO::Socket.get now works again with non-Unicode characters
+ $() now takes $/.ast into account
+ proper return value for smartmatching against a substitution
+ better error reporting when a parent class does not exist
+ constant folding for routines marked as 'is pure'
+ natively typed variables now work in the REPL
+ better error reporting in the REPL
+ writable $_ in -p and -e one-liner
+ speed up eqv-comparison of Bufs
+ warnings for useless use of (some) literals, variables and constant
expressions in sink context
+ /../ and rx/.../ literals match against $_ in sink context
+ array variable interpolation into regexes
New in 2013.01
+ sink context; for-loops are now lazy by default
+ first mentioning a variable from outer scope and then redeclaring it
in the same scope (my $a; { $a; my $a }) is now an error.
+ the long-deprecated "SAFE" setting has been removed
+ 'require' now works with indirect module names
+ restored socket read semantics to returning the requested number of bytes
+ $obj.Some::Role::meth() now passes the correct $obj
+ try/CATCH now returns Nil when the CATCH is triggered, rather than the
exception; this brings it in line with try without a CATCH
+ whatever-star cases of splice now implemented
+ sequences with Junction endpoints now work
+ corrected precedence of various set operators
+ fixed binding of non-Any things into hashes and arrays
+ can now import multis with the same name from different modules,
provided all dispatchers are onlystar
New in 2012.12
+ ~/.perl6/lib is gone from the default include path
+ fixed indent method's handling of empty lines
+ fixed .indent(*)
+ parse errors now formatted like in STD, with color
+ location of parse error now indicated with context
+ highwater algorithm implemented, greatly improving accuracy of parse error
line numbers and locations in a range of cases
+ some parse errors now report what the parser was looking for at the time the
parse failed
+ better errors for unmatched closing brackets and two terms in a row
+ uniq now has === semantics as specified, not eq semantics
+ junction auto-threader optimized and is an order of magnitude faster
+ implemented sub term:<foo>
+ implemented texas versions of the Set and Bag operators
+ good error for use of . to concatenate strings
+ flattening large lists of Parcels now happens in about half the time
+ adopted STD panic/sorry/worry model, meaning that we now keep parsing
further and can report multiple issues in a range of cases
+ we now catch and complain about post-declared type names
+ variable redeclarations are now just a warning, not an error
+ a mention of an &foo that is never defined is now an error
+ fixed .perl output for a Pair with a Pair key
+ interpolation of undeclared arrays, hashes and functions now detected
+ { a => $_ } now correctly considered a block, not a hash as before
New in 2012.11
+ user-defined operators only affect the parser in the scope they are declared in
+ fixed pre-compilation of modules containing user-defined operators
+ implemented precedence related traits (equiv, looser, tighter, assoc)
+ Perl 6 grammar NFAs are pre-computed, saving some work on each invocation; this
shaved around 10% off the time needed to run the spectests
+ redeclaring a class as a role now gives a better error
+ the < foo bar > syntax in regexes now respects :i
+ << ... >> now interpolates, respecting quoting and pairs
+ fix error reporting for not-found dynamic variables
+ many protos now have much narrower signatures
+ quote parsing implementation aligned with the approach STD uses
+ regexes and quotes have better support for user-selected delimiters
+ quote adverbs
+ heredocs
+ carry out IO::Path.dir deprecation
+ implement infix:<andthen>
+ macro arguments now carry their lexical environment properly
+ postfix operators of the form '.FOO' take precedence over method calls
+ version control markers detected and gracefully complained over
+ INIT phasers now work as r-values
+ our ($x, $y) style declarations fixed
+ take and take-rw now evaluate to the taken value
+ implemented cando method on Routine
+ FIRST/NEXT/LAST can now be used in all types of loop (previously limited to for)
+ implemented operator adverbs
+ implemented :exists and :delete subscript adverbs and on hashes
+ implemented :p, :k, :v and :kv subscript adverbs on arrays and hashes
+ fixed shell words post-processing like << foo "bar $baz" >>
+ byte-order mark at the beginning of a file is now ignored
+ fixed bug that could lead to disappearing symbols when loading pre-compiled modules
+ Configure no longer passes --optimize to Parrot if --parrot-option is specified
+ deprecated current &foo semantics
+ fixed #`foo and friends at start of statementlist
+ simplify setting line number of compile-time exceptions
+ made :($a, $b) := \(1, 2) update $a and $b
New in 2012.10
+ :60[24, 59, 59] radix form
+ delegation to methods using the handles trait
......
Rakudo Roadmap
--------------
Last updated: 2012-09-01
Last updated: 2012-12-28
This document serves as a guide to the major goals for Rakudo
development, as things stood in December 2011. They have been
......@@ -33,16 +33,13 @@ Compiler Performance/Portability Improvements (jnthn)
3 ** Optimizing multis for `[+] 1..10` and `[<=] 1..10` etc.
Macros (masak)
2 *** quasiquote splicing
2 ** hygienic macros and the COMPILING:: pseudopackage
2 **** "delayed" declarations of routines and types within quasiquotes
3 ? Textual macros
Operators
2 * precedence traits for user defined operators (jnthn)
2 *** missing native operators, including ++/-- (jnthn)
3 ** logical cascades
3 ** operator adverbs
Regexes
2 ** array variable interpolation
......@@ -63,26 +60,23 @@ Built-ins/Data Structures
2 *** other S02 data types -- KeySet, KeyBag (tadzik)
2 ** sized/shaped arrays (jnthn)
2 *** val() (japhb)
2 ** Correct type smiley support (:U, :D, :T, etc.) (jnthn)
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.)
2 *** heredocs
2 * $=DATA and friends (tadzik)
2 ** module versioning
2 ** missing bits of enums
2 *** new syntax/semantics for coercion (jnthn)
2 ** MAIN and USAGE (japhb)
2 ** Failure changes (japhb)
2 ? coercion types
2 * improved hash/block disambiguation
2 *** coercion types
2 * tr///
2 ** 'no strict;'
3 *** domain specific languages -- slang and grammar tweaks
3 **** more advanced Perl 5 interop (lexical embedding, etc.)
3 ? Parse and execute simple Perl 5 code
......@@ -96,11 +90,7 @@ Optimizer (jnthn)
3 *** guard lifting for method call inlining
STD Convergence (needs more exploration)
2 *** adopt STD's highwater error handling
2 ** align error handling approach more with STDs
2 *** using mixins for derived languages
2 *** more of STDs TTIAR error handling
3 ** work on convergence with STD's quote parsing
2 ** more of STDs TTIAR error handling
Other things (to be organized into above groups)
3 ? AUTOLOAD, including possibly AUTOLOADING setting components
Announce: Rakudo Perl 6 compiler development release #58 ("Walnut")
On behalf of the Rakudo development team, I'm thrilled to announce the
November 2012 release of Rakudo Perl #58 "Walnut". 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 November 2012 release is code-named
after Walnut, home of "Yet Another Society" aka "The Perl Foundation".
This release brings changes; some of them are outlined below:
+ implemented precedence related traits (equiv, looser, tighter, assoc)
+ Perl 6 grammar NFAs are pre-computed, saving some work on each invocation; this
shaved around 10% off the time needed to run the spectests
+ regexes and quotes have better support for user-selected delimiters
+ heredocs
+ FIRST/NEXT/LAST can now be used in all types of loop (previously limited to for)
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, Jonathan Scott Duff,
Will "Coke" Coleda, Tobias Leich, Geoffrey Broadwell, Nicholas Clark,
Konrad Borowski, flussence
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 (#59) is scheduled for December 20, 2012. A
list of the other planned release dates and code names for future
releases 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 #59 ("Warszawa")
On behalf of the Rakudo development team, I'm proud to announce the
December 2012 release of Rakudo Perl #59 "Warszawa". 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://rakudo.org/downloads/rakudo/>.
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://rakudo.org/downloads/star/>.
The Rakudo Perl compiler follows a monthly release cycle, with each release
named after a Perl Mongers group. The December 2012 release is code-named
after Warszawa, home of Tadeusz Sośnierz (tadzik), whose contributions to
Rakudo and the Perl 6 ecosystem during 2012 have been significant.
Some of the changes in this release are outlined below:
+ The .indent method now has better handling of empty lines
+ Parse errors are much improved, and follow STD, the standard parser,
much more closely; they are more accurate and more information is given
+ Rakudo now keeps parsing after some less serious errors
+ Better errors for various parse failures
+ The junction autothreader is now an order of magnitude faster
+ Texas versions of the Set and Bag operators implemented
+ Nested Pairs now give correct .perl output
+ { a => $_ } now correctly considered a block, not a hash as before
This is only a small subset of 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, Tobias Leich, Solomon Foster, Timo Paulssen,
Will "Coke" Coleda, Patrick R. Michaud, Amir E. Aharoni, Carl Mäsak, Geoff
Broadwell, Shrivatsan Sampathkumar
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 (#60), assuming the world doesn't end today, is
scheduled for January 17, 2013. A list of the other planned release dates and
code names for future releases 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 #60 ("Sonoma")
On behalf of the Rakudo development team, I'm proud to announce the
January 2013 release of Rakudo Perl #60 "Sonoma". 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://rakudo.org/downloads/rakudo/>.
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://rakudo.org/downloads/star/>.
The Rakudo Perl compiler follows a monthly release cycle, with each release
named after a Perl Mongers group. The January 2013 release is code-named
after Sonoma.pm, home of Geoff Broadwell (japhb), whose contributions to
Rakudo and the Perl 6 ecosystem during 2012/2013 have been significant.
Some of the changes in this release are outlined below:
+ sink context; for-loops are now lazy by default
+ first mentioning a variable from outer scope and then redeclaring it
in the same scope (my $a; { $a; my $a }) is now an error.
+ the long-deprecated "SAFE" setting has been removed
+ 'require' now works with indirect module names
+ restored socket read semantics to returning the requested number of bytes
+ $obj.Some::Role::meth() now passes the correct $obj
+ try/CATCH now returns Nil when the CATCH is triggered, rather than the
exception; this brings it in line with try without a CATCH
+ whatever-star cases of splice now implemented
+ sequences with Junction endpoints now work
+ corrected precedence of various set operators
+ fixed binding of non-Any things into hashes and arrays
+ can now import multis with the same name from different modules,
provided all dispatchers are onlystar
This is only a small subset of 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 Masak, Tobias Leich, Shrivatsan
Sampathkumar
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 (#61), is scheduled for February 21, 2013.
A list of the other planned release dates and code names for future releases
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.
(And, have a good laugh at conspiracy theorists for their doomed end-of-world predictions!)
[*] 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 #61 ("drinkers")
On behalf of the Rakudo development team, I'm proud to announce the
February 2013 release of Rakudo Perl #61 "drinkers". 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://rakudo.org/downloads/rakudo/>.
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://rakudo.org/downloads/star/>.
The Rakudo Perl compiler follows a monthly release cycle, with each release
named after a Perl Mongers group. The February 2013 release is code-named
after drinkers.pm, as even a camel needs to have a drink from time to time.
Some of the changes in this release are outlined below:
+ "Did you mean ..." suggestions for symbol-not-found errors
+ Compile-time optimization of some cases of junctions in boolean context
+ IO::Socket.get now works again with non-Unicode characters
+ constant folding for routines marked as 'is pure'
+ natively typed variables and better error reporting in the REPL
+ speed up eqv-comparison of Bufs
+ warnings for useless use of (some) literals, variables and constant
expressions in sink context
This is only a small subset of 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:
Timo Paulssen, Moritz Lenz, Jonathan Worthington, Tobias Leich,
Arne Skjærholt, Carl Mäsak, Tadeusz Sośnierz, Will Coleda,
Christoph Otto and Solomon Foster.
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 (#62), is scheduled for March 21, 2013.
A list of the other planned release dates and code names for future releases
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.
Deprecations in 2012.12
'for'-loops will be lazy (just like map), and only be automatically
run in sink (void) or list context. This causes problems if the last
statement in a block is a for-loop that either calls return(), or
is inside a try { } block. Since such code is now run after the block
exits, it is not in the dynamic scope of the routine or the try block.
As a fix, you can force eager execution of the for-loop by adding
another statement after it, or by writing 'eager do for LIST BLOCK'.
This change will take effect in 2013.01.
warnings will start being issued for unused parameters to pointy blocks
and routines. At present, they do not warn at all. Planned for 2013.01.
constructs like "my $a; { $a; my $a; }", where the meaning of the first
mention of $a in the block would create confusion as to what was being
referred to, will become an error as in STD. This change will take
effect in 2013.01.
Deprecations in 2012.11
at present, a reference to an &foo that does not exist evalutes to
Nil. This will become a CHECK-time failure, in line with STD.
Planned for the 2012.12 release.
Deprecations in 2012.10
protos for built-in routines are now mostly as generic as possible,
......
Background: For a variety of reasons, Rakudo continues to target Parrot
monthly releases. This implies that Rakudo developers must periodically
test and develop against the HEAD of Parrot's master branch, to detect
potential breakages before they make it into a monthly Parrot release
that Rakudo expects to build against shortly thereafter. Early
reporting of potential issues, breakages, and performance degradatation
of Parrot HEAD prior to any release is also very beneficial to
Parrot development.
During the May 2011 Parrot Developers Summit the participants agreed
that Parrot will continue to support Rakudo's efforts to target Parrot
monthly releases and be regularly synchronized with Parrot's master branch.
Note that the above agreement does _not_ go so far as to state that
commits to Parrot master can never cause a Rakudo failure. We
recognize that breakages will occasionally occur between Rakudo and
Parrot's HEAD, both within and outside of the scope of Parrot's
deprecation and support policies. Such interim breakages are
completely acceptable as long as there is some confidence by both
development teams that whatever issue is causing the breakage is
likely to be resolved satisfactorily prior to the next Parrot
monthly release.
It is when such resolution seems unlikely that there has been sharp
and contentious debate over the "how, where, who, and when" details of
solving whatever issue may be at hand. This is what the new policy
aims to address.
The policy: Starting May 2011, Parrot and Rakudo will
designate two persons from each team to serve as "relationship
managers" to resolve any issues that arise between the two projects.
These managers are expected to carry sufficient clout or authority
to effect potentially unpopular decisions within their respective
projects (e.g., reverting commits, delaying feature availability,
adjusting development schedules, etc.).
Christoph Otto and Andrew Whitworth have been selected as Parrot's
relationship managers for Rakudo; Rakudo managers for Parrot will
be represented by Moritz Lenz and Patrick Michaud.
In the future, when Rakudo developers feel that discussions about
Parrot on IRC, mailing list, or other channels are unlikely to
resolve a critical breakage or performance issue they are
encountering, the developers should bring the issue to the
attention of one or both of Rakudo's representatives (<person1>
or <person2>). The Rakudo developers involved should also seek
to reduce any pressure they may be applying in the other forums.
(Reducing pressure can be as simple as "I think we may be at an
impasse that needs the guidance of the relationship managers,
let's get them to work on it and we can go have a beer.")
The Rakudo representatives will evaluate any issue brought to
their attention, and they will then bring it to the attention of
the Parrot representatives if they deem it appropriate. At this
point, the representatives from both teams will collectively work
to arrive at a consensus solution that will be acceptable to
both projects (if not to all of the participants). The mechanisms
by which the representatives choose to arrive at their decisions
are entirely up to them.
The above process also holds in reverse for Parrot developers
that feel an issue has become unresolvable via direct discussions
with Rakudo developers.
Note that petitioning or pressuing another project's relationship
managers directly (in their role as relationship manager) is highly
discouraged. Once it's decided that relationship managers need
to be involved, opinions and discussions between the managers will
carry far more weight than those coming across project boundaries.
A relationship manager is free to answer cross-project lobbying
requests from non-managers with "Raise this issue with your
project's relationship managers."
There are two primary motivations for the establishment of
project relationship managers. First, we want to provide a "safety
valve" to relieve heat/pressure and provide a path forward whenever
the normal discussion channels start to appear impossibly deadlocked.
Second, we want a mechanism that ensures that critical decisions
aren't appearing to be made (either explicitly or through inaction)
solely because of the set of participants of any given IRC discussion
or mailing list thread.
Bringing an issue to the attention of a relationship manager does
not mean that the issue will be immediately resolved, nor that
that the issue will ultimately be resolved in exactly the manner
desired by the requestor. What it does mean is that the relationship
managers have committed (1) to thoughtfully investigate and respond
to any issues raised by their counterparts, so that we can all have
some confidence that the issues have been carefully considered from
many sides by people empowered to make changes if needed, and
(2) to work on such issues in a timely manner, so that the overall
disruptions to Parrot's and Rakudo's development are minimized.
We all know that Parrot developers want Rakudo to succeed, and
vice-versa. Nobody is intentionally trying to make things
difficult for others; the projects are just sufficiently complex
that it's impractical for us to completely avoid any surprises
(breakages) in either project. We know surprises will occur; this
new policy will hopefully enable us to collectively handle the inevitable
surprises more productively than we have in the past ("fail softly").
We'll try it and see how it works out; if it doesn't work out,
we'll come up with something else. (Or perhaps well all need to
discuss it with our relationship managers. :-)
Comments and feedback welcomed.
[1] http://irclog.perlgeek.de/parrotsketch/2011-05-14
[2] http://lists.parrot.org/pipermail/parrot-dev/2011-May/005887.html
[3] http://lists.parrot.org/pipermail/parrot-dev/2011-June/005945.html
......@@ -59,18 +59,25 @@ part of monthly Parrot releases.
2012-09-20 Rakudo #56 "Perl" (masak)
2012-09-29 2012.09.1 (pmichaud)
2012-10-18 Rakudo #57 "Tokyo" (duff)
2012-11-22 Rakudo #58 "Walnut" (FROGGS)
2012-12-20 Rakudo #59 "Warszawa" (masak)
2013-01-17 Rakudo #60 "Sonoma" (isBEKaml)
2013-02-21 Rakudo #61 "drinkers" (tadzik)
=head2 Planned 2012 releases
=head2 Planned 2012 and 2013 releases
Dates are based on Parrot's expected release schedule.
2012-11-22 Rakudo #58
2012-12-20 Rakudo #59
2013-01-17 Rakudo #60
2013-02-21 Rakudo #61
2013-03-21 Rakudo #62
2013-04-18 Rakudo #63
2013-05-23 Rakudo #64
2013-06-20 Rakudo #65
2013-07-18 Rakudo #66
2013-08-22 Rakudo #67
2013-09-19 Rakudo #68
2013-10-17 Rakudo #69
2013-11-21 Rakudo #70
2013-12-19 Rakudo #71
=head2 Suggested .pm group names for future releases
......@@ -274,8 +281,12 @@ Tag the release by its release month ("YYYY.MM") and its code name.
=item 15.
Upload the release tarball to github's download area at
L<http://github.com/rakudo/rakudo/downloads>.
Uplaod the tarball to L<http://rakudo.org/downloads/rakudo>:
$ scp rakudo-2010.02.tar.gz rakudo@rakudo.org:public_html/downloads/rakudo/
If you do not have permissions for that, ask one of (pmichaud, jnthn,
masak, tadzik, moritz, PerlJam) on #perl6 to do it for you.
=item 16.
......
......@@ -42,6 +42,27 @@ where
post = an intermediate format representing the parrot opcode syntax tree
pir = the parrot intermediate representation
=head1 List of env vars used in Rakudo
=over
=item C<RAKUDOLIB>, C<PERL6LIB> (src/core/terms.pm)
Appends a delimited list of paths to C<@INC>. C<RAKUDOLIB> is evaluated first.
=item C<RAKUDO_MODULE_DEBUG> (src/Perl6/ModuleLoader.pm)
If set to a non-false value, causes the module loader to print debugging information to standard
error.
=item C<RAKUDO_ERROR_COLOR> (src/core/Exception.pm)
Controls whether to emit ANSI codes for error highlighting. Defaults to true if unset, except on
Win32.
=back
=head1 PARROT OPTIONS
To specify options to the underlying parrot VM, you must explicitly run
......
This diff is collapsed.
......@@ -18,7 +18,6 @@ class Perl6::Compiler is HLL::Compiler {
$super(self, |@args, |%options);
}
# XXX Disable optimizer for now while doing QAST transition.
method optimize($past, *%adverbs) {
%adverbs<optimize> eq 'off' ??
$past !!
......@@ -32,16 +31,25 @@ class Perl6::Compiler is HLL::Compiler {
}
$past;
}
method autoprint($value) {
unless pir::getinterp__P().stdout_handle().tell() > $*AUTOPRINTPOS {
CATCH { nqp::say($_) }
if nqp::can($value, 'gist') {
nqp::say(nqp::unbox_s($value.gist));
} else {
nqp::say(~$value);
}
method interactive_result($value) {
CATCH { nqp::say($_) }
if nqp::can($value, 'gist') {
nqp::say(nqp::unbox_s($value.gist));
} else {
nqp::say(~$value);
}
}
method interactive_exception($ex) {
my $payload := nqp::getpayload($ex);
if nqp::can($payload, 'gist') {
nqp::say(nqp::unbox_s($payload.gist));
}
else {
nqp::say(~$ex)
}
CATCH { nqp::say(~$ex) }
}
method usage($name?) {
......
This diff is collapsed.
......@@ -96,12 +96,15 @@ BEGIN {
}));
Mu.HOW.add_parrot_vtable_mapping(Mu, 'defined',
static(sub ($self) { nqp::istrue($self.defined()) }));
Mu.HOW.compose_repr(Mu);
# class Any is Mu { ... }
Any.HOW.add_parent(Any, Mu);
Any.HOW.compose_repr(Any);
# class Cool is Any { ... }
Cool.HOW.add_parent(Cool, Any);
Cool.HOW.compose_repr(Cool);
# class Attribute {
# has str $!name;
......@@ -252,7 +255,8 @@ BEGIN {
}
$ins
}));