Solidity v0.8.31 is out! ✨

This latest version makes Osaka the default target for the compiler, extends storage layout specifiers, brings new deprecation warnings, Linux ARM builds, and more!

Notable features:

Osaka by default

This version of the compiler brings support for the new EVM features introduced by the Fusaka network upgrade.

CLZ Opcode

The Solidity Compiler now includes support for the CLZ opcode (EIP-7939), that counts the number of leading zero bits in a 256-bit word.
Libraries such as Solady have many uses for it, and will also replace existing utilities such as Math.clz() in OpenZeppelin.

Changes to the Release Process

We have also rolled out various changes in our release process. This latest release includes:

  • Linux ARM Releases
  • Pre-releases
  • Discontinuation of PPA Releases

Constants in Storage Layout Specifiers

Version 0.8.31 of the Solidity Compiler further extends the features of storage layout specifiers. It is now possible to use constant variables in the base slot expression.

Feature Deprecations

v0.8.31 also deprecates the first batch of features scheduled for removal in the 0.9.0 breaking release, such as the removal of:

  • .send() and .transfer() Functions
  • ABI Coder V1
  • Virtual Modifiers
  • Contract Comparison Operators
  • memory-safe-assembly Special Comment

You can read the full release announcement on our blog:

Users can download the new version of Solidity Compiler from GitHub: →https://github.com/argotorg/solidity/releases/tag/v0.8.31

And lastly, a big thank you to all the contributors who helped make this release possible! :purple_heart: