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... [Read More]
Solidity 0.4.7 Release Announcement
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... [Read More]
Solidity 0.4.6 Release Announcement
Bugfixes: Optimizer: Knowledge about state was not correctly cleared for JUMPDESTs Swarm hash of js compiler: bzzr:/b873fa122233c91b1531527c390f6ca49df4d2a2c5f75706f4b612a0c813cb6a A big thank you to all contributors who helped make this release possible! Download the new version of Solidity here.
Solidity 0.4.5 Release Announcement
This Solidity release adds function types. Use-cases include supplying callbacks for asynchronous or off-chain operations or generic library features (for example map-reduce-style programming). This release also improves the safety of enums and sending Ether to a contract constructor. Features: Function types Do-while loops: support for a do <block> while (<expr>); control structure Inline assembly: support invalidJumpLabel as a jump label. Type checker: now more eagerly searches for a common type of an inline array with mixed types Code generator: generates... [Read More]
Analysis of Storage Corruption Bug
This post was originally published on the Ethereum blog. This blog post provides an update on our findings following the discovery of the storage corruption bug last week. In summary, the bug was much less severe than we initially thought. The small number of affected contracts we found is either only exploitable by the owner, or the exploit can only cause a disruption in the user interface and not in the actual contract logic. All exploitable contracts/dapps we reviewed can... [Read More]
Solidity 0.4.4 Release Announcement
This is a bugfix release that fixes a storage corruption that appears when multiple variables are stored in the same slot (details). Bugfixes: Type checker: forbid signed exponential that led to an incorrect use of EXP opcode. Code generator: properly clean higher order bytes before storing in storage. A big thank you to all contributors who helped make this release possible! Download the new version of Solidity here.
Security Alert: Variables can be overwritten in storage
This post was originally published on the Ethereum blog. Summary: In some situations, variables can overwrite other variables in storage. **Affected Solidity compiler versions: **0.1.6 to 0.4.3 (including 0.4.4 pre-release versions) Detailed description: Storage variables that are smaller than 256 bits are packed together into the same 256 bit slot if they can fit. If a value larger than what is allowed by the type is assigned to the first variable, that value will overwrite the second variable. This means... [Read More]
Solidity 0.4.3 Release Announcement
This is a real bugfix release as you can see from the changelog below. The most important fix concerns the optimizer which generated invalid code connected to the SHA3 opcode in certain situations. Features: Inline assembly: support both suicide and selfdestruct opcodes (note: suicide is deprecated). Inline assembly: issue warning if stack is not balanced after block. Include keccak256() as an alias to sha3(). Support shifting constant numbers. Bugfixes: Commandline interface: Disallow unknown options in solc. Name resolver: Allow inheritance... [Read More]
Solidity 0.4.2 Release Announcement
Bugfixes: Code Generator: Fix library functions being called from payable functions. Type Checker: Fixed a crash about invalid array types. Code Generator: Fixed a call gas bug that became visible after version 0.4.0 for calls where the output is larger than the input. A big thank you to all contributors who helped make this release possible! Download the new version of Solidity here.
Solidity 0.4.1 Release Announcement
This is a bugfix release that fixes an error when compiling libraries with the latest version 0.4.0. A big thank you to all contributors who helped make this release possible! Download the new version of Solidity here.