This is a small bugfix release that also includes loop support for the SMT solver and some improvements to the Yul optimizer. The reason for the smaller feature set is that we are mainly working on the upcoming 0.6.0 release.
- Type Checker: Allow assignment to external function arguments except for reference types.
- ABI Output: Change sorting order of functions from selector to kind, name.
- Optimizer: Add rule that replaces the BYTE opcode by 0 if the first argument is larger than 31.
- SMTChecker: Add loop support to the CHC engine.
- Yul Optimizer: Take side-effect-freeness of user-defined functions into account.
- Yul Optimizer: Remove redundant mload/sload operations.
- Code Generator: Fix internal error when popping a dynamic storage array of mappings.
- Name Resolver: Fix wrong source location when warning on shadowed aliases in import declarations.
- Scanner: Fix multi-line natspec comment parsing with triple slashes when file is encoded with CRLF instead of LF.
- Type System: Fix arrays of recursive structs.
- Yul Optimizer: Fix reordering bug in connection with shifted one and mul/div-instructions in for loop conditions.
We especially thank all the contributors that made this release possible:
Alexander Arlt, Alex Beregszaszi, Ayrat Badykov, Balaji Pachai, Bhargava Shastry, Chris Chinchilla, Christian Parpart, Crawford Leeds, Daniel Kirchner, Dimitry, Erik Kundt, Flash Sheridan, Gois, Lauri Peltonen, Leo Arias, Leonardo Alt, Mathias Baumann, Micah Zoltu, mingchuan, rocky (supported by ConsenSys), Solexplorer,
If you want to perform a source build, please only use solidity_0.5.12.tar.gz and not the zip provided by github directly.