This release fixes a bug in the optimizer (more about this on the blog), introduces the standard JSON interface, adds interface contracts and implements some additional safety checks.
The standard JSON interface provides a unified way to invoke the Solidity compiler in order to ease cross-platform adoption and compilation verification.
Features:
- Implement the Standard JSON Input / Output API
- Support interface contracts.
- C API (jsonCompiler): Add the compileStandard() method to process a Standard JSON I/O.
- Commandline interface: Add the standard-json parameter to process a Standard JSON I/O.
- Commandline interface: Support allow-paths to define trusted import paths. Note: the path(s) of the supplied source file(s) is always trusted.
- Inline Assembly: Storage variable access using _slot and _offset suffixes.
- Inline Assembly: Disallow blocks with unbalanced stack.
- Static analyzer: Warn about statements without effects.
- Static analyzer: Warn about unused local variables, parameters, and return parameters.
- Syntax checker: issue deprecation warning for unary '+'
Bugfixes:
- Assembly output: Implement missing AssemblyItem types.
- Compiler interface: Fix a bug where source indexes could be inconsistent between Solidity compiled with different compilers (clang vs. gcc) or compiler settings. The bug was visible in AST and source mappings.
- Gas Estimator: Reflect the most recent fee schedule.
- Type system: Contract inheriting from base with unimplemented constructor should be abstract.
- Optimizer: Number representation bug in the constant optimizer fixed.
A big thank you to all contributors who helped make this release possible!
Download the new version of Solidity here.