pd-vm-run

Download pd-vm-run from RustScript releases.

Run an RSS program

Use the released binary as the entrypoint:

pd-vm-run examples/example.rss

Set a fuel budget or script call-depth limit when the program needs explicit runtime bounds:

pd-vm-run --fuel 100000 --max-call-depth 256 examples/example.rss

Compatibility frontends such as JavaScript and Lua are supplied by source-plugin crates. The standalone RustScript binary loads .rss; embedding applications use CompileSourceFileOptions::with_source_plugin(...) for plugin-backed source files.

REPL

Running the binary without arguments opens the RustScript REPL. The explicit forms are equivalent:

pd-vm-run repl
pd-vm-run --repl

The REPL keeps history, supports multiline input, and recognizes .help, .quit, and .cancel.

Format source

Format a source file in place:

pd-vm-run fmt examples/example.rss

Check formatting without changing the file:

pd-vm-run fmt --check examples/example.rss

Emit and inspect VMBC

Emit VMBC wire-format bytecode without running it:

pd-vm-run --emit-vmbc out/example.vmbc examples/example.rss

Disassemble VMBC:

pd-vm-run --disasm-vmbc out/example.vmbc

Include embedded source when the artifact contains it:

pd-vm-run --disasm-vmbc out/example.vmbc --show-source

See Bytecode for the Program, opcode, assembler, and VMBC layout.

Record and replay

Record execution to a .pdr file:

pd-vm-run --record out/example.pdr examples/example.rss

Open the recording in replay mode:

pd-vm-run --view-record out/example.pdr

Replay supports breakpoints, stepping, stack and local inspection, instruction-pointer lookup, and function listing. See Debugger for commands and TCP debugging.

Native execution flags

Use AOT execution for the current source, save an artifact, or load one:

pd-vm-run --aot examples/example.rss
pd-vm-run --aot --aot-save out/example.pat examples/example.rss
pd-vm-run --aot-load out/example.pat

Inspect trace-JIT activity:

pd-vm-run --jit-hot-loop 2 --jit-dump examples/example.rss

See JIT and AOT for backend behavior, artifacts, diagnostics, and current NYI coverage.

Cooperative execution flags

--fuel <n> sets the initial fuel budget. --epoch-deadline <n> arms epoch interruption, and --epoch-check-interval <n> configures its checkpoint cadence. Fuel and epoch interruption are mutually exclusive.

See Cooperative Scheduling for resume behavior and the Rust APIs.

Help and version

pd-vm-run --help
pd-vm-run --version

Release binaries report tag and build metadata. CI publishes platform-specific pd-vm-run assets for tagged releases.