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.
A big thank you to all contributors who helped make this release possible!
Download the new version of Solidity here.