Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 134 lines (81 sloc) 4.302 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
311ba52 @sorear Reorganize and combine TODO lists
authored
32 MEDIUM
33
7e0a0a2 @sorear Add a couple more TODO items
authored
34 Implement your favorite ?-vars.
35
36 Finish the set of Num operators, includig number-theoretic and
37 transcedental functions.
38
39 *Implement &?BLOCK and &?ROUTINE.
40
41 Break down Sub into a hierarchy Code->Block->Routine->Sub->Method.
42
311ba52 @sorear Reorganize and combine TODO lists
authored
43 Implement buffer types and binary I/O.
44
45 Implement a general socket API.
46
47 Design and implement a generic system for multiplexed and non-blocking I/O.
48
49 *CATCH and CONTROL blocks.
50
f47e045 @sorear Add priority stuff to TODO
authored
51 + Jump table optimization for when chains.
311ba52 @sorear Reorganize and combine TODO lists
authored
52
40c432a @sorear &return and &take take multiple arguments
authored
53 + Find out what readonly subs are supposed to do with lists, etc and implement
311ba52 @sorear Reorganize and combine TODO lists
authored
54 that. Also add return-rw, take-rw, and the is rw trait for subs and attrs.
55
56 *Implement BUILD submethod calling.
57
58 Methods with variable names need to call the correct action method. (See
59 the horrible hack in NieczaActions.FALLBACK).
60
61 Audit accelerated context routines for correct undefined value and odd
62 representation handling. +Num shouldn't crash, etc.
63
f47e045 @sorear Add priority stuff to TODO
authored
64 +*A general procedure for communicating data up and down the meta-spiral.
65 Use this to make a very simple eval knockoff.
66
7e0a0a2 @sorear Add a couple more TODO items
authored
67 + Run MAIN without a temporary file (needed for eval knockoff).
68
311ba52 @sorear Reorganize and combine TODO lists
authored
69 HARD
70
71 Design and implement some sort of NFG thing that allows use codes, graphs,
72 etc and handles canonical equivalence in regexes.
73
7e0a0a2 @sorear Add a couple more TODO items
authored
74 Determine the best way to map Perl6 process-think onto Windows/.NET
75 process think. Then implement &run, &runinstead, and &rungather.
76
f47e045 @sorear Add priority stuff to TODO
authored
77 + Replace nam with something that doesn't use as much memory. (Talk to
311ba52 @sorear Reorganize and combine TODO lists
authored
78 pmurias to get his experiences.)
79
80 *Implement junctions. You'll need to add some slightly tricky code
81 on the slow path of nominal type checks. You will also need to fix
82 the optimized builtins to use nominal type checking. Bonus points
83 if the optimizer can turn if $x == any(1,3,5) into a loop.
84
85 *Implement multiple dispatch.
86
404eec8 @sorear Implement $.foo, @.foo contextness
authored
87 *Create multiple numeric types with sensible overloads between them. Add
88 more numeric operators.
89
311ba52 @sorear Reorganize and combine TODO lists
authored
90 Niecza is probably the ideal platform for prototyping a concurrency
91 system which will whirlpool back into the synopses.
92
93 *Parallel hyperops! Read the Cilk papers, they seem to have a data
94 parallelism model most similar to what Perl 6 needs.
95
96 Understand the Str/Stringy distinctions, and improve stringification
97 and numification handling for Any. Develop a warning system.
98
99 *Explicitly imprecise error reporting. In many circumstances niecza
100 doesn't actually have an exact line number; it should be able to
101 report a range.
102
103 Design something to take the place of STD's :$*endsym, probably as
104 a trait of some kind.
105
106 Design something to deal with the last remnants of cursor mutability
107 in STD.pm6.
108
f47e045 @sorear Add priority stuff to TODO
authored
109 +*"Immediate mode metamodel" - Metamodel::StaticSub object should be
311ba52 @sorear Reorganize and combine TODO lists
authored
110 constructed by the closing brace at the latest. This will require
111 a lot of STD hacking and is required for BEGIN to work.
112
f47e045 @sorear Add priority stuff to TODO
authored
113 Study Nil and find the correct way to integrate it into Niecza.
114
7e0a0a2 @sorear Add a couple more TODO items
authored
115 Add a JVM backend.
116
117 Add a Parrot backend.
118
311ba52 @sorear Reorganize and combine TODO lists
authored
119 NASTY
120
7e0a0a2 @sorear Add a couple more TODO items
authored
121 A multicore job scheduler would be cool. You'll need to talk with
311ba52 @sorear Reorganize and combine TODO lists
authored
122 TimToady on dependency extraction; there are some subtle points with
123 modules that export slangs.
124
125 *Figure out how eval can possibly work. Do it.
126
127 *Figure out how BEGIN can possibly work. Do it.
7e0a0a2 @sorear Add a couple more TODO items
authored
128
129 Native type support.
130
131 SIMD hyperoperators.
132
133 Export Perl 6 code into a CLR .dll
Something went wrong with that request. Please try again.