github ethereum/solidity v0.8.29
Version 0.8.29

23 hours ago

Introducing the newest version of the Solidity Compiler!

We are excited to announce the release of the Solidity Compiler v0.8.29.

This latest version of the compiler brings support for EVM Object Format (experimental), Storage Layout Specifiers, and more!

Changelog

Language Features:

  • Allow relocating contract storage to an arbitrary location.

Compiler Features:

  • Error Reporting: Errors reported during code generation now point at the location of the contract when more fine-grained location is not available.
  • ethdebug: Experimental support for instructions and source locations.
  • EVM: Support for the EVM version "Osaka".
  • EVM Assembly Import: Allow enabling opcode-based optimizer.
  • General: The experimental EOF backend implements a subset of EOF sufficient to compile arbitrary high-level Solidity syntax via IR with optimization enabled.
  • SMTChecker: Support block.blobbasefee and blobhash.
  • SMTChecker: The option --model-checker-print-query no longer requires --model-checker-solvers smtlib2.
  • SMTChecker: Z3 is now a runtime dependency, not a build dependency (except for emscripten build).
  • Yul Parser: Make name clash with a builtin a non-fatal error.

Bugfixes:

  • Commandline Interface: Report StackTooDeep errors in compiler mode as proper errors instead of printing diagnostic information meant for internal compiler errors.
  • Error Reporting: Fix error locations not being shown for source files with empty names.
  • General: Fix internal compiler error when requesting IR AST outputs for interfaces and abstract contracts.
  • Metadata: Fix custom cleanup sequence missing from metadata when other optimizer settings have default values.
  • SMTChecker: Fix internal compiler error when analyzing overflowing expressions or bitwise negation of unsigned types involving constants.
  • SMTChecker: Fix reporting on targets that are safe in the context of one contract but unsafe in the context of another contract.
  • SMTChecker: Fix SMT logic error when analyzing cross-contract getter call with BMC.
  • SMTChecker: Fix SMT logic error when contract deployment involves string literal to fixed bytes conversion.
  • SMTChecker: Fix SMT logic error when external call has extra effectless parentheses.
  • SMTChecker: Fix SMT logic error when initializing a fixed-sized-bytes array using string literals.
  • SMTChecker: Fix SMT logic error when translating invariants involving array store and select operations.
  • SMTChecker: Fix wrong encoding of string literals as arguments of ecrecover precompile.
  • Standard JSON Interface: Fix generatedSources and sourceMap being generated internally even when not requested.
  • TypeChecker: Fix spurious compilation errors due to incorrect computation of contract storage size which erroneously included transient storage variables.
  • Yul: Fix internal compiler error when a code generation error should be reported instead.
  • Yul Optimizer: Fix failing debug assertion due to dereferencing of an empty optional value.

Build system:

  • Linux release builds are fully static again and no longer depend on glibc.
  • Switch from C++17 to C++20 as the target standard.

Solc-Js:

  • The wrapper now requires at least nodejs v12.

We would especially like to thank all the contributors that made this release possible:
Alexander Arlt, chloefeal, clonker, comfsrt, Cypher Pepe, Daniel Kirchner, DaniPopes, dxsullivan, ericlehong, Fallengirl, flylai, FT, fuder.eth, Gaetan Lepage, gmh5225, haoyang9804, Hopium, Igor Żuk, imilygathia, irreduciblen, Jeff Wentworth, Kamil Śliwak, kilavvy, leopardracer, Marco, Martin Blicha, Matheus Aguiar, Maxim Evtush, monem, Nikola Matić, Noisy, piguagua, PixelPilot, planetBoy, r0qs, RiceChuan, rodiazet, Rudko Hanna, santamasa, Sebastian Miasojed, Skyge, Skylar Ray, sukey2008, Tran Quang Loc, Ustas, Vishwa Mehta, xiaobei0715, XxAlex74xX

Don't miss a new solidity release

NewReleases is sending notifications on new releases.