Releases: trailofbits/masm-decompiler
Releases · trailofbits/masm-decompiler
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
masm-decompiler v0.4.1
Bug fixes
- Fixed handling of PushValue::Word
masm-decompiler v0.4.0
Changes
- Tightened stack depth handling during lifting