/
ROADMAP
170 lines (137 loc) Β· 5.72 KB
/
ROADMAP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
Updated: 2008-08-16
Milestones
----------
This is a rough list of some of the major components to be added to Rakudo.
This list also gives a sense of the rough prioritization
of things -- i.e., getting return and control exceptions to work
is a higher priority than heredocs or macros. But it's also
not intended to be rigid nor strictly sequential -- it's okay
for people to work on some of the later milestones even if the
earlier ones aren't complete.
ON ESTIMATES: All hourly estimates in milestones B-W are rough
first-cut estimates IDEAL PROGRAMMER HOURS. Nobody should
depend on them for anything other than relative estimates of
difficulty.
Where there's a time given and a percentage of task completion,
the hours represent the estimate to completion. For example,
if a task says "3h" and "50% done", we still have 3 hours of
idealized effort to go, not 1.5.
A PGE needs to be refactored and updated to handle protoregexes and
longest token matching so we can use the STD grammar
Sub-milestones - each is 1 calendar month:
Not expected to fully block other milestones, except as indicated below
M1. PGE internal refactors and initial protoregex implementation (D1),
selected protoregex constructs added to Rakudo's grammar (D2),
interface design for pre-compilation and external libraries (D3, D4).
M2. Completed protoregex implementation (D1),
initial implementation of longest token matching in PGE (D1),
completed Rakudo grammar migration to protoregexes (D2),
beginning of P6-based "Prelude" implementation for Rakudo (D3),
initial implementations of external HLL library support (D4).
M3. Substantially complete longest token matching in PGE (D1),
Rakudo using protoregexes and longest token matching in grammar (D2),
full protoregex and LTM support in Rakudo (D3),
integrate P6-based Prelude into Rakudo implementation (D3),
continued improvement of HLL library support (D4).
M4. Completed PGE protoregex and longest token matching implementation (D1),
update Rakudo bottom-up parser to align with STD.pm (D2),
Rakudo and/or compiler tools able to parse STD.pm directly (D2),
substantial implementation of a P6-based Prelude for Rakudo (D3),
substantially complete external HLL libraries support (D4).
updated documentation and tests for all work performed, final report.
B signature handling
pm estimate: 6h
(jonathan implementing, 40% done)
C list assignment [depends on A, B]
waiting on some spec changes/updates
pm Estimate: 2h
D control exceptions (50% done)
Requires adding exception types to PCT
pm estimate: 3h (25% done)
Requires adding exception closures (INIT, BEGIN, LAST, NEXT, etc.)
pm estimate: 2h
Writing exception throwers in Rakudo
pm estimate: 0.5h (80% done)
E regex, token, rule, grammar (60% done)
We have an initial implementation
Implementaiton needs tweaking
Depends on grammar improvements
Some advanced bits depend on PGE improvements
grammar improvements
2h
advanced bits [depends on pge improvements in A]
2h
F Allow Perl 6 precompiled sources - write libraries in Perl 6 (85% done)
Depends on 'is export' (80% done)
Depends on 'is also' (100% done for what we need here)
Depends on inline PIR (30% done)
Depends on build system refactor
pm estimate 3h
G modules (overall 70% done)
subtask: better handling of namespaces (60% done)
depends on a refactoring of namespaces in p6object (done)
pm estimate: 4h
H lazy lists
we've decided to wait on this because lazy list specs are in flux
jw estimate: 8h
I gather and take (done in Rakudo)
depends on resumable exceptions from pir
(mostly done -- some improvements needed)
J I/O
* Depends on an IO spec
* Depends on lazy lists
* Depends on IO updates in Parrot
Small matter of writing wrapper methods to implement spec.
K junction auto-threading (10% complete)
writing dispatch operators
jw estimate: 8h
auto-threading
jw estimate: 24h
a simple version of autothreading junction operators exists
the remainder will hopefully be a grant for jw
L hyper, reduction and cross meta-operators
depends on parser improvements in A
pm estimate: 6h for hyper
1h for reduction
4h for cross
M slices
* tests need writing
pm estimate:
5h study S09
12h implement (VERY rough)
N slice context
pm estimate:
32h implement (VERY rough)
O captures
Pm needs to send mail to p6l. - current tests don't seem to match
Pm's understanding of the spec
pm estimate:
3h study spec
3h implement
P multi-argument return - return into named arguments [depends on captures]
Waiting for updates to Parrot calling conventions
PCT side
pm estimate: 8h
Rakudo side
pm estimate: 4h
Q multi sub & multi-method dispatch (50% done)
JW implementing
Depends on parrot implementation of MMD (implemented)
Depends on P6 Object update [Depends on G]
JW estimate: 16h
R currying
PM estimate: 8h
S operator overloading
Depends on the parser [Depends on A]
will likely implement a stub version in meantime
PM Estimate: (2h stub, 4h for complete version when A complete)
T heredocs including pod heredocs
Depends on the parser [Depends on A]
PM Estimate: 2h
U macros
Depends on the parser [Depends on A]
PM Estimate: 6h
V module versioning
(estimate for start: christmas)
W other S09 features (typed arrays, sized types)
(estimate for start: christmas)