This release features several major and long-awaited changes:
- It is now possible to access dynamic data (arrays, strings, etc) returned by function calls.
- You can specify error reason strings for revert and require (support by tooling is still pending).
- We added the global functions abi.encode(), abi.encodePacked(), abi.encodeWithSelector() and abi.encodeWithSignature() which expose the ABI encoding functions and each return a bytes value.
- Constructors should now be defined using constructor(uint arg1, uint arg2) { ... } to make them stand out and avoid bugs when contracts are renamed but not their constructors.
- Some array operations got cheaper, especially the push function and initialization of memory arrays.
A big thank you to all contributors who helped make this release possible!
Download the new version of Solidity here.