I will be updating this issue as we make progress. Please feel free to take down good first issues here and in the issue tracker.
Interpreter Tasklist
This is mostly a replica of the tasklist in Discord. We are looking forward to building a basic bytecode interpreter to get integration testing going, whose IR is isomorphic to Cranelift IR for easy JITting. The design sketch is for it to be a cooperative I/O machine, probably built with smol; if we want to better support AWK's long-forgotten number-crunching intent, we could easily extend this to parallel computations.
- Array lookup lowering, for-each loops, etc.
- Arrays and deletes.
- Internal/built-in variables in symbol table, maybe ft. lexer & parser for missing ones.
- Record splitting (
$expr expressions).
- general I/O w/ async (
smol runtime).
- Stitching together whole-source lowering.
- Function lowering.
- Function execution and returning.
- Library loading (via
libloading) and C function calls.
- Switch/case lowering.
- Short-circuiting &&/||.
- Regex matching with automaton memoization.
- Etc.
I will be updating this issue as we make progress. Please feel free to take down good first issues here and in the issue tracker.
Interpreter Tasklist
This is mostly a replica of the tasklist in Discord. We are looking forward to building a basic bytecode interpreter to get integration testing going, whose IR is isomorphic to Cranelift IR for easy JITting. The design sketch is for it to be a cooperative I/O machine, probably built with
smol; if we want to better support AWK's long-forgotten number-crunching intent, we could easily extend this to parallel computations.$exprexpressions).smolruntime).libloading) and C function calls.