Compiler & tooling
Fast compilation, an interactive native JIT, and native release builds.
The intended edit-and-run workflow
Start one persistent Sn JIT process from your editor. Save a source change, compile the changed code, and publish compatible replacements into the running program. Keep the application's state while changing its behavior.
This is native code generation through LLVM, with the same language semantics as ahead-of-time compilation. It is not a separate scripting language embedded in an engine.
What happens on save
The compiler owns compilation state, change detection, JIT publication, and execution status. The editor starts and stops the session and displays diagnostics. Saving is the default compilation trigger; ordinary language-server analysis does not execute code just because you open or edit a file.
Main runs once per process. Saving a compatible edit changes code without invoking Main again. If the application finishes, the session waits for an explicit restart. An incompatible change can require a process restart; that starts Main in a new process and resets runtime state.
Current JIT implementation
The backend contains transactional native JIT publication and compatible body replacement for registered function identities. The complete live-file host, automatic new-code registration, and supervised incompatible-change restart remain engineering work. A one-shot snc run is not that persistent workflow.
Compilation targets
The primary throughput target is 300,000 generated source lines to a fresh O0 executable in under two seconds at p95 across 20 independent runs. The timed work includes source loading, frontend work, code generation, object emission, and linking; it is not a frontend-only measurement.
The separate hot-edit target is under 100 ms from receiving a changed source revision to diagnostics and compatible requested JIT publication. These targets are not claims that the current compiler has met them.
Native distribution
Compile ahead of time for a native executable. The shared frontend and typed SnIR keep language semantics consistent between native builds and JIT development. LLVM supplies code generation and optimization.
Editor support
snls is the compiler-backed language server. A repository-owned VS Code integration provides the editor connection. The complete interactive workflow is part of the intended 1.0 experience, with remaining implementation tracked separately from existing editor analysis.
Official releases and feedback
Compiler releases will be selected by Git tag, validated, and published as versioned toolchain downloads. Public GitHub Issues will handle bugs and feedback. The separate public distribution repository, RichmarIII/sn-releases on GitHub, hosts the official Releases page and public Issues. No compiler binaries have been published yet.