kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

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).