Radar · Solidity · Archive · Week 42 · Oct 13 – 19, 2025
Assembler: Fixed ID type for nested subassemblies
Breakingcompiler
- What changed
- The assembler now uses a fixed‑width type for IDs assigned to subassemblies nested more than one level away, preventing inconsistent
--asm-jsonoutput between target architectures. - Production impact
- The source does not say.
- Try it
- Compile a contract with nested assembly blocks and compare the
--asm-jsonoutput on two architectures. - Source
- github.com/argotorg/solidity/releases/tag/v0.8.31-pre.1
Understand it, then run it
The Solidity assembler assigns numeric IDs to subassemblies so that the compiler can keep track of nested code blocks. Before the change, when a subassembly was nested more than one level deep, the ID type was not fixed‑width. That caused the JSON output produced by the --asm-json flag to differ between target architectures, even though the bytecode was the same. The new release fixes the ID type so that the output is now consistent across all architectures.
Written by gpt-oss-20b from the linked source · claims checked against the sources · archive, not individually reviewed