Solidity 0.8.36
Overview
Solidity 0.8.36 has been released on July 9, 2026, bringing EVM support for the upcoming "Amsterdam" hard fork, critical bugfixes in the Yul optimizer, and a number of compiler quality-of-life improvements. This release also removes the experimental EOF (EVM Object Format) backend and introduces SSA CFG stack-to-memory spill capabilities.
New Features
- EVM "Amsterdam" support — Solidity now targets the next-generation EVM revision via
--evm-version amsterdam, enabling new opcodes and gas optimizations on networks that have activated the fork. - SSA CFG stack-to-memory spilling — The experimental SSA-based code generation can now spill stack values to memory automatically, preventing stack-too-deep errors in complex contracts.
- CLI improvement —
--optimize-runsnow accepts values in the full[INT64_MAX, UINT64_MAX]range instead of capping at2^32 - 1. - SHA-256 hashing speedup — The internal
picosha2library has been replaced with a faster implementation, reducing gas costs for operations that depend on SHA-256.
Breaking Changes
- EOF backend removed — The experimental EVM Object Format backend has been removed. Projects relying on EOF output must switch to the standard legacy or Yul pipeline.
Important Bugfixes
- PostTypeContractLevelChecker — Fixed an unintentional reversal of the
linearizedBaseContractsannotation that could affect analysis and code generation dependent on inheritance ordering. - Yul Optimizer — Fixed call-graph cycle detection that failed to classify some mutually recursive functions as recursive, which could lead to incorrect optimization passes.
Bugfixes
- Fixed ICE (Internal Compiler Error) when evaluating the
erc7201builtin with an incorrect number of arguments. - Fixed segfault in custom storage layout when emitting the "too close to end of storage" warning for contracts with no storage variables.
- NatSpec:
@returntag is now disallowed in event documentation. - SMTChecker: Fixed incorrect handling of constant operands in unary operations.
- Standard JSON: Fixed incorrect serialization of
optimizer.runsfor values in the[INT64_MAX, UINT64_MAX]interval.
How to Upgrade
Upgrade via npm with npm install -g solc, via Homebrew with brew upgrade solidity, or download the binary from the official Solidity release page. Run your existing test suite after upgrading — the Yul optimizer fix in particular may surface previously hidden issues in recursive functions.