Pre-release
This release is a pre-release and may not be stable for production use.
Machine Dialect™ Rust VM
High-performance register-based virtual machine for executing Machine Dialect™ bytecode.
Overview
This is the Phase 0 implementation of the Machine Dialect™ Rust VM, providing:
- 256 general-purpose registers
- Type-safe value system (Empty, Bool, Int, Float, String, Function, URL)
- Register-based instruction set
- MIR support (SSA phi nodes, assertions, scopes)
- Runtime operations (arithmetic, logic, comparisons, strings)
- PyO3 bindings for Python integration
- Reference counting memory management
Building
Prerequisites
- Rust 1.70+
- Python 3.9+
- maturin (install via
uv sync --all-groups)
Build Instructions
From project root:
./build_vm.sh
Or manually:
cd machine_dialect_vm
maturin develop --features pyo3
Architecture
The VM uses a register-based architecture with:
- Register File: 256 registers with type tracking
- Instruction Set: ~40 register-based instructions
- Value System: Tagged union for efficient value representation
- Runtime Operations: Type-safe arithmetic and string operations
- Memory Management: Reference counting for strings and objects
Integration
The VM integrates with the Python frontend via PyO3 bindings, allowing:
- Python compiler generates MIR
- MIR is optimized
- Register-based bytecode is generated
- Rust VM executes bytecode
- Results returned to Python
Performance
Measured performance (via Criterion benchmarks):
- Simple addition: ~1.02 µs per operation
- VM creation: ~3.49 µs
- Target: 5-10x speedup over Python interpreter
Run benchmarks:
cargo bench --bench basic_benchmark
Status
Phase 0 (MVP) implementation 92% complete:
Completed ✅
- Core VM engine with 256 registers
- Full value and type system (including arrays)
- Complete instruction set (38 opcodes)
- All runtime operations (arithmetic, logic, string, array)
- Binary bytecode loader (.mdbc format)
- PyO3 bindings with Python integration
- Python bytecode generator and serializer
- Performance benchmarks
- REPL integration (with fallback)
Remaining Work
- End-to-end execution validation
- Expanded test coverage
- Production hardening
Next Steps
Phase 1 will add:
- Type-specialized instructions
- Advanced memory management
- Performance optimizations
- Collection types (arrays, maps, sets)
Metadata
Release files for machine-dialect-vm 0.1.0a2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| machine_dialect_vm-0.1.0a2.tar.gz | 46.4 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| machine_dialect_vm-0.1.0a2-cp39-abi3-win_amd64.whl | CPython 3.9 | abi3 | Windows x86-64 | Details |
| machine_dialect_vm-0.1.0a2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.9 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| machine_dialect_vm-0.1.0a2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | CPython 3.9 | abi3 | Linux glibc 2.17+ ARM64 | Details |
| machine_dialect_vm-0.1.0a2-cp39-abi3-macosx_11_0_arm64.whl | CPython 3.9 | abi3 | macOS 11.0+ ARM64 | Details |
| machine_dialect_vm-0.1.0a2-cp39-abi3-macosx_10_12_x86_64.whl | CPython 3.9 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size: 1.3 MB
Release files / machine_dialect_vm-0.1.0a2.tar.gz
| Download URL | machine_dialect_vm-0.1.0a2.tar.gz |
|---|---|
| Size | 46.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ce9bf51505a182d68545a4864cf91493b1d79b48db495f7a6135d83a8c56705f
|
|
BLAKE2b-256 checksum How to use checksums |
fde8035b3586f63e6855b23cebbb59ec7e0a57fbeaea5f7915a555901ede83cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / machine_dialect_vm-0.1.0a2-cp39-abi3-win_amd64.whl
| Download URL | machine_dialect_vm-0.1.0a2-cp39-abi3-win_amd64.whl |
|---|---|
| Size | 185.4 kB |
| Tags | CPython 3.9 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
2fa51b452f44ef3f28f004ffca581a48ad10f25fd844a69662dc8ccdf84f0a48
|
|
BLAKE2b-256 checksum How to use checksums |
e0dcc076359f74c3207115671fc5409d70e01f69fd2d2582037456e5969f9387
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / machine_dialect_vm-0.1.0a2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | machine_dialect_vm-0.1.0a2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 273.0 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
17fa57d1c1d10baf5454878ec6bf9a189768a01c17e679f56e23391b0084619a
|
|
BLAKE2b-256 checksum How to use checksums |
66c82c9a61c4fec6f8aec6a29752c6e99b09cccfa71c41d0bba7a11e8bc34a0c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / machine_dialect_vm-0.1.0a2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | machine_dialect_vm-0.1.0a2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 255.1 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
bc6ec8f45ae23a1bc9e1aaf2c5e68d20124670e79651810a0cbe3417e1a29a58
|
|
BLAKE2b-256 checksum How to use checksums |
2b4471e374a9a9a2ba8a68bd83a5931edeafceae1ae6ae9721f0bc0436396b29
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / machine_dialect_vm-0.1.0a2-cp39-abi3-macosx_11_0_arm64.whl
| Download URL | machine_dialect_vm-0.1.0a2-cp39-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 243.2 kB |
| Tags | CPython 3.9 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
e0eed0060c23a47712b84c6e1487833f816203e66a81d22121b457aa93caa589
|
|
BLAKE2b-256 checksum How to use checksums |
cb3e63cfefe26ab3a97ff98edee790ed5d865627dca1ef7d7725f74ff0480806
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / machine_dialect_vm-0.1.0a2-cp39-abi3-macosx_10_12_x86_64.whl
| Download URL | machine_dialect_vm-0.1.0a2-cp39-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 262.3 kB |
| Tags | CPython 3.9 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
c1824458137cd6a493261630f866b72a011130093b3b067e3eb1644ed5890118
|
|
BLAKE2b-256 checksum How to use checksums |
158db20a3b6dd8c527ea8c395c2d0796b59b958cc97703182e51d31547ef4e42
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|