Nim VM
Run a Nim program immediately and inspect its instructions, frames, and values in place. Debuggability is part of the execution model, not an adapter added later.
gudgeon run app.nifGUDGEON is a virtual machine and execution platform for the Nim programming language. It runs lowered Nim IR immediately, exposes source-level debugging and instrumentation, and provides a path to native code without changing the program model.
Nimony handles parsing, type checking, lowering, and IR generation. GUDGEON takes the next step: it executes Nim programs, pauses them, measures them, and hands them to another execution engine.
GUDGEON is first and foremost a VM for Nim. Its initial input is NIF, while its execution boundary remains a typed, lowered program IR so the runtime can evolve beyond a single frontend.
NIF / Final IR is not trapped as VM-only bytecode. It is the shared boundary for interpretation and compilation, preserving Nim source locations, types, and frame information across both execution modes.
Run a Nim program immediately and inspect its instructions, frames, and values in place. Debuggability is part of the execution model, not an adapter added later.
gudgeon run app.nifCompile the same Nim IR ahead of time. GUDGEON can target C/NIFC, LLVM, or direct code generation without locking the project to one performance backend.
gudgeon build app.nifInstead of pretty-printing pointers from generated C, the VM returns its own frames and Nim type metadata to the debugger. A paused program stays at the level of abstraction its author wrote.
The goal is not imitation. It is to adopt the separations that let a language runtime remain useful over time.
Design principle: Do not choose the native backend first. Start with the VM's Value, Frame, Heap, Type Metadata, and Source Location as a contract shared by every execution engine.
FFI is more than calling a C function. GUDGEON defines downcalls, callbacks into the Nim VM, garbage collection, ownership, exceptions, and type conversion as boundaries the runtime can understand.
GUDGEON is more than another way to run Nim. It reshapes the compiler–runtime boundary so execution, debugging, profiling, and native compilation share the same model.
Load lowered NIF / Final IR and normalize it into a stable internal Execution IR.
Treat breakpoints, stepping, stacks, locals, and evaluation as first-class VM APIs.
Share Nim types, source maps, and FFI metadata between the VM executor and native backend.
Expose observation points for debugging, profiling, and tracing across execution engines.
GUDGEON — Gudgeon Unified Debuggable Guest Execution Orchestrator for NIF
Back to the top ↑