All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
midenc-hir-opt - 0.9.2 - 2026-07-09
- update Cargo.lock dependencies
cargo-miden - 0.9.2 - 2026-07-09
- update new project template before the v0.9.2 compiler release
midenc - 0.9.2 - 2026-07-09
- update Cargo.lock dependencies
midenc-frontend-wasm - 0.9.2 - 2026-07-09
- (sdk) [breaking] align tx-kernel bindings with protocol MASM signatures
- (wasm) bitcast the br_table selector instead of range-checking it
midenc-codegen-masm - 0.9.2 - 2026-07-09
- (codegen) load and store element-space pointers with bare memory ops (#1260)
midenc-hir - 0.9.2 - 2026-07-09
- (hir) make Region::find_common_ancestor return the common region (#1247)
miden-objtool - 0.9.1 - 2026-07-07
- update Cargo.lock dependencies
midenc-hir-opt - 0.9.1 - 2026-07-07
- update Cargo.lock dependencies
cargo-miden - 0.9.1 - 2026-07-07
- (cargo-miden) print the compiled artifact path on build
- temporarily suppress UntrustedMastForest error logs from miden-core
midenc - 0.9.1 - 2026-07-07
- temporarily suppress UntrustedMastForest error logs from miden-core
midenc-frontend-wasm - 0.9.1 - 2026-07-07
- add
I32RemSop towasmdialect
midenc-hir-eval - 0.9.1 - 2026-07-07
- add
I32RemSop towasmdialect
- (eval) determine type of operand correctly
midenc-codegen-masm - 0.9.1 - 2026-07-07
- add
I32RemSop towasmdialect
midenc-dialect-wasm - 0.9.1 - 2026-07-07
- add
I32RemSop towasmdialect
midenc-log - 0.9.1 - 2026-07-07
- temporarily suppress UntrustedMastForest error logs from miden-core
- Foreign Procedure Invocation (FPI): call procedures on foreign accounts, including account-to-account and raw foreign-procedure calls, exposed through the
#[account(...)]SDK macro #1157 - sibling account components: components deployed on the same account can call each other through generated traits declared on the
#[component(package::Interface, ...)]trait #697 println!macro (anddebug::println) for emitting debug messages during execution- debug information (DWARF) for compiled programs, via a new Debug Info dialect and source-level debug variable location tracking, with preserved function signatures and exported type names
- new MASM frontend, with advice-provider taint analysis that flags unconstrained advice usage;
- compile standalone Rust sources directly with
midenc, including Cargo frontmatter support (--cargo-frontmatter) - new integer intrinsics:
i32/i64checked_mod,wrapping_mod,overflowing_mod,i64::wrapping_add,u128load/store, and quad-wordload_qw/store_qw - component-model support for WIT
variant,result, andoptiontypes
- migrate the compiler stack to Miden VM
v0.23, protocolv0.15, and SDKv0.13; seesdk/sdk/CHANGELOG.mdfor the full list of SDK changes andsdk/sdk/MIGRATION.mdfor the step-by-step0.12.0 -> 0.13.0upgrade guide with before/after code - [breaking] redesign the
#[component]/#[account(...)]SDK macros around a trait-based component API with an explicit#[component_storage]struct, and derive storage slot names from the[lib].namespaceinterface segment #697 #1157
- Wasm frontend: mask shift/rotate movement counts, sign-extend small integers for the operand stack (#1130), keep return types consistent with Wasm, and tolerate a missing Wasm name section (#1065)
- correctness fixes across
i32/i64overflow and checked arithmetic intrinsics, including overflow detection inoverflowing_mul, trapping on overflow inchecked_div, andi32::MINhandling in signed multiply - route successor groups by explicit index to avoid an
index out of boundscodegen error (#1084)
- compile the note script as a library and generate
@note-scriptand@auth_scriptMASM attribute #1051
Changes since v0.7.1.
- initial
wasmdialect support plus lowering fori32.extend8_s,i32.extend16_s,i64.extend*_s, and signedi32/i64loads miden-objtoolCLI plusinstall-miden-objtoolandinstalltasks for inspecting MASP artifacts- typed SDK storage and felt representation improvements, including
StorageValue<T>,StorageMap<K, V>,SchemaTypeId, typedFeltReaderreads, and richer decode errors
- migrate the compiler stack to Miden VM
v0.22, protocolv0.14, and SDKv0.11 - move address preparation into the
wasmdialect
- release-build crashes in HIR caused by unsound intrusive handle conversions and stale
SymbolUsetargets scf.index_switchlowering for sparse and non-zero case sets, including selector liveness and span preservationmemcpyandmemsetlowering for zero-count copies, byte fast paths, and unaligned or signedu16/i16memory access- protocol and SDK binding regressions during the VM and protocol migration, including storage slots, note recipient helpers, active account assets, and canonical ABI edge cases
cargo miden newsymlink materialization on non-Unix platforms and tests that mutate the process working directory
cargo-miden - 0.7.0 - 2026-02-11
- improving compiler tracing infrastructure
- re-export BuildCommand::exec
- gate on-chain
Feltbehindcfg(miden) - introduce onchain/offchain serialization into felts
- cargo miden test no longer hangs
- gate
sdkWasm intrinsics behindcfg(miden)
- update new project git tags (with SDK v0.10)
- Merge pull request #922 from 0xMiden/bitwalker/codegen-fixes-and-improvements
- remove
cargo miden examplecommand - migrate to VM v0.20
- switch contract template repo to v0.25.0 (
#[note]+#[entrypoint]`) - remove unneeded
cargo testflags - move spawn_cargo to tools/cargo-miden/src/utils.rs
- Merge branch 'next' into fabrizioorsi/custom-test-harness
- rename
miden-feltcrate tomiden-field - Merge pull request #808 from 0xMiden/greenhat/i698-typed-note-inputs
- restore basic-wallet support in the
cargo miden example - remove basic-wallet from
cargo miden example#662
midenc - 0.7.0 - 2026-02-11
- improving compiler tracing infrastructure
- Merge pull request #922 from 0xMiden/bitwalker/codegen-fixes-and-improvements
- rename
interset toir - rename
MIDENC_EXPANDenv var toMIDENC_EMIT_MACRO_EXPAND,
midenc-driver - 0.7.0 - 2026-02-11
- Merge pull request #922 from 0xMiden/bitwalker/codegen-fixes-and-improvements
- Update README.md
- rename
interset toir - rename
MIDENC_EXPANDenv var toMIDENC_EMIT_MACRO_EXPAND,
midenc-compile - 0.7.0 - 2026-02-11
- implement basic mem2reg-style pass for locals
- (driver) support ir filters for printing
- add WAT support in
--emitoption
- improve codegen quality of wasm-translated programs
- (driver) broken -Z/-C option handling
- upto linker
- no_std build
- write
hirandmasmin--emitoption and preserve Miden
- Merge pull request #922 from 0xMiden/bitwalker/codegen-fixes-and-improvements
- change pass order to improve quality of generated code
- (compile) move spills transform before scf lifting
- migrate to VM v0.20
- move Masm component and Wat emission to the codegen and frontend
- remove
OutputType::Masl - rename
interset toir - rename
MIDENC_EXPANDenv var toMIDENC_EMIT_MACRO_EXPAND, - better error messages, code cleanup
- pre-allocate string for WAT printer
midenc-frontend-wasm - 0.7.0 - 2026-02-11
- (sdk) [breaking] assert
value <= Felt::MinFelt::from_u64_unchecked(#891)
- remove
miden::active_note::add_assets_to_accountbecause - SDK bindings for
*_note::get_metadata - improve codegen quality of wasm-translated programs
- rename stdlib's
rpo_falcon512module tofalcon512_rpo - updated protocol v0.13 bindings output_note::create(tag, note_type, recipient),
- rename stdlib Blake3
hash_1to1tohashandhash_2to1tomerge - rename stdlib SHA256
hash_1to1tohashandhash_2to1tomerge - rename stdlb
hashes::rpotohashes::rpo256, symbols cleanup - rename stdlib
hash_memoryandhash_memory_wordstohash_elementsand std->miden::corerename in stdlib- convert the rest of the
stdtomiden::corein the bindings - upto linker
- path (add
protocol) in the frontend tx kernel bindings
- Merge pull request #922 from 0xMiden/bitwalker/codegen-fixes-and-improvements
- remove
intrinsics::mem::heap_basespecial treatment for inlining - remove unused MODULE_ID
- Merge pull request #895 from walnuthq/feature/improve-source-loc-coverage
- Use effective spans on ub.unreachable
- Merge pull request #843 from walnuthq/pr/inline-stubs
- Inline stubs that are ops only
- inline linker stubs at call sites
midenc-hir-eval - 0.7.0 - 2026-02-11
- Update README.md
- rename
interset toir - rename
MIDENC_EXPANDenv var toMIDENC_EMIT_MACRO_EXPAND,
midenc-expect-test - 0.7.0 - 2026-02-11
- Update README.md
- rename
interset toir - rename
MIDENC_EXPANDenv var toMIDENC_EMIT_MACRO_EXPAND,
midenc-log - 0.7.0 - 2026-02-11
- Merge pull request #922 from 0xMiden/bitwalker/codegen-fixes-and-improvements
midenc-codegen-masm - 0.7.0 - 2026-02-11
- improving compiler tracing infrastructure
- support variadic limbs in
arith.split/arith.join - rework
splitandjointo work on all integer types,
- publishing issue with workspace dev-dependencies
- (codegen) implement lowering for load/store of pointer values
- skip core modules in
MasmComponentdisplay - remove name sanitizing in the codegen, use quoted symbols,
- prepend
::for missed symbols in emit::int64 module - sanitize a Wasm CM full path as a function name.
- convert
::in the function name to the double underscore. - prefix
miden::coresymbols with:: - upto linker
- relax
OperandStack::renameto allow >16 deep indices - exhaust tactics before stopping on
fuel - generalize
LinearStackWindowcopy materialization - increase the default fuel amount in the solver to 40
- import
MASM_STACK_WINDOW_FELTSinLinear - base
Linearspecial-case on felt depth - reject unsupported solutions without skipping fuel
- avoid unsupported stack access in
Linear - (solver) reject deeper than 16 element window solutions, update linear tactic
- swapping 64-bit limbs for immediate store_dw
- calculate
HEAP_ENDaccording to the comment and put it belowHEAP_INFO_ADDR - move
HEAP_INFO_ADDRto not clash with procedure locals space
- Merge pull request #922 from 0xMiden/bitwalker/codegen-fixes-and-improvements
- better error handling, use
LibraryPath::push_componentin - remove unused debug-mode plumbing
- formatting
- migrate to VM v0.20
- Merge pull request #897 from VolodymyrBg/fix/truncate-stack-drop-instruction
- fix comment
- add targeted trace logs for
LinearStackWindow - add
LinearStackWindowtests - move linear tactic proptest to solver to allow the fallback to
- move
LinearStackWindowtests to solver tests module - extract
LinearStackWindowtactic as a wrapper around - add "executable documentation" tests in Linear tactic
- run rustfmt
- clarify
Linearregression test invariant - extract
Linearpre-move helper - clarify MASM stack window terminology
- use
MASM_STACK_WINDOW_FELTSconstant - fix the code comments
- Merge pull request #808 from 0xMiden/greenhat/i698-typed-note-inputs
- move Masm component and Wat emission to the codegen and frontend
- rename
interset toir - rename
MIDENC_EXPANDenv var toMIDENC_EMIT_MACRO_EXPAND,
midenc-dialect-scf - 0.7.0 - 2026-02-11
- improving compiler tracing infrastructure
- publishing issue with workspace dev-dependencies
- (scf) printing of scf.while with no results
- old empty blocks left in scf.while after while-unused-result
- aliasing violations found while trying different pass orderings
- Merge pull request #922 from 0xMiden/bitwalker/codegen-fixes-and-improvements
- rename
interset toir - rename
MIDENC_EXPANDenv var toMIDENC_EMIT_MACRO_EXPAND,
midenc-dialect-ub - 0.7.0 - 2026-02-11
- Update README.md
- rename
interset toir - rename
MIDENC_EXPANDenv var toMIDENC_EMIT_MACRO_EXPAND,
midenc-dialect-hir - 0.7.0 - 2026-02-11
- implement basic mem2reg-style pass for locals
- improving compiler tracing infrastructure
- publishing issue with workspace dev-dependencies
- include
scf.whileafterregion uses in spill rewrite #831 - rewrite uses of spilled values in any nested regions of
op.
- Merge pull request #922 from 0xMiden/bitwalker/codegen-fixes-and-improvements
- (local2reg) add local2reg tests
- use
litcheck_filecheck::filecheck!for spill rewrite test - add
scf.whileafter-region spill rewrite repro #831 - rename
interset toir - rename
MIDENC_EXPANDenv var toMIDENC_EMIT_MACRO_EXPAND,
midenc-hir-transform - 0.7.0 - 2026-02-11
- (transform) implement common subexpression elimination pass
- improving compiler tracing infrastructure
- publishing issue with workspace dev-dependencies
- reduce noise in spill pass instrumentation
- aliasing violations found while trying different pass orderings
- (analysis) ensure domtree has dfs numbers on creation
- include
scf.whileafterregion uses in spill rewrite #831 - rewrite uses of spilled values in any nested regions of
op.
- Merge pull request #922 from 0xMiden/bitwalker/codegen-fixes-and-improvements
- (cse) add initial common subexpression elimination tests
- rename spill-use helpers and skip
IsolatedFromAbove - (spill) generalize nested-region use rewriting
- rename
interset toir - rename
MIDENC_EXPANDenv var toMIDENC_EMIT_MACRO_EXPAND,
midenc-hir-analysis - 0.7.0 - 2026-02-11
- improving compiler tracing infrastructure
- publishing issue with workspace dev-dependencies
- reduce noise in spill pass instrumentation
- incorrect block visitation order in spills transform
- aliasing violations found while trying different pass orderings
- (analysis) aliasing violation in sparse forward dataflow
- remove unused
mutin spill usage - avoid unused over-K usage assignments
- handle over-K
scf.yieldinSpillAnalysis - prefer destination placement for structured spills
- deduplicate
SpillAnalysisspills and reloads - preserve
ProgramPointinis_spilled_at/is_reloaded_at - spill the block args if > K(16)
- Merge pull request #922 from 0xMiden/bitwalker/codegen-fixes-and-improvements
- (compile) move spills transform before scf lifting
- extract over-K spill helper
- remove
SpillAnalysisspills_mut/reloads_mut - harden spill analysis accounting
- update
auth_component_rpo_falcon512expected files - index
SpillAnalysisspill/reload dedup - remove redundant
is_spilled_atchecks - cover over-K entry args in
SpillAnalysis - rename
interset toir - rename
MIDENC_EXPANDenv var toMIDENC_EMIT_MACRO_EXPAND,
midenc-dialect-cf - 0.7.0 - 2026-02-11
- Update README.md
- rename
interset toir - rename
MIDENC_EXPANDenv var toMIDENC_EMIT_MACRO_EXPAND,
midenc-dialect-arith - 0.7.0 - 2026-02-11
- support variadic limbs in
arith.split/arith.join - rework
splitandjointo work on all integer types,
- Update README.md
- document
arithcanonicalization module - add
join2/join4andsplit2/split4helpers - update
auth_component_rpo_falcon512expected files - cover
arith.rotl/arith.rotrby 32 canonicalization - hoist
Symbol::internin rotate canonicalization - rename
interset toir - rename
MIDENC_EXPANDenv var toMIDENC_EMIT_MACRO_EXPAND,
midenc-hir - 0.7.0 - 2026-02-11
- implement basic mem2reg-style pass for locals
- improve ergonomics of PostPassStatus
- improve operation apis related to side effects
- surface has_ssa_dominance in region and domtree apis
- improving compiler tracing infrastructure
- (driver) support ir filters for printing
- improve codegen quality of wasm-translated programs
- uniqued constants left untracked after inserted by op folder
- old empty blocks left in scf.while after while-unused-result
- (analysis) ensure domtree has dfs numbers on creation
- remove name sanitizing in the codegen, use quoted symbols,
- upto linker
- use arena allocation for keyed successor keys
- cache stack_size in ValueOrAlias to avoid repeated virtual dispatch
- Merge pull request #922 from 0xMiden/bitwalker/codegen-fixes-and-improvements
- remove duplication in erase_block using block.erase()
- correct documentation for notify_block_inserted
- Merge pull request #911 from sashass1315/fix/arena-zst-extend
- Merge pull request #907 from 0xMiden/i899-migrate-vm-v0.20-storage
- better error handling, use
LibraryPath::push_componentin - update outdated references to hold *EntityHandle types
- rename
interset toir - rename
MIDENC_EXPANDenv var toMIDENC_EMIT_MACRO_EXPAND,
midenc-session - 0.7.0 - 2026-02-11
- add
intergroup to--emitoption (wat, hir, masm) - add WAT support in
--emitoption
- treat
--emit=all=pathas a directory - handle relative paths in
OutputFile::Directory - write
hirandmasmin--emitoption and preserve Miden
- Merge pull request #922 from 0xMiden/bitwalker/codegen-fixes-and-improvements
- Update README.md
- formatting
- migrate to VM v0.20
- remove
OutputType::Masl - make
OutputType:allandirreturn&'static [OutputType] - make
OutputTypeSpec::InterintoOutputTypeSpec::Subset - rename
interset toir - rename
MIDENC_EXPANDenv var toMIDENC_EMIT_MACRO_EXPAND,
midenc-hir-symbol - 0.7.0 - 2026-02-11
- link name for
falcon512pro::verifyMASM procedure - rename stdlib's
rpo_falcon512module tofalcon512_rpo - rename stdlb
hashes::rpotohashes::rpo256, symbols cleanup std->miden::corerename in stdlib- path (add
protocol) in the frontend tx kernel bindings
- Merge pull request #922 from 0xMiden/bitwalker/codegen-fixes-and-improvements
- rename
interset toir - rename
MIDENC_EXPANDenv var toMIDENC_EMIT_MACRO_EXPAND,
midenc-hir-macros - 0.7.0 - 2026-02-11
- Update README.md
- rename
interset toir - rename
MIDENC_EXPANDenv var toMIDENC_EMIT_MACRO_EXPAND,
cargo-miden - 0.6.0 - 2025-12-23
- use git tag for new Miden project template (
cargo miden new) - (cargo-miden) allow local override of project-template templates
- rust-lld fails due to divergent definitions of __rdl_alloc_error_handler
- update git tags in
cargo miden newcommand - bump rust-templates to v0.23.0
- run formatter after upgrade to 2024 edition
- switch to Rust edition 2024
- bump toolchain to 1.94/nightly-2025-12-10
- Merge pull request #747 from crStiv/feat/add-workspace-support-to-new-command
- Add tests for new project workspace integration
- Update new_project.rs
midenc - 0.6.0 - 2025-12-23
- run formatter after upgrade to 2024 edition
midenc-driver - 0.6.0 - 2025-12-23
- run formatter after upgrade to 2024 edition
midenc-compile - 0.6.0 - 2025-12-23
- run formatter after upgrade to 2024 edition
- bump toolchain to 1.94/nightly-2025-12-10
- Merge pull request #785 from walnuthq/pr/fix-source-loc-resolution
- Fix source locations when trim-paths is being used
midenc-frontend-wasm - 0.6.0 - 2025-12-23
- remove sorting the targets in
br_tableWasm op translation
- run formatter after upgrade to 2024 edition
- switch to Rust edition 2024
- Fix source locations when trim-paths is being used
midenc-hir-eval - 0.6.0 - 2025-12-23
- run formatter after upgrade to 2024 edition
- bump toolchain to 1.94/nightly-2025-12-10
midenc-expect-test - 0.6.0 - 2025-12-23
- switch to Rust edition 2024
midenc-codegen-masm - 0.6.0 - 2025-12-23
- run formatter after upgrade to 2024 edition
- switch to Rust edition 2024
- bump toolchain to 1.94/nightly-2025-12-10
- Optimise the
realign_dwmemory intrinsic slightly. - Change the memory representation of 64-bit, dual-limbed values to be little-endian.
midenc-dialect-scf - 0.6.0 - 2025-12-23
- run formatter after upgrade to 2024 edition
midenc-dialect-ub - 0.6.0 - 2025-12-23
- run formatter after upgrade to 2024 edition
midenc-dialect-hir - 0.6.0 - 2025-12-23
- run formatter after upgrade to 2024 edition
- switch to Rust edition 2024
midenc-hir-transform - 0.6.0 - 2025-12-23
- run formatter after upgrade to 2024 edition
midenc-hir-analysis - 0.6.0 - 2025-12-23
- run formatter after upgrade to 2024 edition
- switch to Rust edition 2024
midenc-dialect-cf - 0.6.0 - 2025-12-23
- run formatter after upgrade to 2024 edition
- switch to Rust edition 2024
midenc-dialect-arith - 0.6.0 - 2025-12-23
- run formatter after upgrade to 2024 edition
midenc-hir - 0.6.0 - 2025-12-23
- DomTreeSuccessorIter::next_back bounds handling
- run formatter after upgrade to 2024 edition
- switch to Rust edition 2024
- bump toolchain to 1.94/nightly-2025-12-10
- Fix source locations when trim-paths is being used
midenc-session - 0.6.0 - 2025-12-23
- run formatter after upgrade to 2024 edition
- switch to Rust edition 2024
- bump toolchain to 1.94/nightly-2025-12-10
- Fix source locations when trim-paths is being used
midenc-hir-symbol - 0.6.0 - 2025-12-23
- run formatter after upgrade to 2024 edition
- bump toolchain to 1.94/nightly-2025-12-10
midenc-hir-macros - 0.6.0 - 2025-12-23
- run formatter after upgrade to 2024 edition
- switch to Rust edition 2024