Skip to content

Releases: trailofbits/masm-decompiler

v0.7.0

27 Mar 11:46
Immutable release. Only release title and notes can be modified.
098cb5b

Choose a tag to compare

Changes

  • Removed Address from the type lattice, simplifying it to a three-point chain Bool < 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

23 Mar 11:43
dac04e1

Choose a tag to compare

Changes

  • Restructured the type inference lattice from a partial order with Unknown variants to a clean four-point chain Bool < 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 U32 instead of Felt.
  • The is_odd intrinsic now correctly infers Bool result type.
  • Renamed TypeSummary.unknown to TypeSummary.opaque to decouple opacity tracking from the type domain.

Bug fixes

  • Fixed Address positioning in the type lattice (now between Bool and U32 instead of being a sibling of U32), 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

22 Mar 10:33
781b1e4

Choose a tag to compare

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

20 Mar 12:47
bdbb1ba

Choose a tag to compare

Bug fixes

  • Fixed false positive type diagnostic on while-loop conditions using push.1 / push.0 by modeling the subtype lattice Bool < U32 < Felt in type inference. Constants 0 and 1 now infer as Bool and widen correctly in arithmetic and u32 contexts.

masm-decompiler v0.5.1

19 Mar 20:48
da4b36e

Choose a tag to compare

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

16 Mar 11:20
939331c

Choose a tag to compare

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

15 Mar 06:32
1d1b1a9

Choose a tag to compare

Bug fixes

  • Fixed inconsistent use of parentheses for multi-output operations

masm-decompiler v0.4.2

15 Mar 05:19
831541b

Choose a tag to compare

Bug fixes

  • Fixed mtree_get stack effect

masm-decompiler v0.4.1

15 Mar 05:18
14d88a2

Choose a tag to compare

Bug fixes

  • Fixed handling of PushValue::Word

masm-decompiler v0.4.0

15 Mar 05:18
1f4e808

Choose a tag to compare

Changes

  • Tightened stack depth handling during lifting