Report MASM compatibility per procedure
- Dominant language
- Rust
- Stars
- 772
- Forks
- 352
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 84
Description
The [MASM release checker](https://github.com/0xMiden/miden-vm/blob/0b43021e5a8572bb7e514a647a9efad98393d47c/scripts/check-masm-export-digests.rs#L273-L343) reports MAST root changes separately from procedure interface changes. Its felt count check also covers only Fast procedures. [Bitwalker's review](https://github.com/0xMiden/miden-vm/pull/3805#pullrequestreview-5148810713) explains that equal felt counts can hide a type change. A calling convention can also change without changing the count.
Compare the MAST root and interface together for each published procedure. The interface includes the full normalized signature and its calling convention. Record the input and output felt counts as supporting detail.
| MAST root | Interface | Result |
| --- | --- | --- |
| Unchanged | Unchanged | Pass. |
| Unchanged | Changed | Warn that source callers may need changes. |
| Changed | Unchanged | Fail because executable behavior changed. |
| Changed | Changed | Fail and report both changes together. |
Keep `--check source` strict. During the full release check, warn when only the interface changes and fail whenever the MAST root changes. Add tests for all four results.
Contributor guide
Research direction
The MASM release checker script is at scripts/check-masm-export-digests.rs. Start by understanding the current logic for reporting MAST root and procedure interface changes. Modify the script to compare MAST root and interface per procedure, using the decision table. Add tests for the four result cases. Run the script with the --check source flag to verify strictness.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- devtools, testing-qa
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 65/100