{Solidity:log}
Solidity 0.4.15 Release Announcement
Posted by Solidity Team on August 8, 2017
This is mainly a bugfix release that corrects a problem with the return value of the low-level delegatecall function and removes some invalid warning messages. Features: Type Checker: Show unimplemented function if trying to instantiate an abstract class. Bugfixes: Code Generator: .delegatecall() should always return execution outcome. Code Generator: Provide "new account gas" for low-level callcode and delegatecall. Type Checker: Constructors must be implemented if declared. Type Checker: Disallow the .gas() modifier on ecrecover, sha256 and ripemd160. Type Checker: Do not mark overloaded functions as shadowing other functions. Type...
Read moreSolidity 0.4.14 Release Announcement
Posted by Solidity Team on July 31, 2017
This release contains several new features and bugfixes and also an important security fix: The ecrecover function can be forced to return invalid data, which can be used to bypass authentication in very special circumstances. Features: 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...
Read moreSolidity 0.4.13 Release Announcement
Posted by Solidity Team on July 6, 2017
This is a small bugfix release that fixes several trivial but very annoying bugs that were introduced with 0.4.12. We also deprecate some old features in preparation of the breaking release 0.5.0. Features: 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. Bugfixes: Code Generator: Correctly unregister modifier variables. Compiler Interface: Only output AST if analysis was successful. Error Output: Do not omit the error type. A big thank you...
Read moreSolidity 0.4.12 Release Announcement
Posted by Solidity Team on July 3, 2017
This release introduces the AST export, solidifies inline assembly, introduces some more warnings and fixes several bugs. Manual jumps in assembly are deprecated in favour of the structured constructs switch, for and function calls also to provide better portability in the future. Features: 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...
Read moreSolidity Optimizer Bug
Posted by Martin Swende on May 3, 2017
This post was originally published on the Ethereum blog. A bug in the Solidity optimizer was reported through the Ethereum Foundation Bounty program, by Christoph Jentzsch. This bug is patched as of 2017-05-03, with the release of Solidity 0.4.11. Background The bug in question concerned how the optimizer optimizes on constants in the byte code. By "byte code constants", we mean anything which is PUSHed on the stack (not to be confused with Solidity constants). For example, if the value 0xfffffffffffffffffffffffffffffffffffffffffffffffe is PUSHed,...
Read moreSolidity 0.4.11 Release Announcement
Posted by Solidity Team on May 3, 2017
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...
Read moreSolidity 0.4.10 Release Announcement
Posted by Solidity Team on March 15, 2017
This release is focused on stability and also introduces some new smart contract safety features: require, assert and transfer. Note that the new revert function will only be gas-efficient starting from homestead. Features: Add assert(condition), which throws if condition is false (meant for internal errors). Add require(condition), which throws if condition is false (meant for invalid input). Commandline interface: Do not overwrite files unless forced. Introduce .transfer(value) for sending Ether. Code generator: Support revert() to abort with rolling back, but not consuming all gas. Inline assembly: Support...
Read moreSolidity 0.4.9 Release Announcement
Posted by Solidity Team on January 31, 2017
This release fixes quite some bugs and also adds several new features. Things to look out for: To disambiguate contracts and libraries of the same name in different files, everything is now prefixed by "filename:". This applies to the compiler output, the linker input and other things. Internal exceptions are now thrown by using an invalid opcode (0xfe), manual exceptions still use an invalid jump. Features: Compiler interface: Contracts and libraries can be referenced with a file: prefix to make them unique. Compiler interface: Report source...
Read moreSolidity 0.4.8 Release Announcement
Posted by Solidity Team on January 13, 2017
Features: Optimiser: Performance improvements. Output: Print assembly in new standardized Solidity assembly format. Bugfixes: Remappings: Prefer longer context over longer prefix. Type checker, code generator: enable access to events of base contracts' names. Imports: import ".dir/a" is not a relative path. Relative paths begin with directory . or ... Type checker: disallow inheritances of different kinds (e.g. a function and a modifier) of members of the same name A big thank you to all contributors who helped make this release possible! Download the new version of Solidity here.
Read moreSolidity 0.4.7 Release Announcement
Posted by Solidity Team on December 15, 2016
Features: Bitshift operators. Type checker: Warn when msg.value is used in non-payable function. Code generator: Inject the Swarm hash of a metadata file into the bytecode. Code generator: Replace expensive memcpy precompile by simple assembly loop. Optimizer: Some dead code elimination. Bugfixes: Code generator: throw if calling the identity precompile failed during memory (array) copying. Type checker: string literals that are not valid UTF-8 cannot be converted to string type Code generator: any non-zero value given as a boolean argument is now converted into 1. AST Json Converter: replace VariableDefinitionStatement...
Read more