This release introduces the AST export, solidifies inline assembly, introduces some more warnings and fixes several bugs.
Manual jumps in assembly are deprecated in favour of the structured constructs switch
, for
and function calls also to provide better portability in the future.
Features:
- Assembly: Add
CREATE2
(EIP86),STATICCALL
(EIP214),RETURNDATASIZE
andRETURNDATACOPY
(EIP211) instructions. - Assembly: Display auxiliary data in the assembly output.
- Assembly: Renamed
SHA3
toKECCAK256
. - AST: export all attributes to JSON format.
- C API (
jsonCompiler
): Use the Standard JSON I/O internally. - Code Generator: Added the Whiskers template system.
- Inline Assembly:
for
andswitch
statements. - Inline Assembly: Function definitions and function calls.
- Inline Assembly: Introduce
keccak256
as an opcode.sha3
is still a valid alias. - Inline Assembly: Present proper error message when not supplying enough arguments to a functional instruction.
- Inline Assembly: Warn when instructions shadow Solidity variables.
- Inline Assembly: Warn when using
jump
s. - Remove obsolete Why3 output.
- Type Checker: Enforce strict UTF-8 validation.
- Type Checker: Warn about copies in storage that might overwrite unexpectedly.
- Type Checker: Warn about type inference from literal numbers.
- Static Analyzer: Warn about deprecation of
callcode
.
Bugfixes:
- Assembly: mark
MLOAD
to have side effects in the optimiser. - Code Generator: Fix ABI encoding of empty literal string.
- Code Generator: Fix negative stack size checks.
- Code generator: Use
REVERT
instead ofINVALID
for generated input validation routines. - Inline Assembly: Enforce function arguments when parsing functional instructions.
- Optimizer: Disallow optimizations involving
MLOAD
because it changesMSIZE
. - Static Analyzer: Unused variable warnings no longer issued for variables used inside inline assembly.
- Type Checker: Fix address literals not being treated as compile-time constants.
- Type Checker: Fixed crash concerning non-callable types.
- Type Checker: Fixed segfault with constant function parameters
- Type Checker: Disallow comparisons between mapping and non-internal function types.
- Type Checker: Disallow invoking the same modifier multiple times.
- Type Checker: Do not treat strings that look like addresses as addresses.
- Type Checker: Support valid, but incorrectly rejected UTF-8 sequences.
A big thank you to all contributors who helped make this release possible!
Download the new version of Solidity here.