Skip to content

Version 0.8.15

Compare
Choose a tag to compare
@ekpyron ekpyron released this 15 Jun 14:54
· 2574 commits to develop since this release
e14f271

This release fixes two important bugs and also contains other minor bug fixes and features.

For details, please see the release announcement.

Important Bugfixes:

  • Code Generation: Avoid writing dirty bytes to storage when copying bytes arrays.
  • Yul Optimizer: Keep all memory side-effects of inline assembly blocks.

Language Features:

  • Add E.selector for a non-anonymous event E to access the 32-byte selector topic.

Compiler Features:

  • LSP: Add rudimentary support for semantic highlighting.
  • Type Checker: Warn about assignments involving multiple pushes to storage bytes that may invalidate references.
  • Yul Optimizer: Improve inlining heuristics for via IR code generation and pure Yul compilation.

Bugfixes:

  • ABI Encoder: When encoding an empty string coming from storage do not add a superfluous empty slot for data.
  • Common Subexpression Eliminator: Process assembly items in chunks with maximum size of 2000. It helps to avoid extremely time-consuming searches during code optimization.
  • Yul Optimizer: Do not remove returndatacopy in cases in which it might perform out-of-bounds reads that unconditionally revert as out-of-gas. Previously, any
    returndatacopy that wrote to memory that was never read from was removed without accounting for the out-of-bounds condition.

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

Christian Parpart, Christian Reitwiessner, Damian Wechman, Daniel Kirchner, Denis T, Dustin Alandzes, Harikrishnan Mulackal, Josep M Sobrepere, Kamil Śliwak, Matheus Aguiar, Mathias L. Baumann, Nishant Sachdeva, Prajwal Borkar, Ryan, Samuel Osewa, Saw-mon-and-Natalie, shady41, sourabh.xyz, uji, Yuri Victorovich

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