Skip to content

Commit ef4ed30

Browse files
committed
Start a list of tasks and design issues related to QAST migration.
1 parent d965a53 commit ef4ed30

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

docs/QASTMAP

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# QAST Roadmap
2+
3+
This is an overall list of things that need doing and problems that need
4+
solving on the way to having a QAST-based Rakudo and NQP.
5+
6+
## QAST Issues
7+
8+
### Fix NQP regressions
9+
The toqast branch, even though QAST is only being used for regexes still,
10+
has some regressions over master. Fix them.
11+
12+
### Finish lexical lookup handling
13+
Always-by-name lookups (for things like $_ that are lazy in Rakudo). Also
14+
handle looking at symbol table to find that things are lexical.
15+
16+
### Register Type Coercions
17+
Get the various coercions in place, with the appropriate ones as HLL-level
18+
configurable operations.
19+
20+
### Exceptions
21+
Design whatever mechanism is going to replace the PAST::Control and related
22+
machinery. Implement it.
23+
24+
### Serialization Context
25+
Add some QAST handling for serialization contexts, so as to replace laodinit.
26+
27+
### :op('for')
28+
Implement it
29+
30+
### loop handling of various phasers
31+
Need to figure out the REDO bits, etc. Try and make it so we've a way to avoid
32+
the PIR code in MapIter and so getting while loop phasers in place in Rakudo is
33+
easy also.
34+
35+
## Rakudo
36+
37+
Overall plan: create a branch, start changing stuff to QAST, see what happens.
38+
List any design level issues here.
39+
40+
## NQP
41+
42+
NQP is currently somewhat half-Parroty, half-6modely. This causes various issues
43+
that will need to be addresses for portability reasons, and moving NQP to QAST is
44+
a good chance to do so.
45+
46+
### Integer/Float/String and the ops
47+
Need to work out an approach to handling these.
48+
49+
### Native types
50+
NQP should get natively typed lexicals and arguments.

0 commit comments

Comments
 (0)