Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 141 lines (86 sloc) 4.616 kB
311ba52 @sorear Reorganize and combine TODO lists
authored
1 Here are a bunch of project ideas, both for me and for anyone else who
2 wants to help out. Starred items are ones I've already spent time
f47e045 @sorear Add priority stuff to TODO
authored
3 thinking about; check with me if you want to build on that. Plussed
4 items are considered a priority for v3.
311ba52 @sorear Reorganize and combine TODO lists
authored
5
6 EASY
7
8 Add your favorite missing function to the setting, with tests.
9 In particular, I could use: sprintf, dir, write, close, split, ...
10
11 Add $*ARGFILES, %*ENV, your favorite other *-var.
12
13 Add the 'loop' statement. Should be very straightforward.
14
7e0a0a2 @sorear Add a couple more TODO items
authored
15 Give labels methods to invoke control operations.
16
17 Implement Sub.leave and CallFrame.leave
18
311ba52 @sorear Reorganize and combine TODO lists
authored
19 Add decimal literals. (Don't try to implement your own floating point
20 radix converter; use +$str)
21
22 Add more benchmarks to perf/.
23
7e0a0a2 @sorear Add a couple more TODO items
authored
24 Character class expressions like [[a .. A] & [\W]]
25
26 ::> cut syntax.
27
311ba52 @sorear Reorganize and combine TODO lists
authored
28 Binding to values like @PROCESS::ARGS doesn't contextualize correctly. Fix.
29
7e0a0a2 @sorear Add a couple more TODO items
authored
30 Fudge and run your favorite spectest file.
31
3e24c39 @sorear Add new test files and TODOs for today
authored
32 Stuff spectests are blocking on: "is readonly", "[+]", "++ on Bool",
33 "&ucfirst", "Block", "&prefix:<\>", "*.notdef", "Bool.key", "&hash",
34 ".join without argument", "?| et al failing to take Mu and return Bool",
35 "writable $_", "closure for",
36
37 At least parsing Int et al on my-decls would help a lot
38
311ba52 @sorear Reorganize and combine TODO lists
authored
39 MEDIUM
40
7e0a0a2 @sorear Add a couple more TODO items
authored
41 Implement your favorite ?-vars.
42
43 Finish the set of Num operators, includig number-theoretic and
44 transcedental functions.
45
46 *Implement &?BLOCK and &?ROUTINE.
47
48 Break down Sub into a hierarchy Code->Block->Routine->Sub->Method.
49
311ba52 @sorear Reorganize and combine TODO lists
authored
50 Implement buffer types and binary I/O.
51
52 Implement a general socket API.
53
54 Design and implement a generic system for multiplexed and non-blocking I/O.
55
56 *CATCH and CONTROL blocks.
57
f47e045 @sorear Add priority stuff to TODO
authored
58 + Jump table optimization for when chains.
311ba52 @sorear Reorganize and combine TODO lists
authored
59
40c432a @sorear &return and &take take multiple arguments
authored
60 + Find out what readonly subs are supposed to do with lists, etc and implement
311ba52 @sorear Reorganize and combine TODO lists
authored
61 that. Also add return-rw, take-rw, and the is rw trait for subs and attrs.
62
63 *Implement BUILD submethod calling.
64
65 Methods with variable names need to call the correct action method. (See
66 the horrible hack in NieczaActions.FALLBACK).
67
68 Audit accelerated context routines for correct undefined value and odd
69 representation handling. +Num shouldn't crash, etc.
70
f47e045 @sorear Add priority stuff to TODO
authored
71 +*A general procedure for communicating data up and down the meta-spiral.
72 Use this to make a very simple eval knockoff.
73
7e0a0a2 @sorear Add a couple more TODO items
authored
74 + Run MAIN without a temporary file (needed for eval knockoff).
75
311ba52 @sorear Reorganize and combine TODO lists
authored
76 HARD
77
78 Design and implement some sort of NFG thing that allows use codes, graphs,
79 etc and handles canonical equivalence in regexes.
80
7e0a0a2 @sorear Add a couple more TODO items
authored
81 Determine the best way to map Perl6 process-think onto Windows/.NET
82 process think. Then implement &run, &runinstead, and &rungather.
83
f47e045 @sorear Add priority stuff to TODO
authored
84 + Replace nam with something that doesn't use as much memory. (Talk to
311ba52 @sorear Reorganize and combine TODO lists
authored
85 pmurias to get his experiences.)
86
87 *Implement junctions. You'll need to add some slightly tricky code
88 on the slow path of nominal type checks. You will also need to fix
89 the optimized builtins to use nominal type checking. Bonus points
90 if the optimizer can turn if $x == any(1,3,5) into a loop.
91
92 *Implement multiple dispatch.
93
404eec8 @sorear Implement $.foo, @.foo contextness
authored
94 *Create multiple numeric types with sensible overloads between them. Add
95 more numeric operators.
96
311ba52 @sorear Reorganize and combine TODO lists
authored
97 Niecza is probably the ideal platform for prototyping a concurrency
98 system which will whirlpool back into the synopses.
99
100 *Parallel hyperops! Read the Cilk papers, they seem to have a data
101 parallelism model most similar to what Perl 6 needs.
102
103 Understand the Str/Stringy distinctions, and improve stringification
104 and numification handling for Any. Develop a warning system.
105
106 *Explicitly imprecise error reporting. In many circumstances niecza
107 doesn't actually have an exact line number; it should be able to
108 report a range.
109
110 Design something to take the place of STD's :$*endsym, probably as
111 a trait of some kind.
112
113 Design something to deal with the last remnants of cursor mutability
114 in STD.pm6.
115
f47e045 @sorear Add priority stuff to TODO
authored
116 +*"Immediate mode metamodel" - Metamodel::StaticSub object should be
311ba52 @sorear Reorganize and combine TODO lists
authored
117 constructed by the closing brace at the latest. This will require
118 a lot of STD hacking and is required for BEGIN to work.
119
f47e045 @sorear Add priority stuff to TODO
authored
120 Study Nil and find the correct way to integrate it into Niecza.
121
7e0a0a2 @sorear Add a couple more TODO items
authored
122 Add a JVM backend.
123
124 Add a Parrot backend.
125
311ba52 @sorear Reorganize and combine TODO lists
authored
126 NASTY
127
7e0a0a2 @sorear Add a couple more TODO items
authored
128 A multicore job scheduler would be cool. You'll need to talk with
311ba52 @sorear Reorganize and combine TODO lists
authored
129 TimToady on dependency extraction; there are some subtle points with
130 modules that export slangs.
131
132 *Figure out how eval can possibly work. Do it.
133
134 *Figure out how BEGIN can possibly work. Do it.
7e0a0a2 @sorear Add a couple more TODO items
authored
135
136 Native type support.
137
138 SIMD hyperoperators.
139
140 Export Perl 6 code into a CLR .dll
Something went wrong with that request. Please try again.