Solidity 0.8.35
Overview
The Solidity team has released version 0.8.35 of the Solidity Compiler, introducing a new builtin for ERC-7201 storage namespace computation and several compiler infrastructure improvements. This release also expands the experimental mode framework and adds future-keyword warnings.
New Language Features
- ERC-7201 Builtin — A new builtin function computes the base slot of a storage namespace using the erc7201 formula defined in ERC-7201, simplifying storage layout management in upgradeable contracts.
- Future Keyword Warnings — The Name Resolver now warns about identifiers selected for future promotion to Solidity or Yul keywords, including
at,error,layout,leave,super,transient, andthis. - Yul Reserved Identifiers — The Yul Analyzer warns about identifiers reserved for future use such as
basefee,blobbasefee,blobhash,clz,leave,memoryguard,mcopy,prevrandao,tload, andtstore.
Compiler Features
- Experimental Flag — A new
--experimentalflag is now required to enable experimental mode, replacing the previous implicit opt-in mechanism. - SSA CFG Codegen — The SSA-based control-flow-graph code generation pipeline is introduced as an experimental feature, paving the way for improved optimization passes.
- Granular ETHDebug Outputs — The deprecated
--ethdebugand--ethdebug-runtimeoptions are replaced with more granular--ethdebug-resources,--ethdebug-compilation,--ethdebug-program, and--ethdebug-program-runtime. - Experimental EVM Version — An experimental EVM version
@futureis introduced for testing upcoming EVM features. - Deprecated Assembly Input Removed — The CLI no longer allows selecting the deprecated assembly input mode via
--assemble.
Performance and Internals
- Sanity Check Optimization — Performance of sanity checks throughout the compiler implementation has been improved.
- Experimental Mode Metadata — The state of experimental mode is now stored in both JSON and CBOR metadata, broadening the existing
experimentalfield semantics. - Restricted Experimental Features — All existing experimental features (generic-solidity, lsp, ethdebug, eof, evm, ast-import, evmasm-import, ir-ast, ssa-cfg) are now restricted to experimental mode only.
Solidity 0.8.35 is available now via the official installer, solc-bin, or Docker. Full release notes are available on the Solidity blog and the GitHub releases page.