Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Roadmap

Where Korrin has been and where it's going. This page tracks milestones at a summary level — for what changed in detail, see the changelog; for why a given decision was made, see design notes.

Korrin is pre-1.0. Milestone order and scope can still change.

Done

Milestone 1 — the language. A tree-walking interpreter: closures, classes with single inheritance, the full value set, a REPL and a file runner.

Milestone 2 — writing real programs. String interpolation, methods on str/list/map, exceptions (try/except/finally/raise), a module system (import), and the first standard library (math, io).

Milestone 3 — a second execution engine. A bytecode compiler and virtual machine beside the interpreter, not replacing it — the interpreter stays on as a permanent differential-testing oracle every program in the test suite is checked against. Roughly 1.7x faster on call-heavy code, 1.5x on local-variable-heavy loops.

Milestone 4 — editor tooling. A real Language Server Protocol implementation (korrin-lsp) and a VS Code extension: live diagnostics, hover, go-to-definition, and running a file from the editor.

Milestone 5 — packaging and a community index. A package is a git repository — korrin pkg add <git-url> --tag v1.0.0 fetches and pins one in a new korrin.lock, and a bare import "name" reaches it exactly the way it already reaches a built-in module, no new syntax. No central registry or hosting of any kind. korrin-packages/ is the community index — a second site, listing packages by pull request, not a submission form.

Next

Milestone 6 — a native-module system. math and io are wired into the loader by hand today; there's no general way to write a Korrin module in Rust. M6 makes that real, so a native module can be built, and — since M5 now exists — distributed like any other package. Everything below this line needs it.

After that

Milestone 7 — GameKorr. A Pygame-style library: windowing, drawing, input, a game loop, built as an ordinary native module on M6. Design work on the same order as a language feature, not a thin wrapper — what a sprite is, how input/timing/collision work, all need real answers.

Milestone 8 — concurrency. The biggest and least-scoped item here on purpose: no decision yet on async vs. threads vs. something else, and none before M5-M7 land. This one touches both execution engines directly, closer in size to Milestone 3 than to a library.

Not planned

Anything not listed above isn't ruled out, just not scoped. If you're building something on Korrin and want to talk about where it's headed, see the repository — issues and discussion are welcome.