-
Notifications
You must be signed in to change notification settings - Fork 131
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Start a list of tasks and design issues related to QAST migration.
- Loading branch information
Showing
1 changed file
with
50 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
# QAST Roadmap | ||
|
||
This is an overall list of things that need doing and problems that need | ||
solving on the way to having a QAST-based Rakudo and NQP. | ||
|
||
## QAST Issues | ||
|
||
### Fix NQP regressions | ||
The toqast branch, even though QAST is only being used for regexes still, | ||
has some regressions over master. Fix them. | ||
|
||
### Finish lexical lookup handling | ||
Always-by-name lookups (for things like $_ that are lazy in Rakudo). Also | ||
handle looking at symbol table to find that things are lexical. | ||
|
||
### Register Type Coercions | ||
Get the various coercions in place, with the appropriate ones as HLL-level | ||
configurable operations. | ||
|
||
### Exceptions | ||
Design whatever mechanism is going to replace the PAST::Control and related | ||
machinery. Implement it. | ||
|
||
### Serialization Context | ||
Add some QAST handling for serialization contexts, so as to replace laodinit. | ||
|
||
### :op('for') | ||
Implement it | ||
|
||
### loop handling of various phasers | ||
Need to figure out the REDO bits, etc. Try and make it so we've a way to avoid | ||
the PIR code in MapIter and so getting while loop phasers in place in Rakudo is | ||
easy also. | ||
|
||
## Rakudo | ||
|
||
Overall plan: create a branch, start changing stuff to QAST, see what happens. | ||
List any design level issues here. | ||
|
||
## NQP | ||
|
||
NQP is currently somewhat half-Parroty, half-6modely. This causes various issues | ||
that will need to be addresses for portability reasons, and moving NQP to QAST is | ||
a good chance to do so. | ||
|
||
### Integer/Float/String and the ops | ||
Need to work out an approach to handling these. | ||
|
||
### Native types | ||
NQP should get natively typed lexicals and arguments. |