diff options
Diffstat (limited to 'Changelog.md')
-rw-r--r-- | Changelog.md | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/Changelog.md b/Changelog.md index 98528893..0015c949 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,56 @@ +### 0.4.22 (2018-04-16) + +Features: + * Code Generator: Initialize arrays without using ``msize()``. + * Code Generator: More specialized and thus optimized implementation for ``x.push(...)`` + * Commandline interface: Error when missing or inaccessible file detected. Suppress it with the ``--ignore-missing`` flag. + * Constant Evaluator: Fix evaluation of single element tuples. + * General: Add encoding routines ``abi.encodePacked``, ``abi.encode``, ``abi.encodeWithSelector`` and ``abi.encodeWithSignature``. + * General: Add global function ``gasleft()`` and deprecate ``msg.gas``. + * General: Add global function ``blockhash(uint)`` and deprecate ``block.hash(uint)``. + * General: Allow providing reason string for ``revert()`` and ``require()``. + * General: Introduce new constructor syntax using the ``constructor`` keyword as experimental 0.5.0 feature. + * General: Limit the number of errors output in a single run to 256. + * General: Support accessing dynamic return data in post-byzantium EVMs. + * Inheritance: Error when using empty parentheses for base class constructors that require arguments as experimental 0.5.0 feature. + * Inheritance: Error when using no parentheses in modifier-style constructor calls as experimental 0.5.0 feature. + * Interfaces: Allow overriding external functions in interfaces with public in an implementing contract. + * Optimizer: Optimize ``SHL`` and ``SHR`` only involving constants (Constantinople only). + * Optimizer: Remove useless ``SWAP1`` instruction preceding a commutative instruction (such as ``ADD``, ``MUL``, etc). + * Optimizer: Replace comparison operators (``LT``, ``GT``, etc) with opposites if preceded by ``SWAP1``, e.g. ``SWAP1 LT`` is replaced with ``GT``. + * Optimizer: Optimize across ``mload`` if ``msize()`` is not used. + * Static Analyzer: Error on duplicated super constructor calls as experimental 0.5.0 feature. + * Syntax Checker: Issue warning for empty structs (or error as experimental 0.5.0 feature). + * Syntax Checker: Warn about modifiers on functions without implementation (this will turn into an error with version 0.5.0). + * Syntax Tests: Add source locations to syntax test expectations. + * Type Checker: Improve documentation and warnings for accessing contract members inherited from ``address``. + + +Bugfixes: + * Code Generator: Allow ``block.blockhash`` without being called. + * Code Generator: Do not include internal functions in the runtime bytecode which are only referenced in the constructor. + * Code Generator: Properly skip unneeded storage array cleanup when not reducing length. + * Code Generator: Bugfix in modifier lookup in libraries. + * Code Generator: Implement packed encoding of external function types. + * Code Generator: Treat empty base constructor argument list as not provided. + * Code Generator: Properly force-clean bytesXX types for shortening conversions. + * Commandline interface: Fix error messages for imported files that do not exist. + * Commandline interface: Support ``--evm-version constantinople`` properly. + * DocString Parser: Fix error message for empty descriptions. + * Gas Estimator: Correctly ignore costs of fallback function for other functions. + * JSON AST: Remove storage qualifier for type name strings. + * Parser: Fix internal compiler error when parsing ``var`` declaration without identifier. + * Parser: Fix parsing of getters for function type variables. + * Standard JSON: Support ``constantinople`` as ``evmVersion`` properly. + * Static Analyzer: Fix non-deterministic order of unused variable warnings. + * Static Analyzer: Invalid arithmetic with constant expressions causes errors. + * Type Checker: Fix detection of recursive structs. + * Type Checker: Fix asymmetry bug when comparing with literal numbers. + * Type System: Improve error message when attempting to shift by a fractional amount. + * Type System: Make external library functions accessible. + * Type System: Prevent encoding of weird types. + * Type System: Restrict rational numbers to 4096 bits. + ### 0.4.21 (2018-03-07) Features: |