Solidity 0.3.4 Release Announcement

This release contains no changes outside of the documentation. A big thank you to all contributors who helped make this release possible! Download the new version of Solidity here.

Solidity 0.3.3 Release Announcement

This release mainly makes libraries more flexible in that it allows internal functions to be called. Features Allow internal library functions to be called (by “inlining”) Fractional/rational constants (only usable with fixed point types, which are still in progress) Inline assembly has access to internal functions (as jump labels) Running solc without arguments on a terminal will print help. Fixes Code Generation: Remove some non-determinism in code generation. Code Generation: Corrected usage of not / bnot / iszero in inline... [Read More]

Solidity 0.3.2 Release Announcement

This is mainly a bugfix release. Under the hood, we are in the process of separating the Solidity source code from the rest of the cpp-ethereum source code so that it can soon be built (and released) in isolation. Fixes: Code generation: Dynamic arrays of structs were not deleted correctly. Code generation: Static arrays in constructor parameter list were not decoded correctly. Parser: Inline assembly parser: byte opcode was unusable Error reporting: tokens for variably-sized types were not converted to... [Read More]

Solidity 0.3.1 Release Announcement

This release mainly introduces inline assembly (documentation). Inline assembly provides a way to write low-level but still well readable code. Together with the coming features of inline library functions and templates, it allows to move much of the development that had to be done in the compiler itself into libraries written in Solidity. In the future, it will be possible to introduce new versatile types that still look like builtins. Features: inline assembly Fixes: Code generation: array access with narrow... [Read More]

Solidity 0.3.0 Release Announcement

This version is synchronized to the Homestead changes on the main Ethereum network and introduces various breaking changes. BREAKING CHANGES: You should not rely on division for literals resulting in a (truncated) integer. This is still the case but will change once we implement fixed point types, i.e. in the future 1/2 == 0.5 will be true, currently we have 1/2 == 0. Note that this only applies to literals ((2 + 7) / 2) and not variables (x /... [Read More]

Solidity 0.2.2 Release Announcement

Features: Index access for types bytes1, …, bytes32 (only read access for now). Bugfixes: Type checker crash for wrong number of base constructor parameters. A big thank you to all contributors who helped make this release possible! Download the new version of Solidity here.

Solidity 0.2.1 Release Announcement

This release includes three major features and one very important bugfix in the optimizer. In some situations, the optimizer generated incorrect code. Please always test your code before you use it, unfortunately, we can never guarantee 100% correctness. We are especially grateful about the many voluntary community contributions this release received. Two fearless individuals dived deep into the solidity code and delivered two major features: Thanks a lot to @VoR0220 for the inline arrays and to @guanqun for the ternary... [Read More]

Solidity 0.2.0 Release Announcement

Features: Allocation of memory arrays using new. Binding library functions to types via using x for y Breaking Change: new ContractName.value(10)() has to be written as (new ContractName).value(10)() Added selfdestruct as an alias for suicide. Bugfixes: Constructor arguments of fixed array type were not read correctly. Memory allocation of structs containing arrays or strings. Data location for explicit memory parameters in libraries was set to storage. The two main features of this release is the ability to create memory arrays... [Read More]

Solidity 0.1.7 Release Announcement

Features: Improved error messages for unexpected tokens. Proof-of-concept transcompilation to why3 for formal verification of contracts. Bugfixes: Writing to elements of bytes or string overwrite others. Arrays (also strings) as indexed parameters of events. “Successor block not found” on Windows. Using string literals in tuples. Cope with invalid commit hash in version for libraries. Some test framework fixes on windows. A big thank you to all contributors who helped make this release possible! Download the new version of Solidity here.... [Read More]

Solidity 0.1.6 Release Announcement

Features: .push() for dynamic storage arrays. Tuple expressions ((1,2,3) or return (1,2,3);) Declaration and assignment of multiple variables (var (x,y,) = (1,2,3,4,5); or var (x,y) = f();) Destructuring assignment ((x,y,) = (1,2,3)) Handling of multiple source files in the json compiler. Bugfixes: Internal error about usage of library function with invalid types. Correctly parse Library.structType a at statement level. Correctly report source locations of parenthesized expressions (as part of “tuple” story). A big thank you to all contributors who helped... [Read More]