Skip to content

Conversation

bobbinth
Copy link
Contributor

This is a tracking PR for v0.19.0 release

@bobbinth
Copy link
Contributor Author

Not sure why no-std build on nightly is failing. Seems like CI is trying to build it with Rust 1.89 - but I can't find where this is set (and why this is happening specifically for nightly which should be Rust 1.92).

…2167)

* fix: simplify the signature of block creation

Block-creating functions used to take operations: Vec<Operation>, decorators: Option<DecoratorList>.

but:
- the None argument was only used in tests, with the exception of the placeholder Noop inserted to differentiate empty-body procedures,
- Vectors don't allocate until an element is pushed into them (see https://doc.rust-lang.org/std/vec/struct.Vec.html#method.new)

This simplifies the signatures to take a operations: Vec<Operation>, decorators: DecoratorList.

* feat: name DecoratedOpLink for (usize, DecoratorId)

* feat: add before_enter and after_exit decorators to BasicBlock

Adds dedicated decorator lists for pre- and post-execution decorators to BasicBlockNode,

This:
- simplifies decorator execution logic across the MAST system and enables potential removal of Instruction::Nop (see #1979),,
- is a necessary prequel to hoisting the basic block's inner decorators storage in a centralized `MastForest`-level cache (see #1776),

Closes #1979.

* test: test decorator iterators

* chore: Changelog

* feat: extensive decorator execution tests

Tests exactly-once semantics of various decorators in the `BasicBlockNode`, depending on their source (inner, before_enter, after_exit, ...).
Refactors the `ConsistencyHost` into a `TestConsistencyHost` that also tracks decorator (and in our examples, trace) operations.

* doc: address review comments
* test: Add Arbitrary for BasicBlockNode

* bench: Add serde rountrip tests on relevant structs

* bench: add bench for MastForest merging

* chore: Changelog
* feat: allow entering odd-length representations of hex numbers through padding

* chore: Changelog
…e issues on failure (#2230)

- Add GNU make manual URL exclusion to lychee.toml to prevent 429 errors
- Set fail-fast=false in CI workflow to allow job to continue after link failures
* fix: guard parsing of hex words against missing 0x prefix

* test: add unit tests for parse_word hex prefix validation

* chore: changelog

---------

Co-authored-by: François Garillot <francois@garillot.net>
plafer and others added 7 commits October 7, 2025 11:42
Previously, we would only do it for external nodes. Accordingly, we adjusted the naming in the `Tracer` trait to reflect
that we are no longer only recording external node resolutions.
These will be useful for managing batch/group/operation indices
in trace generation.
This will be useful in parallel trace generation, when using `Processor::execute_sync_op`
that requires a Host, but we are not actually getting any data from a host (we are
getting it from replays instead).
Implement parallel trace generation for the system, stack and decoder columns
* refactor: Introduce `IndexedVec` and `DenseIdMap` for type-safe u32-indexed Vector handling

Adds Idx trait, IndexVec for O(1) indexed access, and DenseIdMap for efficient
ID remapping. Replaces u32/usize aliases with newtype IDs for MastNodeId and
DecoratorId, preventing accidental id mixing and omissions of bounds check.

DenseIdMap provides faster merges than BTreeMap via direct array indexing
(O(1) vs O(lg n)).

* refactor: move crate to miden-utils

* feat: apply IndexedVec to SourceId

* feat: apply IndexedVec to RowIndex

* refactor: make the DenseIdMap non-reallocating

* chore: Changelog

* fix: answer review comments

* fix: address review comments
chore: place the fast processor stack on the heap instead of the stack
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.