github ethereum/solidity v0.8.13
Version 0.8.13

latest releases: v0.8.28, v0.8.27, v0.8.26...
2 years ago

Solidity v0.8.13 fixes an important bug related to abi.encodeCall, extends the using for directive and implements "go to definition" for the language server.

Furthermore, compiling via the new Yul IR pipeline is now considered production ready.

For more details, see the release announcement.

Important Bugfixes:

  • Code Generator: Correctly encode literals used in abi.encodeCall in place of fixed bytes arguments.

Language Features:

  • General: Allow annotating inline assembly as memory-safe to allow optimizations and stack limit evasion that rely on respecting Solidity's memory model.
  • General: using M for Type; is allowed at file level and M can now also be a brace-enclosed list of free functions or library functions.
  • General: using ... for T global; is allowed at file level where the user-defined type T has been defined, resulting in the effect of the statement being available everywhere T is available.

Compiler Features:

  • Commandline Interface: Allow the use of --via-ir in place of --experimental-via-ir.
  • Compilation via Yul IR is no longer marked as experimental.
  • JSON-AST: Added selector field for errors and events.
  • LSP: Implements goto-definition.
  • Peephole Optimizer: Optimize comparisons in front of conditional jumps and conditional jumps across a single unconditional jump.
  • Yul EVM Code Transform: Avoid unnecessary pops on terminating control flow.
  • Yul Optimizer: Remove sstore and mstore operations that are never read from.

Bugfixes:

  • General: Fix internal error for locales with unusual capitalization rules. Locale set in the environment is now completely ignored.
  • Type Checker: Fix incorrect type checker errors when importing overloaded functions.
  • Yul IR Code Generation: Optimize embedded creation code with correct settings. This fixes potential mismatches between the constructor code of a contract compiled in isolation and the bytecode in type(C).creationCode, resp. the bytecode used for new C(...).

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

a3d4, Abdul Karim Moro, Alexander Arlt, Bhargava Shastry, Callis Ezenwaka, Christian Parpart, Daniel Kirchner, david-k, franzihei, hrkrshnn, Kamil Śliwak, kanedaaaa, Leo Alt, Marenz, Mate Soos, Nishant Sachdeva, Paarth Madan, Richie, Sleepy, Tyler, wechman, Wes Bouaziz,

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

Don't miss a new solidity release

NewReleases is sending notifications on new releases.