This release is focused on stability and also introduces some new smart contract safety features:
transfer. Note that the new
revert function will only be gas-efficient starting from homestead.
assert(condition), which throws if condition is false (meant for internal errors).
require(condition), which throws if condition is false (meant for invalid input).
- Commandline interface: Do not overwrite files unless forced.
.transfer(value)for sending Ether.
- Code generator: Support
revert()to abort with rolling back, but not consuming all gas.
- Inline assembly: Support
revert(EIP140) as an opcode.
- Parser: Support scientific notation in numbers (e.g.
- Type system: Support explicit conversion of external function to address.
- Type system: Warn if base of exponentiation is literal (result type might be unexpected).
- Type system: Warn if constant state variables are not compile-time constants.
- Commandline interface: Always escape filenames (replace
- Commandline interface: Do not try creating paths
- Commandline interface: Allow long library names.
- Parser: Disallow octal literals.
- Type system: Fix a crash caused by continuing on fatal errors in the code.
- Type system: Disallow compound assignment for tuples.
- Type system: Detect cyclic dependencies between constants.
- Type system: Disallow arrays with negative length.
- Type system: Fix a crash related to invalid binary operators.
- Type system: Disallow
vardeclaration with empty tuple type.
- Type system: Correctly convert function argument types to pointers for member functions.
- Type system: Move privateness of constructor into AST itself.
- Inline assembly: Charge one stack slot for non-value types during analysis.
- Assembly output: Print source location before the operation it refers to instead of after.
- Optimizer: Stop trying to optimize tricky constants after a while.
A big thank you to all contributors who helped make this release possible!
Download the new version of Solidity here.