Solidity v0.8.35 is out!
This release introduces Solidity’s first comptime builtin, formalizes how experimental features are exposed behind a new --experimental flag, and ships an experimental SSA CFG code generator targeting stack-too-deep and slow compilation in the IR pipeline.
Notable features:
-
erc7201is the first comptime builtin in Solidity. It computes the base slot of an ERC-7201 namespaced storage layout from a namespace string, and its result is usable wherever a comptime expression is required, e.g. as the base slot in alayout atspecifier. -
A new
--experimentalflag formalizes the experimental feature lifecycle. Using any in-development feature now requires--experimental(orsettings.experimentalin Standard JSON), and a new docs page lists what’s currently experimental. -
The first major feature under the new experimental lifecycle is an SSA CFG code generator, a new EVM backend for the IR pipeline. The main motivations are stack-too-deep errors and slow compilation, both long-standing pain points. Enable with
--experimental --via-ssa-cfg. -
v0.8.35 continues the 0.9.0 deprecation work started in 0.8.31, this time warning about identifiers that will be reserved as keywords in 0.9.0:
- Solidity:
at,error,layout,leave,super,this,transient - Yul: a list of upcoming Yul builtins that will become Yul reserved identifiers.
- Solidity:
-
Bugfix: in the IR pipeline (
--via-ir),--revert-strings stripwas over-stripping the custom-error argument ofrequire(condition, CustomError(...)). A failedrequirewould revert with empty error data instead of the encoded custom error. Fixed in 0.8.35.
You can read the full release announcement on our blog: Solidity 0.8.35 Release Announcement | Solidity Programming Language
Users can download the new version of Solidity Compiler from GitHub: Release Version 0.8.35 · argotorg/solidity · GitHub
And lastly, a big thank you to all the contributors who helped make this release possible! ![]()