Skip to content

Elementrem Solidity Programming Language 0.4.18

Latest
Compare
Choose a tag to compare
@elementrem elementrem released this 07 Nov 20:49
01dcd70
  • 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 '+'
  • Assembly: Add CREATE2 (EIP86), STATICCALL (EIP214), RETURNDATASIZE and RETURNDATACOPY (EIP211) instructions.
  • Assembly: Display auxiliary data in the assembly output.
  • Assembly: Renamed SHA3 to KECCAK256.
  • 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 and switch 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 jumps.
  • 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.
  • Syntax Checker: Deprecated throw in favour of require(), assert() and revert().
  • Type Checker: Warn if a local storage reference variable does not explicitly use the keyword storage.
  • C API (jsonCompiler): Export the license method.
  • Code Generator: Optimise the fallback function, by removing a useless jump.
  • Inline Assembly: Show useful error message if trying to access calldata variables.
  • Inline Assembly: Support variable declaration without initial value (defaults to 0).
  • Metadata: Only include files which were used to compile the given contract.
  • Type Checker: Disallow value transfers to contracts without a payable fallback function.
  • Type Checker: Include types in explicit conversion error message.
  • Type Checker: Raise proper error for arrays too large for ABI encoding.
  • Type checker: Warn if using this in a constructor.
  • Type checker: Warn when existing symbols, including builtins, are overwritten.
  • Type Checker: Show unimplemented function if trying to instantiate an abstract class.
  • ABI JSON: Include new field stateMutability with values pure, view, nonpayable and payable.
  • Analyzer: Experimental partial support for Z3 SMT checker ("SMTChecker").
  • Build System: Shared libraries (libdevcore, libevmasm, libsolidity and liblll) are no longer produced during the build process.
  • Code generator: Experimental new implementation of ABI encoder that can encode arbitrarily nested arrays ("ABIEncoderV2")
  • Metadata: Store experimental flag in metadata CBOR.
  • Parser: Display previous visibility specifier in error if multiple are found.
  • Parser: Introduce pure and view keyword for functions, constant remains an alias for view and pureness is not enforced yet, so use with care.
  • Static Analyzer: Warn about large storage structures.
  • Syntax Checker: Support pragma experimental ; to turn on experimental features.
  • Type Checker: More detailed error message for invalid overrides.
  • Type Checker: Warn about shifting a literal.
  • Assembly Parser: Support multiple assignment (x, y := f()).
  • Code Generator: Keep a single copy of encoding functions when using the experimental "ABIEncoderV2".
  • Code Generator: Partial support for passing structs as arguments and return parameters (requires pragma experimental ABIEncoderV2; for now).
  • General: Support pragma experimental "v0.5.0"; to activate upcoming breaking changes.
  • General: Added .selector member on external function types to retrieve their signature.
  • Optimizer: Add new optimization step to remove unused JUMPDESTs.
  • Static Analyzer: Warn when using deprecated builtins sha3 and suicide
    (replaced by keccak256 and selfdestruct, introduced in 0.4.2 and 0.2.0, respectively).
  • Syntax Checker: Warn if no visibility is specified on contract functions.
  • Type Checker: Display helpful warning for unused function arguments/return parameters.
  • Type Checker: Do not show the same error multiple times for events.
  • Type Checker: Greatly reduce the number of duplicate errors shown for duplicate constructors and functions.
  • Type Checker: Warn on using literals as tight packing parameters in keccak256, sha3, sha256 and ripemd160.
  • Type Checker: Enforce view and pure.
  • Type Checker: Enforce view / constant with error as experimental 0.5.0 feature.
  • Type Checker: Enforce fallback functions to be external as experimental 0.5.0 feature.
  • Code Generator: Always use all available gas for calls as experimental 0.5.0 feature
    (previously, some amount was retained in order to work in pre-Tangerine-Whistle
    EVM versions)
  • Parser: Better error message for unexpected trailing comma in parameter lists.
  • Standard JSON: Support the outputSelection field for selective compilation of supplied sources.
  • Syntax Checker: Unary + is now a syntax error as experimental 0.5.0 feature.
  • Type Checker: Disallow non-pure constant state variables as experimental 0.5.0 feature.
  • Type Checker: Do not add members of address to contracts as experimental 0.5.0 feature.
  • Type Checker: Force interface functions to be external as experimental 0.5.0 feature.
  • Type Checker: Require storage or memory keyword for local variables as experimental 0.5.0 feature.

Binaries
https://github.com/elementrem/solc-bin/tree/master/bin