Releases: trailofbits/masm-decompiler
Releases · trailofbits/masm-decompiler
v0.8.1
Changes
- Type mismatch diagnostics now track structured requirement origins instead of only bare type facts.
- Related notes now point to the consumer that imposes the requirement, with operation-specific explanations for U32 operations, memory-address uses, calls, and intrinsic arguments.
Bug fixes
- Fixed assignment and result-widening diagnostics so the related location no longer duplicates the primary span.
- Fixed public input validation diagnostics to point at the internal use site that requires validation instead of the procedure definition.
v0.8.0
v0.7.0
Changes
- Removed
Addressfrom the type lattice, simplifying it to a three-point chainBool < U32 < Felt. - Added per-output-position typing for multi-output intrinsics.
- Added passthrough type propagation: procedure outputs that pass through inputs unchanged now resolve their types from caller arguments at call sites.
- Procedure visibility (
pub/internal) is now tracked and rendered in decompiled output.
masm-decompiler v0.6.1
Changes
- Restructured the type inference lattice from a partial order with
Unknownvariants to a clean four-point chainBool < Address < U32 < Felt, replacing ad-hoc combine/refine operations with proper lattice join, glb, and satisfies operations. - Small constants in the u32 range are now inferred as
U32instead ofFelt. - The
is_oddintrinsic now correctly infersBoolresult type. - Renamed
TypeSummary.unknowntoTypeSummary.opaqueto decouple opacity tracking from the type domain.
Bug fixes
- Fixed
Addresspositioning in the type lattice (now betweenBoolandU32instead of being a sibling ofU32), enabling correct subtype checks for address values. - Fixed local/memory store type tracking to use glb for combining stored values and join when merging with existing slot types, ensuring correct convergence with conflicting requirements.
masm-decompiler v0.6.0
Changes
- Added type propagation through local variable and memory store/load pairs, reducing false type mismatch diagnostics for values that round-trip through storage.
masm-decompiler v0.5.2
Bug fixes
- Fixed false positive type diagnostic on while-loop conditions using
push.1/push.0by modeling the subtype latticeBool < U32 < Feltin type inference. Constants0and1now infer asBooland widen correctly in arithmetic and u32 contexts.
masm-decompiler v0.5.1
Changes
- Added a single configurable
DecompiledProc::render(config)API for full-procedure rendering. - Added MIT License to the project.
Bug fixes
- Unified full-procedure rendering so CLI and API consumers use the same canonical variable-name disambiguation.
masm-decompiler v0.5.0
Changes
- Added support for cswapw, cdropw, PushSlice, and PushFeltList
Bug fixes
- Fixed an issue with how inputs were counted for intrinsics and call-like instructions
masm-decompiler v0.4.3
Bug fixes
- Fixed inconsistent use of parentheses for multi-output operations
masm-decompiler v0.4.2
Bug fixes
- Fixed mtree_get stack effect