Read between the lines.
They are all we have.
The actual language documentation, straight from the repository.
Read the research paper ↗Write your first program in Neovim Studio ↗: exact letters, controls and expected results. Or load an example in the keyboard ↗.
Write and debug your first emd program in Neovim Studio: exact letters to type, debugger controls and results to expect.
The emd source format: eight Unicode dashes, instruction pairs, line limits, decoding errors and canonical layout. No substitutions.
The 32 emd instructions: Unicode encodings, stack operations, arithmetic, memory, control flow and byte input/output.
Compile readable emd assembly into Unicode dashes: constants, labels, integer synthesis and jump layout, with examples and diagnostics.
How emd executes: stack and memory, program counters, arithmetic, input/output, faults and the limits of the Rust virtual machine.
Explore the emd tools: static analysis, backward debugging, native C compilation, Unicode diagnostics, profiling and Neovim Studio.
What is proved and what is tested in emd: Lean and Rocq models, bounded Rust verification, differential tests, mutation testing and limits.
Getting started
With Rust installed, run this from your local checkout of the emd repository:
cargo install --path crates/emd-cliRun an example, inspect its code points, or decode it into readable instructions:
emd run examples/hello.emd
emd inspect examples/hello.emd
emd disasm examples/hello.emdPrefer to write readable source? Compile the assembly first:
emd asm examples/hello.asm > hello.emd
emd run hello.emd