This release is a pre-release and may not be stable for production use.
xqvm_py
Status -- transitional.
xqvm_pyis the executable conformance oracle for the XQuad toolchain: every vector underconformance/must produce identical observable state on both this Python reference and the Rustxqvmproduction runtime. The arrangement is explicitly transitional. Once the Rust runtime is fully battle-tested,xqvm_pymay be dropped entirely (with conformance vectors graduating to "Rust must produce exactly these outputs" reference data) or demoted to a prototyping sandbox for trying out new opcodes / VM features in Python before they earn a spec slot. Do not build infrastructure that hard-depends onxqvm_py's existence.
Python reference implementation of the X-Quadratic Virtual Machine.
See spec/xqvm/SPEC.md for the authoritative
technical specification.
Scope
- Pure-Python executor, state model, opcodes, xqmx (sparse quadratic matrix), vector, and tracer.
- No assembler or disassembler: the Rust
xqasmcrate is the only implementation, exposed to Python viaxqffi.asm(pyo3). Tests and the CLI shim callxqvm_py.program_from_xqasmto turn.xqasmtext into an executableProgram.
Layout
xqvm_py/ <-- this directory IS the package (flat layout)
__init__.py re-exports the public surface (Executor, Program, ...)
__main__.py entry point for `python -m xqvm_py`
executor.py fetch-decode-execute loop
state.py stack, registers, loop control, jump table
opcodes.py Opcode enum + operand metadata
program.py Program dataclass + program_from_xqasm()
xqmx.py sparse quadratic matrix (model + sample modes)
vector.py typed vec<int> / vec<xqmx>
errors.py typed runtime errors
tracer.py step-by-step execution tracer
cli/ python -m xqvm_py run ...
tests/ pytest suite (wheel-excluded)
Quick start
From the xquad workspace root:
uv sync # installs xqvm_py editable + xqffi via maturin
uv run pytest xqvm_py/tests # run the full test suite
echo "PUSH 5
PUSH 3
ADD
HALT" > /tmp/prog.xqasm
uv run python -m xqvm_py run /tmp/prog.xqasm # CLI shim
Programmatic use:
from xqvm_py import Executor, program_from_xqasm
prog = program_from_xqasm("PUSH 10\nPUSH 5\nADD\nSTOW r0\nHALT\n")
executor = Executor()
executor.execute(prog)
print(executor.state.get_register(0)) # 15
Conformance
Behavioural parity with the Rust xqvm crate is enforced by the
xquad-conformance Rust test harness at
conformance/. New VM semantics require a new
vector. Divergence between implementations fails CI with no "drift
tracking" middle ground.
Release files for xqvm-py 0.4.0rc2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| xqvm_py-0.4.0rc2.tar.gz | 91.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| xqvm_py-0.4.0rc2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 149.0 kB
Release files / xqvm_py-0.4.0rc2.tar.gz
| Download URL | xqvm_py-0.4.0rc2.tar.gz |
|---|---|
| Size | 91.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
64ab040b35436ed45f1c797a95a5d3b1194c128d387ad2be8ab4fa350b756e80
|
|
BLAKE2b-256 checksum How to use checksums |
c58bb05c8f5468bf522476e887f02017e66d0387df8ba97b3c054636a10625c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|
Release files / xqvm_py-0.4.0rc2-py3-none-any.whl
| Download URL | xqvm_py-0.4.0rc2-py3-none-any.whl |
|---|---|
| Size | 57.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
727f4cbba387057dc183c0f9e35dac8ebb40f651100b38f57343234709f4a425
|
|
BLAKE2b-256 checksum How to use checksums |
1719ec107d306606c7ffedf7ec521c1193737a0d2a4e8fba4a9ba1eec5da04b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|