| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(debug): add initial support for debugging inline calls (#3427) * fix(debug): preserve source context while stepping * fix: add changelog input * feat(debug): emit inline calls with consolidated metadata * fix(debug): retain inline chains on MAST control nodes * fix(debug): preserve inline contexts across MAST uses * fix(debug): bound inline exec source growth * fix(debug): stabilize external inline contexts * fix(debug): preserve exact inline source contexts * fix(debug): harden inline source graph handling * test(assembly): reuse named inline marker helper * fix(assembly-syntax): propagate debug types serde | 23 天前 | |
feat: Cache loaded MastForests in the FastProcessor (#3764) * fix(processor): cache loaded MAST forests * fix(processor): preserve first cached forest * chore: Changelog | 10 天前 | |
fix(processor): raise default advice size limit to 16MB (#3699) * fix(processor): raise default advice size limit * chore: Changelog | 23 天前 | |
feat: AdviceInputs constructors and ProgramExecutor trait (#3540) * feat(core/advice): add AdviceInputs::new and From<AdviceMap> constructors Add a full constructor that assembles AdviceInputs from owned parts, and a From<AdviceMap> impl that defaults the stack and store. These complement the existing builder-style accessors (with_advice_stack, with_map, with_merkle_store). * refactor(processor)!: remove free execute()/execute_sync() functions No downstream consumer calls these. The only callers were in-repo tests and the miden-vm re-export. The prover and miden-base use FastProcessor directly because they need the trace or package-debug path. Removed the free functions and the miden-vm re-export, and moved every caller onto FastProcessor::new_with_options(...).execute[_sync](...). BREAKING CHANGE: use FastProcessor::new_with_options(...) followed by execute()/execute_sync() instead of the free functions. Refs #3538 * feat(processor): add ProgramExecutor trait with FastProcessor default impl Introduces a pluggable program-execution abstraction in miden-processor so that alternative execution backends (debuggers, instrumented executors, or other VMs) can be swapped in without touching the surrounding executor wiring. The trait is byte-for-byte faithful to the one already in miden-tx (which carries a TODO to move it into miden-vm), so downstream can later delete its local copy and re-export this one. FastProcessor is the default implementation: - new() wraps FastProcessor::new_with_options(), panicking on invalid advice inputs (matching the existing infallible-from-the-trait contract). - execute() delegates to FastProcessor::execute(). - execute_with_package_debug_info() routes to the package-debug entrypoints, selecting the source-node-anchored variant when an entrypoint node is given and falling back to the package-rooted variant otherwise. Documented on new() that, for the concrete FastProcessor type, the trait constructor is shadowed by the inherent 1-arg FastProcessor::new and so must be invoked via fully-qualified syntax <FastProcessor as ProgramExecutor>::new. Added three trait-dispatch tests: the default execute() path, the no-entrypoint-node fallback in execute_with_package_debug_info(), and the Some(entrypoint_source_node) arm routed through the trait (mirroring the existing package_source_debug_execution_uses_manifest_entrypoint_source_node inherent-method test). Refs #3538 * chore: Changelog * docs(miden-vm): fix README doctest after execute_sync removal The execution example doctest imported the free execute_sync from miden_vm and called it directly. That function was removed when the free execute()/ execute_sync() entrypoints were dropped in favor of FastProcessor. Rewrite the example to construct a FastProcessor via new_with_options and call execute_sync on it, matching the new API. Fixes the doc-tests CI failure on #3540. * refactor: address PR review feedback * chore: fix nightly formatting | 1 个月前 | |
feat(assembly): add `trace` for generating read-only events (#3478) | 1 个月前 | |
fix: remove the bus debugger (#3775) * Remove the bus debugger * Address review findings * chore: Changelog | 9 天前 | |
fix: harden ExecutionWitness deserialization (#3758) * fix: harden execution witness decoding Apply an input-proportional budget and reject trailing or noncanonical payloads. Validate deferred entry counts against remaining input before reserving storage. Route witness round trips and the fuzz target through the hardened decoder. * fix: account for continuation wire size Report the smallest serialized continuation accurately so valid large stacks fit the witness allocation budget. Cover the case with a full witness round trip. * chore: Changelog * perf: avoid reserializing execution witnesses Keep bounded decoding and exact payload consumption without allocating a second witness-sized byte buffer. | 12 天前 | |
refactor(processor): use Rayon's in-place scope for trace building (#3726) * refactor(processor): use Rayon's in-place scope for trace building * chore: Changelog * test(processor): make Rayon overlap check deterministic * fix: require Rayon 1.11 for threadless scopes * fix(processor): bound threadless trace memory * refactor(processor): simplify scoped hasher result | 18 天前 | |
refactor(processor): use Rayon's in-place scope for trace building (#3726) * refactor(processor): use Rayon's in-place scope for trace building * chore: Changelog * test(processor): make Rayon overlap check deterministic * fix: require Rayon 1.11 for threadless scopes * fix(processor): bound threadless trace memory * refactor(processor): simplify scoped hasher result | 18 天前 | |
Limit total advice provider size (#3643) * fix(processor): unify advice size limits * docs: link advice limit changelog entry to PR * fix(processor): allow advice map reinserts at budget limit * perf(processor): preflight advice mutation batches * refactor(processor): derive advice size dimensions | 26 天前 | |
2/3 Serialize trace proving inputs (#3314) * Serialize trace proving inputs Adds the trusted binary wire format for trace proving inputs on top of the post-#3437 witness API: - serialize VmWitness (program info, stack i/o, trace replay, precompile root) - serialize ExecutionWitness with an option-tagged singleton precompile witness (ordered roots plus canonical deferred wire) via local helper functions, since PrecompileWitness and the serde traits are both foreign to the processor crate - TraceProvingInputs wraps ExecutionWitness plus a HashFunction and keeps the budgeted trusted read path; prove_from_trace_sync and prove_partial_from_trace_sync map to Prover::prove_full and Prover::prove - range-check replay covers the U32DIV remainder diffs recorded since #3604 The wire is trusted replay data: sparse MAST node and digest maps are not checked against a source MastForest commitment (#3303 tracks the untrusted reader). * chore: Changelog * fix: Make trace input serialization features standalone * fix: Address trace input serialization review comments * docs: clarify trace input trust boundary * refactor: reduce trace input serialization diff * fix: adapt trace serialization tests to streamed hasher replay * fix: validate precompile witness and VM witness roots agree on wire reads ExecutionWitness::read_from accepted wires whose halves describe different executions: each half was validated individually, but nothing compared them. Enforce the construction invariant in both directions: - when a precompile witness is present, its root must equal the VM witness precompile root (both derive from the same deferred state), and - when it is absent, the VM witness precompile root must be TRUE_DIGEST, since a non-TRUE root means execution authenticated deferred work and cannot round-trip without its precompile half. Cover both tampered cases with in-crate regression tests. * chore: use miden-crypto's arbitrary feature for replay Arbitrary impls miden-crypto, now maintained in this repository, exposes a public arbitrary feature providing Arbitrary for MerklePath (plus Felt and Word via miden-field/arbitrary), resolving the two TODOs this PR carried: - miden-core's arbitrary feature now enables miden-crypto/arbitrary directly instead of reaching through miden-crypto/testing, which is a strict superset of it - the trace replay proptest strategies use any::<MerklePath>() instead of a local hand-rolled strategy, exercising Merkle paths up to SMT_MAX_DEPTH instead of the previous 8-element cap * Address review feedback on PR #3314 - Add a wire format version tag to ExecutionWitness serialization: the first byte of every serialized witness is a version constant, and deserialization only accepts the current value, so future format changes have an explicit evolution point - Drop source_node_ids from the serialized ContinuationStack: those indices reference a package's PackageDebugInfo, which is not on the wire, so they would be dangling on the deserialized side; a restored stack simply does not track source nodes, as a non-debug-aware execution would - Document that Continuation serialization deliberately omits package_debug_info, so round-tripping any struct containing a Continuation is not exact, and note why the VecDeque serialization uses a newtype view and why ACE replay serialization uses free functions (the orphan rule forbids impls on the foreign types) - Move the trace fragment state serialization impls into a trace_state/serde submodule to keep trace_state.rs focused - Update the changelog phrasing away from the outdated trace proving input wording and add a README for the test-serde-macros helper crate * Remove trace-specific proving inputs API * Keep property tests in the follow-up PR Remove generated property-test support from the serializer implementation branch. Apply the latest review feedback to the changelog, module layout, replay helper docs, and prover manifest. * Reuse workspace serialization implementations | 19 天前 | |
fix: address precompile review follow-ups | 2 个月前 | |
Fix Merkle tree depth bound issue (#3671) | 25 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 23 天前 | ||
| 10 天前 | ||
| 23 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 9 天前 | ||
| 12 天前 | ||
| 18 天前 | ||
| 18 天前 | ||
| 26 天前 | ||
| 19 天前 | ||
| 2 个月前 | ||
| 25 天前 |