-
Notifications
You must be signed in to change notification settings - Fork 15
/
TODO
36 lines (30 loc) · 1.19 KB
/
TODO
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
New lists: (a little dated, see newlist.pl)
s/Iterator/IterationCursor/
.iterator should return a real List (maybe even a primitive something)
a List itself represents an iteration state
Lists with no iterators are treated as a fast path in a lot of cases
possibly, Lists should be limited to one iterator
$!flat is completely wrong and should die. .flat is just a map-like operator
Niecza-NAM-Lorito:
NAM is a Lorito prototype! See #parrot logs
To make it real:
* 3-operand code
* Deregisterization pass infers use of CLR stack when registers have nested live ranges and are used exactly once
* Types and ops can be provided by a library binding spec; var, fetch et al come from niecza-perl6 library binding. As does the entire object model and subcall - bare NAM-Lorito probably won't have sub support.
* NAM has a wire format resembling LASM
* NAM needs to have real continuations
needlib 'foo'
const int 'a'
var str 'b'
code 'main' {
op 1, 2, 3
}
blob {
'a' = 1
'b' = 'Hello, world'
}
Other stuff
* Write a LHF file
* Write a ROADMAP
* Flesh out documentation a lot
* $*IN.slurp needs to use Console.OpenStdOutput (mike_f++)