Development roadmap
The priority is to clarify the specification and strengthen safety while keeping the current working paths usable.
- Build on Result matching to settle nullable matching, checked/wrapping arithmetic, string length, source spans, variable shadowing, and borrow origins.
- Strengthen partial-move, branch, loop, and escape analysis in the High checker, reducing reliance on the Rust backend.
- Build on relative-file modules and aliases and typed Rust integration to add unquoted standard modules, general generics, traits, type annotations for passing and returning async functions, and a standard Map API.
- Lower arbitrary-state actor declarations, supervisor trees, and bounded queue declarations into the current runtime.
- Compare request arenas and borrowed classes, encoding during database stepping, buffer reuse, and streaming JSON.
- Define typed SQL parameters, rows, and transactions, then add PostgreSQL using an existing Rust driver. Verify cancellation and pool shutdown against a real database.
- Define Low layout, pointers, arenas, unsafe boundaries, and a C ABI; add sanitizers and coverage-guided fuzzing.
- Introduce a backend independent of Rust code generation. Use measurements to decide whether to replace the scheduler as well.
On this page
Self-hosting
| Stage | Work | Status |
|---|---|---|
| 0 | Low compiler in Rust | Small language subset implemented |
| 1 | High compiler in Rust | Translation to Low implemented |
| 2 | Rewrite the Low compiler in Low | Not started; needs String/Map/module/allocator API extensions |
| 3 | The Low compiler compiles itself | Not started; needs bootstrap comparison and determinism tests |
Practical use requires several stages of development. Passing prototype tests does not establish a finished production language/runtime or safety of every unsafe/FFI path. Accurate effort estimates depend on the specification and development team.
See the working examples and library design proposal for reusable foundations and Rust assets. The proposal develops dependency settings, namespaces, resources, and database contracts while retaining existing code.