Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
50b8581
chore: increment crate versions to v0.19.0 and MSRV to 1.90
bobbinth Sep 21, 2025
48c2ae9
Merge branch 'main' into next
bobbinth Sep 21, 2025
2c84f3e
chore: update docs to current versions
bobbinth Sep 21, 2025
a2d2360
fix: be specific about which toolchain to install & use in CI (#2198)
huitseeker Sep 22, 2025
06c3faf
fix: make SourceFileRef::Hash consistent with Eq/Ord
GarmashAlex Sep 22, 2025
35c2d3b
Merge pull request #2199 from GarmashAlex/fix/sourcefileref-hash-eq-c…
bitwalker Sep 22, 2025
bed310d
feat: add before_enter and after_exit decorators to BasicBlockNode (#…
huitseeker Sep 23, 2025
64148b8
fix: correct StringTable offset type and dedupe Blake3 hash (#2210)
MozirDmitriy Sep 24, 2025
5ed5406
fix: improve error message in aux_trace.rs (#2201)
viktorking7 Sep 25, 2025
490e95c
docs: fix EXT2 ops docs (#2217)
Al-Kindi-0 Sep 28, 2025
4b76094
doc: escape brackets in rustdoc (#2229)
huitseeker Sep 28, 2025
18d9a3e
chore: drive CI with rust-toolchain.yml, add MSRV adjustment automati…
huitseeker Sep 28, 2025
b4f8e01
test: instances of Arbitrary for MastNodeForest & BasicBlockNode (#2200)
huitseeker Sep 29, 2025
dd61f9d
feat: allow parsing odd-length representations of hex numbers (#2196)
huitseeker Sep 29, 2025
cdff8e9
chore: fix link checker job to ignore error-generating link and creat…
huitseeker Sep 29, 2025
66642cc
feat: implement `smt::get` for leaves with multiple pairs (#2048)
Qyriad Sep 30, 2025
99ed81d
chore: fix changelog
bobbinth Sep 30, 2025
43502fe
fix: Make `DefaultDebugHandler` consistent (#2218)
adr1anh Oct 1, 2025
7eccbac
fix(library): add Optional FunctionType generation in Arbitrary for L…
sashass1315 Oct 1, 2025
d77fcf7
fmt
sashass1315 Oct 1, 2025
f1e5003
fix: mismatched Push expectations in decoder syscall_block test (#2207)
GarmashAlex Oct 1, 2025
34e3031
chore: Memory::read_element takes &self instead of &mut self
plafer Oct 1, 2025
bd91f44
use only fast
sashass1315 Oct 1, 2025
8e770b4
Merge pull request #2242 from 0xMiden/plafer-2237-memory-read-element
plafer Oct 1, 2025
a60ea6d
Merge pull request #2240 from sashass1315/test/arbitrary-libraryexpor…
bitwalker Oct 1, 2025
55f0a53
test: Arbitrary + {winter,serde} serialization, up to Program (+ smal…
huitseeker Oct 1, 2025
c04ca01
Merge branch 'main' into next
bobbinth Oct 2, 2025
26e0114
chore: use &str instead of &String
bobbinth Oct 2, 2025
03b9f77
fix: guard parsing of hex words against missing 0x prefix (#2245)
strmfos Oct 4, 2025
4c59586
chore: fix typos in docs
bobbinth Oct 4, 2025
f975c97
chore(fast processor): record mast forest resolution in dyn operations
plafer May 27, 2025
6b6be41
chore(core): add convenience methods to OpBatch
plafer May 27, 2025
c5b7e3d
feat: Introduce NoopHost
plafer May 27, 2025
0116a90
feat: initial implementation of parallel processor (core trace only)
plafer May 27, 2025
29a6557
chore: bump slow test timeout period
plafer Sep 22, 2025
bba4e21
chore(test): skip large traces in CI
plafer Oct 3, 2025
b3fa2a3
Merge pull request #1839 from 0xMiden/plafer-1558-parallel-tracegen
plafer Oct 7, 2025
68eac51
feat: systematize u32 Vector Indexes (#2254)
huitseeker Oct 8, 2025
522fd3e
feat(processor): build entire trace in parallel's build_trace()
plafer Sep 18, 2025
ee53771
chore(processor): require_u32_operands! no longer converts operations…
plafer Oct 2, 2025
80b9d75
chore: changelog for PR 2188
plafer Sep 24, 2025
65d15b2
chore: add build_trace benchmark
plafer Sep 24, 2025
5c5e2d8
Merge pull request #2188 from 0xMiden/plafer-full-parallel-trace-gen
plafer Oct 8, 2025
be75968
chore: place the fast processor stack on the heap instead of the stack
plafer Oct 8, 2025
cd8b900
Add contribution guidelines against AI slop (#2265)
adr1anh Oct 8, 2025
fa14b77
Merge pull request #2270 from 0xMiden/plafer-processor-stack-hotfix
plafer Oct 8, 2025
0d42e6b
chore(processor): properly allocate the fast processor stack directly…
plafer Oct 8, 2025
d3439fc
Merge pull request #2271 from 0xMiden/plafer-fix-stack-on-heap
bitwalker Oct 8, 2025
6b0ffe5
Merge branch 'main' into next
bobbinth Oct 10, 2025
fde0089
fix: after_exit executed incorrectly in External nodes (#2247)
huitseeker Oct 11, 2025
0b91643
feat: add an Operation iterator which spits out group indexes (#2273)
huitseeker Oct 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .config/nextest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Do not cancel the test run on the first failure.
fail-fast = false
# Put a bound on hanging/slow tests
slow-timeout = { period = "5m", terminate-after = 1, grace-period = "15s" }
slow-timeout = { period = "10m", terminate-after = 1, grace-period = "15s" }

[test-groups]
serialized = { max-threads = 1 }
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/bench.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@ jobs:
- uses: actions/checkout@v4
- name: Bench for all features
run: |
rustup update --no-self-update
rustup +stable update --no-self-update
rustup default stable
make check-bench

3 changes: 2 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,6 @@ jobs:
- name: Build for no-std
run: |
rustup update --no-self-update ${{ matrix.toolchain }}
rustup target add wasm32-unknown-unknown
rustup +${{ matrix.toolchain }} target add wasm32-unknown-unknown
rustup default ${{ matrix.toolchain }}
make build-no-std
2 changes: 1 addition & 1 deletion .github/workflows/link-checker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
inputs:
fail-fast:
required: false
default: true
default: false
type: boolean
schedule:
# runs once a day at 01:00 UTC (adjust as needed)
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,6 @@ jobs:
- uses: actions/checkout@v4
- name: Build docs
run: |
rustup update --no-self-update
rustup +stable update --no-self-update
rustup default stable
make doc
34 changes: 34 additions & 0 deletions .github/workflows/msrv.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Check MSRV

on:
push:
branches: [next]
pull_request:
types: [opened, reopened, synchronize]

# Limits workflow concurrency to only the latest commit in the PR.
concurrency:
group: "${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}"
cancel-in-progress: true

permissions:
contents: read

jobs:
# Check MSRV (aka `rust-version`) in `Cargo.toml` is valid for workspace members
msrv:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y jq
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Install cargo-msrv
run: cargo install cargo-msrv
- name: Cache rustup toolchains
run: rustup update
- name: Check MSRV for each workspace member
run: |
chmod +x scripts/check-msrv.sh
./scripts/check-msrv.sh
25 changes: 25 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,37 @@
# Changelog

## 0.19.0 (TBD)

#### Enhancements

- Added support for leaves with multiple pairs in `std::collections::smt::get` ([#2048](https://github.com/0xMiden/miden-vm/pull/2048)).
- Added `std::mem::pipe_double_words_preimage_to_memory`, a version of `pipe_preimage_to_memory` optimized for pairs of words ([#2048](https://github.com/0xMiden/miden-vm/pull/2048)).

#### Changes

- [BREAKING] Incremented MSRV to 1.90.
- [BREAKING] Fix inconsistencies in debugging instructions ([#2205](https://github.com/0xMiden/miden-vm/pull/2205)).
- Fix ability to parse odd-length hex strings ([#2196](https://github.com/0xMiden/miden-vm/pull/2196)).
- Added `before_enter` and `after_exit` decorator lists to `BasicBlockNode`.([#2167](https://github.com/0xMiden/miden-vm/pull/2167)).
- Added `proptest`'s `Arbitrary` instances for `BasicBlockNode` and `MastForest` ([#2200](https://github.com/0xMiden/miden-vm/pull/2200)).
- Fixed mismatched Push expectations in decoder syscall_block test ([#2207](https://github.com/0xMiden/miden-vm/pull/2207))
- [BREAKING] `Memory::read_element()` now requires `&self` instead of `&mut self` ([#2237](https://github.com/0xMiden/miden-vm/issues/2237))
- Added `proptest`'s `Arbitrary` instances for `Program`, fixed `Attribute` serialization ([#2224](https://github.com/0xMiden/miden-vm/pull/2224)).
- Fixed hex word parsing to guard against missing 0x prefix ([#2245](https://github.com/0xMiden/miden-vm/pull/2245)).
- Systematized u32-indexed vectors ([#2254](https://github.com/0xMiden/miden-vm/pull/2254)).
- Introduce a new `build_trace()` which builds the trace in parallel from trace fragment contexts ([#1839](https://github.com/0xMiden/miden-vm/pull/1839)) ([#2188](https://github.com/0xMiden/miden-vm/pull/2188)).
- Place the `FastProcessor` stack on the heap instead of the (OS thread) stack (#[2271](https://github.com/0xMiden/miden-vm/pull/2271)).
- `after_exit` decorators execute in the correct sequence in External nodes in the Fast processor ([#2247](https://github.com/0xMiden/miden-vm/pull/2247)).
- Remove O(n log m) iteration in parallel processor (#[2273](https://github.com/0xMiden/miden-vm/pull/2273)).

## 0.18.2 (2025-10-10)

- Place the `FastProcessor` stack on the heap instead of the (OS thread) stack (#[2275](https://github.com/0xMiden/miden-vm/pull/2275)).

## 0.18.1 (2025-10-02)

- Gate stdlib doc generation in build.rs on `MIDEN_BUILD_STDLIB_DOCS` environment variable ([#2239](https://github.com/0xMiden/miden-vm/pull/2239/)).
- Gate stdlib doc generation in build.rs on `MIDEN_BUILD_STDLIB_DOCS` environmnent variable ([#2239](https://github.com/0xMiden/miden-vm/pull/2239/))

## 0.18.0 (2025-09-21)

Expand Down
14 changes: 14 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,20 @@ We want to make contributing to this project as easy and transparent as possible

 

## Contribution Quality

To keep review time focused on meaningful improvements, we generally do not accept:
- Trivial typo fixes
- Minor code or documentation changes that don't materially improve clarity or completeness

Contributions should:
- Include clear reasoning for the change
- Be linked to an issue the author has been assigned to
- Be testable / reviewable without unnecessary overhead
- Pass all CI tests

**We reserve the right to close PRs at our discretion, or batch trivial valid fixes into internal commits.**

## Flow
We are using [Github Flow](https://docs.github.com/en/get-started/quickstart/github-flow), so all code changes happen through pull requests from a [forked repo](https://docs.github.com/en/get-started/quickstart/fork-a-repo).

Expand Down
44 changes: 31 additions & 13 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

29 changes: 15 additions & 14 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@ resolver = "2"

[workspace.package]
edition = "2024"
rust-version = "1.88"
license = "MIT OR Apache-2.0"
readme = "README.md"
authors = ["Miden contributors"]
homepage = "https://miden.xyz"
repository = "https://github.com/0xMiden/miden-vm"
exclude = [".github/"]
version = "0.18.2"
rust-version = "1.90"
version = "0.19.0"

[profile.optimized]
inherits = "release"
Expand All @@ -40,20 +40,21 @@ overflow-checks = true

[workspace.dependencies]
# Workspace crates
miden-air = { path = "./air", version = "0.18", default-features = false }
miden-assembly = { path = "./crates/assembly", version = "0.18", default-features = false }
miden-assembly-syntax = { path = "./crates/assembly-syntax", version = "0.18", default-features = false }
miden-core = { path = "./core", version = "0.18", default-features = false }
miden-debug-types = { path = "./crates/debug/types", version = "0.18", default-features = false }
miden-mast-package = { path = "./package", version = "0.18", default-features = false }
miden-processor = { path = "./processor", version = "0.18", default-features = false }
miden-air = { path = "./air", version = "0.19", default-features = false }
miden-assembly = { path = "./crates/assembly", version = "0.19", default-features = false }
miden-assembly-syntax = { path = "./crates/assembly-syntax", version = "0.19", default-features = false }
miden-core = { path = "./core", version = "0.19", default-features = false }
miden-debug-types = { path = "./crates/debug/types", version = "0.19", default-features = false }
miden-mast-package = { path = "./package", version = "0.19", default-features = false }
miden-processor = { path = "./processor", version = "0.19", default-features = false }
miden-serde-test-macros = { path = "./crates/utils/serde-test-macros", default-features = false }
miden-prover = { path = "./prover", version = "0.18", default-features = false }
miden-stdlib = { path = "./stdlib", version = "0.18", default-features = false }
miden-utils-diagnostics = { path = "./crates/utils/diagnostics", version = "0.18", default-features = false }
miden-utils-sync = { path = "./crates/utils/sync", version = "0.18", default-features = false }
miden-prover = { path = "./prover", version = "0.19", default-features = false }
miden-stdlib = { path = "./stdlib", version = "0.19", default-features = false }
miden-utils-diagnostics = { path = "./crates/utils/diagnostics", version = "0.19", default-features = false }
miden-utils-indexing = { path = "./crates/utils/indexing", version = "0.19", default-features = false }
miden-utils-sync = { path = "./crates/utils/sync", version = "0.19", default-features = false }
miden-utils-testing = { path = "./crates/utils/testing", version = "0.1", package = "miden-test-utils" }
miden-verifier = { path = "./verifier", version = "0.18", default-features = false }
miden-verifier = { path = "./verifier", version = "0.19", default-features = false }

# Miden crates
miden-crypto = { version = "0.17", default-features = false }
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
[![LICENSE](https://img.shields.io/badge/license-APACHE-blue.svg)](https://github.com/0xMiden/miden-vm/blob/main/LICENSE-APACHE)
[![Test](https://github.com/0xMiden/miden-vm/actions/workflows/test.yml/badge.svg)](https://github.com/0xMiden/miden-vm/actions/workflows/test.yml)
[![Build](https://github.com/0xMiden/miden-vm/actions/workflows/build.yml/badge.svg)](https://github.com/0xMiden/miden-vm/actions/workflows/build.yml)
[![RUST_VERSION](https://img.shields.io/badge/rustc-1.88+-lightgray.svg)](https://www.rust-lang.org/tools/install)
[![RUST_VERSION](https://img.shields.io/badge/rustc-1.90+-lightgray.svg)](https://www.rust-lang.org/tools/install)
[![Crates.io](https://img.shields.io/crates/v/miden-vm)](https://crates.io/crates/miden-vm)

A STARK-based virtual machine.
Expand All @@ -23,7 +23,7 @@ Miden VM is a zero-knowledge virtual machine written in Rust. For any program ex

### Status and features

Miden VM is currently on release v0.18. In this release, most of the core features of the VM have been stabilized, and most of the STARK proof generation has been implemented. While we expect to keep making changes to the VM internals, the external interfaces should remain relatively stable, and we will do our best to minimize the amount of breaking changes going forward.
Miden VM is currently on release v0.19. In this release, most of the core features of the VM have been stabilized, and most of the STARK proof generation has been implemented. While we expect to keep making changes to the VM internals, the external interfaces should remain relatively stable, and we will do our best to minimize the amount of breaking changes going forward.

The next version of the VM is being developed in the [next](https://github.com/0xMiden/miden-vm/tree/next) branch. There is also a documentation for the latest features and changes in the next branch [documentation next branch](https://0xMiden.github.io/miden-vm/intro/main.html).

Expand Down
1 change: 1 addition & 0 deletions air/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ thiserror.workspace = true
miden-core.workspace = true
winter-air.workspace = true
winter-prover.workspace = true
miden-utils-indexing.workspace = true

[dev-dependencies]
criterion.workspace = true
Expand Down
Loading