This repository hosts three subprojects that explore a new design for a Nim 3
compiler. Each subproject lives in its own directory and is managed via
git subtree, so keep changes isolated to the relevant folder when you commit.
nimony/: NJVL-based compiler implementation and tooling (builds the experimentalnimonycompiler).nifspec/: NIF bytecode specification documents.nativenif/: Native code backends and NIF assembler utilities.
A Nim 2.2.6 toolchain is available in this environment. Use it as the baseline for building and testing until the Nim 3 toolchain stabilizes.
- Change into the
nimonydirectory. - Build the toolchain with Nim 2.2.6:
This produces the
nim c -r src/hastur build all
bin/nimonycompiler and helper tools. Avoid committing built executables (e.g., thesrc/hasturbinary); rebuild them locally when needed. - Run the sample hello program with the freshly built compiler:
./bin/nimony c -r hello.nim
- When touching multiple subprojects, prefer separate commits per subtree to keep histories clean.
- Consult the documentation in each subdirectory (
doc/orREADME.md) for project-specific details and design notes.