- Added ability to attach doc comments to re-exported procedures (#994).
- Added support for nested modules (#992).
- Added support for the arithmetic expressions in constant values (#1026).
- Added support for module aliases (#1037).
- Added
adv.insert_hpermdecorator (#1042). - Added
adv.push_smtpeekdecorator (#1056). - Added
debugdecorator (#1069). - Refactored
pushinstruction so now it parses long hex string in little-endian (#1076).
- Implemented ability to output compiled
.masbfiles to disk (#1102).
- Simplified range checker and removed 1 main and 1 auxiliary trace column (#949).
- Migrated range checker lookups to use LogUp and reduced the number of trace columns to 2 main and 1 auxiliary (#1027).
- Added
get_mapped_values()andget_store_subset()methods to theAdviceProvidertrait (#987). - [BREAKING] Added options to specify maximum number of cycles and expected number of cycles for a program (#998).
- Improved handling of invalid/incomplete parameters in
StackOutputsconstructors (#1010). - Allowed the assembler to produce programs with "phantom" calls (#1019).
- Added
TraceLenSummarystruct which holds information about traces lengths to theExecutionTrace(#1029). - Imposed the 2^32 limit for the memory addresses used in the memory chiplet (#1049).
- Supported
PartialMerkleTreeas a secret input in.inputfile (#1072). - [BREAKING] Refactored
AdviceProviderinterface into [Host] interface (#1082).
- Completed
std::collections::smtmodule by implementinginsertandsetprocedures (#1036, #1038, #1046). - Added new module
std::crypto::dsa::rpo_falcon512to support Falcon signature verification (#1000, #1094)
- Fixed
no-stdcompilation formiden-core,miden-assembly, andmiden-processorcrates.
- Added new instructions:
mtree_verify. - [BREAKING] Refactored
adv.memdecorator to use parameters from operand stack instead of immediate values. - [BREAKING] Refactored
mem_streamandadv_pipeinstructions. - Added constant support for memory operations.
- Enabled incremental compilation via
compile_in_context()method. - Exposed ability to compile individual modules publicly via
compile_module()method. - [BREAKING] Refactored advice injector instructions.
- Implemented procedure re-exports from modules.
- Implemented support for all types of nondeterministic inputs (advice stack, advice map, and Merkle store).
- Implemented ability to generate proofs suitable for recursion.
- Added new module:
std::collections::smt(onlysmt::getavailable). - Added new module:
std::collections::mmr. - Added new module:
std::collections::smt64. - Added several convenience procedures to
std::memmodule. - [BREAKING] Added procedures to compute 1-to-1 hashes in
std::crypto::hashesmodule and renamed existing procedures to remove ambiguity. - Greatly optimized recursive STARK verifier (reduced number of cycles by 6x - 8x).
- Moved test framework from
miden-vmcrate tomiden-test-utilscrate. - Updated Winterfell dependency to v0.6.4.
- Added support for GPU acceleration on Apple silicon (Metal).
- Added source locations to all AST nodes.
- Added 8 more instruction slots to the VM (not yet used).
- Completed kernel ROM trace generation.
- Implemented ability to record advice provider requests to the initial dataset via
RecAdviceProvider.
- Renamed
ProgramInfotoExecutionDetailssince there is anotherProgramInfostruct in the source code. - [BREAKING] renamed
stack_initandadvice_tapetooperand_stackandadvice_stackin input files. - Enabled specifying additional advice provider inputs (i.e., advice map and Merkle store) via the input files.
- Added new instructions:
is_odd,assert_eqw,mtree_merge. - [BREAKING] Removed
mtree_cwminstruction. - Added
breakpointinstruction to help with debugging.
- [BREAKING] Renamed
Read,ReadWoperations intoAdvPop,AdvPopW. - [BREAKING] Replaced
AdviceSetwithMerkleStore. - Updated Winterfell dependency to v0.6.0.
- [BREAKING] Renamed
Read/ReadWoperations intoAdvPop/AdvPopW.
- [BREAKING] Converted
AdviceProviderinto a trait which can be provided to the processor. - Added a decorator for interpolating polynomials over degree 2 extension field (
ext2intt). - Added
AdviceSourceenum for greater future flexibility of advice injectors.
- Added
debugsubcommand to enable stepping through program execution forward/backward. - Added cycle count to the output of program execution.
- Added support for constant declarations.
- Added new instructions:
clk,ext2*,fri_ext2fold4,hash,u32checked_popcnt,u32unchecked_popcnt. - [BREAKING] Renamed
rppermtohpermandrphashtohmerge. - Removed requirement that code blocks must be non-empty (i.e., allowed empty blocks).
- [BREAKING] Refactored
mtree_setandmtree_cwminstructions to leave the old value on the stack. - [BREAKING] Replaced
ModuleProviderwithLibraryto improve 3rd party library support.
- [BREAKING] Refactored
execute(),prove(),verify()functions to takeStackInputsas one of the parameters. - [BREAKING] Refactored
prove()function to returnExecutionProof(which is a wrapper forStarkProof). - [BREAKING] Refactored
verify()function to takeProgramInfo,StackInputs, andExecutionProofas parameters and return au32indicating security level of the verified proof.
- Added
std::mem::memcopyprocedure for copying regions of memory. - Added
std::crypto::fri::frie2f4::verifyfor verifying FRI proofs over degree 2 extension field.
- [BREAKING] Migrated to Rescue Prime Optimized hash function.
- Updated Winterfell backend to v0.5.1
- Implemented
calloperation for context-isolated function calls. - Added support for custom kernels.
- Implemented
syscalloperation for kernel calls, and added a newcallerinstruction for accessing the hash of the calling function. - Implemented
mem_streamoperation for fast hashing of memory regions. - Implemented
adv_pipeoperation for fast "unhashing" of inputs into memory. - Added support for unlimited number of stack inputs/outputs.
- [BREAKING] Redesigned Miden assembly input/output instructions for environment, random access memory, local memory, and non-deterministic "advice" inputs.
- [BREAKING] Reordered the output stack for Miden assembly cryptographic operations
mtree_setandmtree_getto improve efficiency. - Refactored the advice provider to add support for advice maps, and added the
adv.memdecorator for copying memory regions into the advice map. - [BREAKING] Refactored the Assembler and added support for module providers. (Standard library is no longer available by default.)
- Implemented AIR constraints for the stack component.
- Added Miden REPL tool.
- Improved performance with various internal refactorings and optimizations.
- Implemented new decoder which removes limitations on the depth of control flow logic.
- Introduced chiplet architecture to offload complex computations to specialized modules.
- Added read-write random access memory.
- Added support for operations with 32-bit unsigned integers.
- Redesigned advice provider to include Merkle path advice sets.
- Changed base field of the VM to the prime field with modulus 2^64 - 2^32 + 1.
- Initial release (migration of the original Distaff VM codebase to Winterfell backend).