This release mainly fixes bugs in the optimizer and in the experimental ABI encoder. For details about the bug, please see the official announcement.
Furthermore, this release also allows you to use Yul as a language option (instead of "Solidity") in the standard-json-interface.
- ABIEncoderV2: Fix bugs related to loading short value types from storage when encoding an array or struct from storage.
- ABIEncoderV2: Fix buffer overflow problem when encoding packed array from storage.
- Optimizer: Fix wrong ordering of arguments in byte optimization rule for constants.
- Function calls with named arguments now work with overloaded functions.
- Inline Assembly: Issue error when using
callvalue()inside nonpayable function (in the same way that
- Standard JSON Interface: Support "Yul" as input language.
- SMTChecker: Show callstack together with model if applicable.
- SMTChecker: Support modifiers.
- Yul Optimizer: Enable stack allocation optimization by default if Yul optimizer is active (disable in
- Code Generator: Defensively pad memory for
type(Contract).nameto multiples of 32.
- Type System: Detect and disallow internal function pointers as parameters for public/external library functions, even when they are nested/wrapped in structs, arrays or other types.
- Yul Optimizer: Properly determine whether a variable can be eliminated during stack compression pass.
- Yul / Inline Assembly Parser: Disallow more than one case statement with the same label inside a switch based on the label's integer value.
- Install scripts: Fix boost repository URL for CentOS 6.
- Soltest: Fix hex string update in soltest.
We especially thank all the contributors that made this release possible:
Alex Beregszaszi, Bhargava Shastry, Christian Parpart, Chris Ward, Constantin Kloecker, Daniel Kirchner, Erik Kundt, Leonardo Alt, Mathias Baumann, SystemGlitch, Taariq Levack
If you want to perform a source build, please only use solidity_0.5.7.tar.gz and not the zip provided by github directly.