- Renamed
ProgramInfo
toExecutionDetails
since there is anotherProgramInfo
struct in the source code. - [BREAKING] renamed
stack_init
andadvice_tape
tooperand_stack
andadvice_stack
in 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_cwm
instruction. - Added
breakpoint
instruction to help with debugging.
- [BREAKING] Renamed
Read
,ReadW
operations intoAdvPop
,AdvPopW
. - [BREAKING] Replaced
AdviceSet
withMerkleStore
. - Updated Winterfell dependency to v0.6.0.
- [BREAKING] Renamed
Read/ReadW
operations intoAdvPop/AdvPopW
.
- [BREAKING] Converted
AdviceProvider
into a trait which can be provided to the processor. - Added a decorator for interpolating polynomials over degree 2 extension field (
ext2intt
). - Added
AdviceSource
enum for greater future flexibility of advice injectors.
- Added
debug
subcommand 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
rpperm
tohperm
andrphash
tohmerge
. - Removed requirement that code blocks must be non-empty (i.e., allowed empty blocks).
- [BREAKING] Refactored
mtree_set
andmtree_cwm
instructions to leave the old value on the stack. - [BREAKING] Replaced
ModuleProvider
withLibrary
to improve 3rd party library support.
- [BREAKING] Refactored
execute()
,prove()
,verify()
functions to takeStackInputs
as one of the parameters. - [BREAKING] Refactored
prove()
function to returnExecutionProof
(which is a wrapper forStarkProof
). - [BREAKING] Refactored
verify()
function to takeProgramInfo
,StackInputs
, andExecutionProof
as parameters and return au32
indicating security level of the verified proof.
- Added
std::mem::memcopy
procedure for copying regions of memory. - Added
std::crypto::fri::frie2f4::verify
for verifying FRI proofs over degree 2 extension field.
- [BREAKING] Migrated to Rescue Prime Optimized hash function.
- Updated Winterfell backend to v0.5.1
- Implemented
call
operation for context-isolated function calls. - Added support for custom kernels.
- Implemented
syscall
operation for kernel calls, and added a newcaller
instruction for accessing the hash of the calling function. - Implemented
mem_stream
operation for fast hashing of memory regions. - Implemented
adv_pipe
operation 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_set
andmtree_get
to improve efficiency. - Refactored the advice provider to add support for advice maps, and added the
adv.mem
decorator 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).