Solidity 0.5.14 sets the default EVM version to “Istanbul” and is targeted as the last release in the 0.5.x series.

The SMT checker supports constructors now and it is possible to directly translate EVM-flavoured Yul to Ewasm from the commandline interface.

Language Features:

  • Allow to obtain the selector of public or external library functions via a member .selector.
  • Parser: Allow splitting string and hexadecimal string literals into multiple parts.
  • Inline Assembly: Support constants that reference other constants.

Compiler Features:

  • Commandline Interface: Allow translation from yul / strict assembly to EWasm using solc yul yul-dialect evm machine eWasm
  • Set the default EVM version to “Istanbul”.
  • SMTChecker: Add support to constructors including constructor inheritance.
  • Yul: When compiling via Yul, string literals from the Solidity code are kept as string literals if every character is safely printable.
  • Yul Optimizer: Perform loop-invariant code motion.

Bugfixes:

  • SMTChecker: Fix internal error when using abi.decode.
  • SMTChecker: Fix internal error when using arrays or mappings of functions.
  • SMTChecker: Fix internal error in array of structs type.
  • Version Checker: ^0 should match 0.5.0, but no prerelease.
  • Yul: Consider infinite loops and recursion to be not removable.

Build System:

  • Update to emscripten version 1.39.3.

A big thank you to all contributors who helped make this release possible!

Download the new version of Solidity here.