Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tag: 2012.03
Fetching contributors…

Cannot retrieve contributors at this time

116 lines (101 sloc) 4.161 kb
Rakudo Roadmap
--------------
Last updated: 2012-02-10
This document serves as a guide to the major goals for Rakudo
development, as things stood in December 2011. They have been
roughly categorized. Each has been given a 1-3 priority
indicator, where 1 is "fairly pressing", 2 is "desirable",
and 3 is "wanted, but not a key goal right now". Each item
also has from one to five asterisks indicating the estimated
"degree of effort" required for the item.
A lower priority does not mean, "don't work on this". If you
want to hack on a priority 3 item, go right ahead. It is, after
all, wanted. And things that are priority 3 now will eventually
work their way up to the top anyway. Mostly, -Ofun.
Some items are marked with the names of people likely to either
work on them OR serve as a "contact person" for the goal. Again,
don't let a name already being against a goal stop you working
on it - though it would be wise that you check where the marked
person is at with it to avoid any duplicated effort, or to pick
up hints about how to jump in. :-)
Patches to this document are welcome - to add missing goals,
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.
Macros (masak)
2 *** macro declarations and invocation; Rudimentary quasiquotes
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
2 *** missing native operators, including ++/-- (jnthn)
3 ** logical cascades
3 ** operator adverbs
Regexes
1 ** LTM for alternations
2 ** array variable interpolation
3 ** <*foo>
3 * <~~>
3 ** <|w>, <|b>, ...
3 * <(, )>
3 ** explicit backtracking control (::, :::)
3 ** <cut>
3 ** :exhaustive adverb
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 ** 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
Phasers
2 *** ENTER and LEAVE
2 ** LAST/NEXT/FIRST/REDO
2 ? PRE/POST
3 ? KEEP/UNDO
Language Features
1 *** basic Perl 5 interop (use, eval, etc.)
1 ** non-Numeric enums
2 * anonymous enums
2 ** enumerations as roles
2 ** pseudo-packages MY, CONTEXT, OUTER, etc. (jnthn)
2 *** heredocs
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
3 ** constant declarators with non-literals
3 *** domain specific languages -- slang and grammar tweaks
3 **** more advanced Perl 5 interop (lexical embedding, etc.)
3 *** temp variables
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
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
Jump to Line
Something went wrong with that request. Please try again.