Solidity - v0.8.12


Solidity v0.8.12 improves the javascript/wasm binary and fixes several bugs.

For more details, see the release announcement.

Language Features:
* General: Add equality-comparison operators for external function types.
* General: Support ContractName.functionName for abi.encodeCall, in addition to external function pointers.

Compiler Features:
* Commandline Interface: Event and error signatures are also returned when using --hashes.
* Yul Optimizer: Remove mstore and sstore operations if the slot already contains the same value.
* Yul: Emit immutable references for pure yul code when requested.

Bugfixes:
* Antlr Grammar: Allow builtin names in yulPath to support .address in function pointers.
* Code Generator: Fix internal error when accessing the members of external functions occupying more than two stack slots.
* Code Generator: Fix internal error when doing an explicit conversion from string calldata to bytes.
* Control Flow Graph: Perform proper virtual lookup for modifiers for uninitialized variable and unreachable code analysis.
* General: string.concat now properly takes strings as arguments and returns string memory. It was accidentally introduced as a copy of bytes.concat before.
* Immutables: Fix wrong error when the constructor of a base contract uses return and the derived contract contains immutable variables.
* Inheritance: Consider functions in all ancestors during override analysis.
* IR Generator: Add missing cleanup during the conversion of fixed bytes types to smaller fixed bytes types.
* IR Generator: Add missing cleanup for indexed event arguments of value type.
* IR Generator: Fix internal error when copying reference types in calldata and storage to struct or array members in memory.
* IR Generator: Fix IR syntax error when copying storage arrays of structs containing functions.
* Natspec: Fix internal error when overriding a struct getter with a Natspec-documented return value and the name in the struct is different.
* Type Checker: Fix internal error when a constant variable declaration forward references a struct.
* Yul EVM Code Transform: Improved stack shuffling in corner cases.

Solc-Js:
* The wrapper now requires at least nodejs v10.
* The code has been ported to TypeScript.

Build System:
* Emscripten builds store the embedded WebAssembly binary in LZ4 compressed format and transparently decompress on loading.

We especially thank all the contributors that made this release possible:

a3d4, Aleksey Bykhun, Amsavarthan Lv, Ayush Shukla, Bhargava Shastry, Braden Watling, Brien, Bruno Barbieri, Christian Parpart, Daniel Kirchner, Esquith Allen, Franziska Heintel, Hakeem Almidan, Harikrishnan Mulackal, joshieDo, joshuatarkwski, Kamil Śliwak, Laurent, Leo Alt, Markus Waas, Mathias L. Baumann, mejsiej, Mohamed Safouen Bouabid, Naveen Sahu, Nikita Stupin, Nishant Sachdeva, Pranay Reddy, Sean Billig, Semar Augusto, William Entriken, yatharthagoenka, Younghoon-Lee.

If you want to perform a source build, please only use solidity_0.8.12.tar.gz and not the zip provided by github directly.


Details

date
Feb. 16, 2022, 11:50 a.m.
name
Version 0.8.12
type
Patch
πŸ‘‡
Register or login to:
  • πŸ”View and search all Solidity releases.
  • πŸ› οΈCreate and share lists to track your tools.
  • 🚨Setup notifications for major, security, feature or patch updates.
  • πŸš€Much more coming soon!
Continue with GitHub
Continue with Google
or