Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
119 lines (105 sloc) 4.93 KB
Rakudo Roadmap
Last updated: 2010-05-05
This document identifies the major tasks planned for Rakudo
development as of May 2010. Most of these tasks are
oriented around the Rakudo Star distribution, currently targeted
for June, 2010.
The items below are given a 1-3 priority indicator for the
Rakudo Star release, where 1 is "really important", 2 is
"ought to have", and 3 is "nice to have". Each item also
has from one to five asterisks indicating the estimated
"degree of effort" required for the item. Some items also
have additional notes (A-Z) of larger-scale issues or
considerations for the item. Finally, we've also provided
an indication of the person(s) most likely to be working
on the item; this is not intended to preclude or discourage
others from doing so.
Patches to this document are welcome.
Really important items
1 ** complete lazy lists in Seq and Array (colomon, bkeeler, jnthn, pmichaud, others)
1 * array/hash vivification (masak, jnthn, pmichaud)
1 *** REPL remembers the variable from the last line (D, jnthn)
1 * lexical variables in regexes (B, bkeeler, masak, jnthn)
1 ** operator overloading -- infix:, prefix:, postfix: (almost there, problems with pre-comp)
1 ** import module symbols into current lexical scope (D, jnthn)
1 ** improved error messages and failure modes (B, all)
1 * attention-grabbing examples (all)
1 ** release announcement draft (pmichaud, all)
1 *** get the Advent examples running again (all)
Ought to have items
2 ** basic Buf implementation (A, masak)
2 ** speed issues and profiling (C, all)
2 ** regex modifiers (B, pmichaud)
2 *** installation standards (A)
2 ** custom operators for circumfix:, postcircumfix: (B, pmichaud)
2 *** heredocs (B)
2 ** Rat, BigNum, numification improvements (C, colomon)
2 ** true hyper/cross/reverse/other metaoperators (colomon, jnthn, pmichaud)
(seems to be mostly there -- what's missing?)
2 ** synopsis 19 handling (A, D, pmichaud, particle, others)
2 *** temp variables (C)
2 **** better longest token matching in regexes (A, D, pmichaud)
2 ? other S02 data types -- KeySet, KeyBag (A)
2 ? specialized Unicode bits -- .codes, .graphs, .bytes (A, C)
2 * REPL actually prints (D)
Nice to have items
3 *** array/hash element vivification via WHENCE (jnthn)
3 **** module versioning and download (A, jnthn, mberends, masak, others)
3 **** ENTER/LEAVE/LAST/NEXT/FIRST/REDO control blocks (C, Z4)
3 **** Perl 5 interop (Z5, sorear)
3 *** Pseudo-packages MY, CONTEXT, OUTER, $?LINE, etc. (jnthn)
3 ? feed operators (jnthn)
3 **** macros (B, Z, sorear)
3 *** pod heredocs (B)
3 *** complete Buf implementation (C)
3 *** slice context (A, B, Z3)
3 ** native calling interface (A, C, Z4)
3 *** domain specific languages -- slang and grammar tweaks (A, B, D)
3 ? sized types -- int32, int8 (C)
3 ? native typed scalars (C)
3 ? packed arrays (C)
3 ? compact structures (C)
3 **** full s/// including s[\d+] += 42 (B) (basic version is there; needs
attributes and making $/ available on the RHS)
3 * other REPL improvements (D)
3 ** operator adverbs (B, pmichaud)
A. Involves Perl 6 spec updates/revisions: Some items
involve or require substantial updates or revisions to
the synopses in order to progress.
B. Requires some improvements to the grammar or grammar engine.
C. Some Parrot-level support and/or development needed.
D. Some NQP-level support and/or development needed.
Z. Explicitly postponed items: Some items we explicitly
postpone until later in Rakudo development. There are generally
a variety of reasons we might do this:
(Z1) it's not an immediately pressing issue and there's
little penalty or some benefit from delaying work on it
(Z2) the spec is vague or non-existent on the topic
(Z3) we expect the spec or to change or evolve substantially
(Z4) we expect Parrot or the compiler environment to change substantially
(Z5) the item appears to be Really Hard "right now"
(Z6) other blockers
Completed ROADMAP items:
- better return value checking (done)
- clean up subtypes in multi-dispatch (done)
- maintain candidate lists in lexicals (done)
- overloadable postcircumfix:<[ ]> and postcircumfix:<{ }> (done)
- proper trait definition and usage (need to fix edge cases)
- binding named arguments to positional parameters (done)
- using (or close analog) for parsing (done)
- lexicals refactor (done)
- embedded closures in regexes (done)
- declare contextual and lexical vars in regexes (done)
- return multiple values from a sub (done)
- unpacking arguments (done)
- nested signatures (done)
- captures in signatures and return values (done)
- array/hash element vivification via Proxy (done)
- better gather/take handling of arguments (done)
- lazy gather/take (done)
- basic s/// (done)
- protoregexes in grammars (done)
- item assignment (done)
- lexical classes and roles (done)
Something went wrong with that request. Please try again.