Skip to content

Version 0.8.25

Compare
Choose a tag to compare
@nikola-matic nikola-matic released this 14 Mar 11:30
· 864 commits to develop since this release
b61c2a9

Introducing the newest version of the Solidity Compiler!

We are excited to announce the release of the Solidity Compiler Solidity v0.8.25. This release is a small one, and is mainly centered around the Dencun hard-fork that occurred yesterday. On that note, the default EVM version in the compiler is now cancun, and we've also introduced some gas savings via better exploitation of the MCOPY opcode, as well fixing an issue that could result in larger than necessary bytecode.

Changelog

Compiler Features:

  • Code Generator: Use MCOPY instead of MLOAD/MSTORE loop when copying byte arrays.
  • EVM: Set default EVM version to cancun.
  • Yul Analyzer: Emit transient storage warning only for the first occurrence of tstore.

Bugfixes:

  • Assembler: Prevent incorrect calculation of tag sizes.
  • Commandline Interface: Do not run IR pipeline when --via-ir is used but no output that depends on the IR is requested.
  • EVM Assembly Import: Fix handling of missing source locations during import.
  • SMTChecker: Ensure query is properly flushed to a file before calling solver when using SMT-LIB interface.
  • SMTChecker: Fix internal error caused by not respecting the sign of an integer type when constructing zero-value SMT expressions.
  • SMTChecker: Run Eldarica only when explicitly requested with --model-checker-solvers eld, even when it is present on the system.

We especially thank all the contributors that made this release possible:
Aditya Kode, Alexander Arlt, Bhargava Shastry, ByeongSu Go, Chomtana, Cyrus, Daniel Kirchner, Dimitris Apostolou, Jeason, Kamil Śliwak, Martin Blicha, Matheus Aguiar, Nikola Matić, Saw-mon & Natalie, Simon Perriard, Twice, Vishwa Mehta, Vojtch, minaminao, omahs, pgebal, r0qs, racerol

UPDATE 2024-03-14: The MacOS universal binary originally included here has been rebuilt and replaced due to a missing signature which made it unusable.

The SHA-256 hash of the old binary was ce09577e654628c2b4d00e66bcab7c8a4dc18c1d9812dcbab7bd8572a6d4d27e. The new one is cc3f94a70ac681b0304084acc1980aabe2a1bb3240d44ce76a8df0e1e77a2110.