Solidity 0.5.0 Release Announcement

This is a major breaking release of the Solidity language and compiler that includes many new safety features. In general, programmers have to be more explicit, some weird edge-cases are removed from the language and the low-level compiler interface is much simpler. This release was long overdue and as a result has amassed an incredibly long list of changes. Please refer to the “Solidity v0.5.0 Breaking Changes” section in the documentation about a good description of what has changed and... [Read More]

Solidity Bugfix Release

This post was originally published on the Ethereum blog. The latest version 0.4.25 release of Solidity fixes two important bugs. Another important bug has already been fixed in version 0.4.22 but it was only discovered recently that the bug existed. Note that the Ethereum Foundation runs a bounty program for the code generator part of Solidity. [Read More]

Solidity 0.4.25 Release Announcement

This release fixed a cleanup error concerning the exponentiation operator. It is a bugfix-only release and does not contain any features. A more detailed description of the bugs fixed can be found on the ethereum blog. Note that nightly builds of Solidity currently contain changes unrelated to this bugfix release. A big thank you to all contributors who helped make this release possible! Download the new version of Solidity here.

Solidity 0.4.24 Release Announcement

All remaining breaking changes planned for version 0.5.0 that can be implemented in a backwards-compatible way made it into this release. Solidity can now detect uninitialized storage pointers using control-flow analysis. It is again possible to assign multiple return values from a function to newly declared variables and the SMT checker is able to work with simple storage variables. A big thank you to all contributors who helped make this release possible! Download the new version of Solidity here.

Solidity 0.4.23 Release Announcement

Bugfix release: In the previous release, it was possible to define two constructors (one using the new constructor-keyword syntax, another one with the old syntax) for a contract, but only one of them got used in the end. We also included other bugfixes. A big thank you to all contributors who helped make this release possible! Download the new version of Solidity here.

Solidity 0.4.22 Release Announcement

This release features several major and long-awaited changes: It is now possible to access dynamic data (arrays, strings, etc) returned by function calls. You can specify error reason strings for revert and require (support by tooling is still pending). We added the global functions abi.encode(), abi.encodePacked(), abi.encodeWithSelector() and abi.encodeWithSignature() which expose the ABI encoding functions and each return a bytes value. Constructors should now be defined using constructor(uint arg1, uint arg2) { ... } to make them stand out and... [Read More]

Solidity 0.4.21 Release Announcement

We again introduced several changes that are scheduled for version 0.5.0 and can be activated using pragma experimental "v0.5.0";. In this release, this pragma does not generate a warning anymore, so you can (and should) use it in production code. In addition to that, you can now specify which EVM version the contract should be compiled for. Valid values are “homestead”, “tangerineWhistle”, “spuriousDragon”, “byzantium” (the default) and “constantinople”. Depending on this setting, different opcodes will be used in some cases.... [Read More]

Solidity 0.4.20 Release Announcement

This release includes some usability and security improvements and a further evolution of the SMT component. The var keyword has been deprecated for security reasons. Significant steps were made in writing optimisation stages for the intermediate language, which will be used by the new ABI encoder to produce highly optimised output. The main goal is to have a resulting bytecode size similar to the old ABI encoder, while having more runtime checks for a stricter decoding process. This is not... [Read More]

Solidity 0.4.19 Release Announcement

In the last weeks, we have mainly been working on big internal changes. One of them is the new ABI decoder, which is still in experimental mode, but will hopefully be production-usable soon. External contributions like allowing constant variables for array lengths and improved error messages should make your life as a programmer easier. Finally, the standard-json-io-system now allows to select certain artifacts from a contract which should speed up your code-compile-test-cycle even more! Features: Code Generator: New ABI decoder... [Read More]

Solidity 0.4.18 Release Announcement

This release adds further backwards-incompatible security measures enabled via pragma experimental "v0.5.0"; and contains another important feature: You can now select to compile only certain contracts using the outputSelection field of the standard-json-io compiler interface, which should speed up tools like truffle tremendously. There are also two important bug fixes: One was an oversight in the way bytes variables are allocated in memory and can reduce the memory requirements 32-fold. The second is a security fix: In extremely specific circumstances,... [Read More]