Version 0.4.12
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.
We especially thank all our open source community contributors:
Alexey Alexeyeff, Andre Miras, Ben Che, benjaminion, Dillon Arevalo, Edward Ruchevits, Erik Quenon Steggall, ethers, Federico Bond, gregg dourgarian, James Ray, Jonathan Brown, Julius Faber, Lefteris Karapetsas, Marius Kjærstad, Micah Zoltu, Paul Stadig, RJ Catalano, Rhett Aultman, Ron Gross, seusher and Travis Jacobs.
If you want to perform a source build, please only use solidity_0.4.12.tar.gz and not the zip provided by github directly.