The release is still in progress. You may see broken links and binaries may not yet be available from all sources.
We are excited to announce the release of the Solidity Compiler v0.8.36!
This release fixes some important bugs, introduces support for the upcoming EVM version Amsterdam, as well as memory spilling for our new and experimental SSA CFG pipeline.
Changelog
Important Bugfixes:
- PostTypeContractLevelChecker: Fix unintentional reversal of
linearizedBaseContractsannotation when emitting the warning about the base slot of storage layout being too close to the end of storage. The reversal would affect analysis and code generation dependent on the inheritance order. - Yul Optimizer: Fix call graph cycle detection failing to classify some mutually recursive functions as recursive.
Compiler Features:
- Commandline Interface:
--optimize-runsnow also accepts values from the interval [INT64_MAX, UINT64_MAX]. - EVM: Support for the EVM version "Amsterdam".
- General: Remove support for the experimental EOF (EVM Object Format) backend.
- General: Speed up SHA-256 hashing (
picosha2). - General: The experimental SSA CFG codegen can now spill stack values to memory to avoid stack-too-deep errors.
Bugfixes:
- Constant Evaluator: Fix ICE when evaluating
erc7201builtin with wrong number of arguments. - Custom Storage Layout: Fix segfault when emitting the "too close to end of storage" warning for contracts with no storage variables.
- NatSpec: Disallow
@returntag in event documentation. - SMTChecker: Fix incorrect handling of constant operands of unary operations.
- Standard JSON Interface: Fix incorrect serialization of
optimizer.runssetting for values in the interval [INT64_MAX, UINT64_MAX].
We would especially like to thank all the contributors that made this release possible:
0xjc65eth, Daniel Von Fange, Kamil Śliwak, Mate Soos, Matheus Aguiar, Nikola Matić, Tavian Dev, Thijmen Maus, Weixie Cui, blishko, clonker, cui, djole, matheusaaguiar, metsw24-max, r0qs, rodiazet