Skip to content
Choose a tag to compare

Version 0.6.4

@chriseth chriseth released this
Choose a tag to compare

Version 0.6.4 of Solidity fixes a bug that did not allow calling base contract functions directly, another bug that caused issues with variable scoping in try/catch and it allows for greater flexibility with regards to storage: It is now possible to set storage slots for storage reference variables from inline assembly. We expect this to allow new patterns in connection to delegatecall proxies and upgradable contracts. Please be careful when using this feature!

Language Features:

  • General: Deprecated value(...) and gas(...) in favor of {value: ...} and {gas: ...}
  • Inline Assembly: Allow assigning to _slot of local storage variable pointers.
  • Inline Assembly: Perform control flow analysis on inline assembly. Allows storage returns to be set in assembly only.

Compiler Features:

  • AssemblyStack: Support for source locations (source mappings) and thus debugging Yul sources.
  • Commandline Interface: Enable output of experimental optimized IR via --ir-optimized.


  • Inheritance: Fix incorrect error on calling unimplemented base functions.
  • Reference Resolver: Fix scoping issue following try/catch statements.
  • Standard-JSON-Interface: Fix a bug related to empty filenames and imports.
  • SMTChecker: Fix internal errors when analysing tuples.
  • Yul AST Import: correctly import blocks as statements, switch statements and string literals.

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

a3d4, Bhargava Shastry, Chris Chinchilla, Christian Parpart, Daniel Kirchner, Djordje Mijovic, Erik Kundt, Kamil Śliwak, Leonardo Alt

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