Version 0.5.13
Solidity 0.5.13 provides Istanbul-EVM compatibility (default is still set to Petersburg), is the first version to generate Ethereum-Webassembly (EWasm) binary output (not fully working yet, though), improves the developer experience by listing potential overloads when resolution fails and can output the layout of the storage variables of a contract. As with all other releases, the coverage of the SMT checker is further improved.
Language Features:
- Allow to obtain the address of a linked library with
address(LibraryName)
.
Compiler Features:
- Code Generator: Use SELFBALANCE opcode for
address(this).balance
if using Istanbul EVM. - EWasm: Experimental EWasm binary output via
--ewasm
and as documented in standard-json. - SMTChecker: Add break/continue support to the CHC engine.
- SMTChecker: Support assignments to multi-dimensional arrays and mappings.
- SMTChecker: Support inheritance and function overriding.
- Standard JSON Interface: Output the storage layout of a contract when artifact
storageLayout
is requested. - TypeChecker: List possible candidates when overload resolution fails.
Bugfixes:
- Code Generator: Fixed a faulty assert that would wrongly trigger for array sizes exceeding unsigned integer.
- SMTChecker: Fix internal error when accessing indices of fixed bytes.
- SMTChecker: Fix internal error when using function pointers as arguments.
- SMTChecker: Fix internal error when implicitly converting string literals to fixed bytes.
- Type Checker: Disallow constructor of the same class to be used as modifier.
- Type Checker: Treat magic variables as unknown identifiers in inline assembly.
We especially thank all the contributors that made this release possible:
Alex Beregszaszi, Alexander Arlt, Bhargava Shastry, Chris Chinchilla, Christian Parpart, Daniel Kirchner, Erik Kundt, Gaith Hallak, hellraiserinchief , Henry Lee, Jochem Brouwer, Leonardo Alt, Mathias Baumann
If you want to perform a source build, please only use solidity_0.5.13.tar.gz and not the zip provided by github directly.