Planned work
Forward-looking roadmaps: what is intended, why, the open problems, and the
design of features not yet built. These are distinct from the design docs one
level up (../), which describe the system as it is — when a feature here
ships, its durable design moves up to the matching design doc and the entry here
shrinks to whatever remains open (and is deleted once nothing remains open).
| Roadmap | Scope | Design doc |
|---|---|---|
| RELEASE.md | V1 release-control checklist: public surface, hidden/out surface, hard validation gates, release blockers, and final signoff. | — |
| OPTIMIZER.md | Completing the O2 SSA mid-end, live-range splitting/coalescing, the residual O1 generated-code-quality gaps that need SSA, -O0 quality, machine register-constraint improvements, and broader inlining. Carries the known non-deficiencies (what not to chase). | ../OPT.md |
| LINKER.md | Incremental linking (JIT append + the unbuilt file-based "m2" redesign) and system-linker compatibility (ordered DSO/--as-needed, ELF TLS planning + TLSDESC, shared/relocatable links, sysroot interop, toolchain validation). |
../LINK.md, ../OBJ.md |
| DEBUG.md | The interactive JIT debugger + DWARF: x64/rv64 session parity, displaced-step instruction coverage, unit/smoke tests, REPL polish, Toy/C REPL frontends, and DWARF producer/consumer gaps (loclists, CFI register recovery, composite locations). | ../DBG.md, ../DWARF.md |
| PROF.md | The not-yet-built host-native sampling profiler (kit prof): SIGPROF frame-pointer walk reusing the debugger's signal infrastructure, the KitProfBuf/KitProfWriter API, and folded/flat output. Complementary to (not rebased on) the emulator callgrind in INSTRUMENT.md. |
../DBG.md |
| INSTRUMENT.md | Debugging/profiling tools in the Valgrind/callgrind/asan/ubsan tradition: the emulator as a dynamic-binary-instrumentation substrate (the EmuToolHooks ABI, shadow planes, the memory seam, a guest debugger), plus the cross-frontend compiler-sanitizer story. |
../EMU.md |
| JIT.md | Function-level hot reload, Go-runtime-style managed codegen support, and remaining JIT host-portability work. | ../JIT.md |
| ARM32.md | 32-bit ARM (arm-none-eabi, ARMv7-M/ARMv7E-M Thumb-2, Cortex-M3/M4/M7) freestanding backend: Phase 1 (walking skeleton) is landed; Phase 2 tracks the remaining ops, the -O1 known-frame path, 64-bit, atomics, TLS, and the qemu-system-arm cross-test lane. |
../ARCH.md, ../PORT.md |
| MCU.md | Microcontroller development workflow for STM32 Cortex-M (ARMv7-M/E-M) and Espressif RISC-V (ESP32-C/H/P): the last-mile gaps over the working backends — objcopy ihex/srec, reusable startup/vector-table + starter linker script, the rv32 soft-float-default footgun, SDK interop, and on-target debug. Assessment stage; references ARM32.md for ARM-core follow-ons. ARMv6-M/Cortex-M0 and Xtensa are out of scope. |
ARM32.md, ../RUNTIME.md, LINKER.md |
| SYSROOTS.md | Cross-compile sysroot packaging: minimal per-target stubs/headers/CRT objects distributed via .kpkg for the support set. Design complete, implementation not yet started. |
— |
| KITC.md | The planned kitc utility library: source distribution, on-demand target archive builds, driver integration, and JIT/script linking. |
../RUNTIME.md, ../LINK.md, ../JIT.md |
| TODO.md | Open deferred fixes and code smells, plus terse backlog folded from retired plan docs (arch-backend parity, Wasm object backend, Windows x64 self-host, bootstrap breadth). Completed items are removed instead of checked off. A current backlog, not a roadmap. | — |
Speculative, not-committed designs (no code, parked) live in ../ideas/
— currently the RQL query language and the RSN scripting language.
Plan docs that shipped and were retired into the design set: the -O1 quality
worklist and frontend/CG redesigns (→ ../OPT.md,
../CODEGEN.md, ../FRONTENDS.md); build-exe/
build-lib/build-obj (→ ../DRIVER.md); the freestanding kernel/
image pipeline (→ ../KERNEL.md); the bootstrap fixed point
(→ ../BUILD.md); aarch64 Windows self-host (→ ../WINDOWS.md);
the portability test surface (→ ../PORT.md); the compile-speed/
code-size benchmarking methodology (→ ../BENCHMARKING.md);
ELF shared library production — DSO output mode, dynamic tags, exports/imports,
PIC codegen, and driver enablement (→ ../LINK.md, ../OBJ.md);
and the content-addressed build coordinator (→
../BUILD_COORDINATOR.md).