Since the next release is 0.4.12 and 13/14 are numbers with specific meaning in the western or eastern side of the globe it may make sense doing the breaking 0.5.0 release next.
Yes, let's start work on 0.5.0:
https://github.com/ethereum/solidity/issues?q=is%3Aissue+is%3Aopen+label%3A%22breaking+for+0.5.0%22
On the other hand: I want to avoid having such a gigantic release cycle again. Let's either not merge breaking stuff or merge it into a different branch, so that we are still able to make a release every week or every second week if needed.
@chriseth I think we agreed to merge and enable some of these changes with pragma experimental v0.5.0;
Is there a link for 0.5.0 experimental documentation?
No, we do not yet have documentation for it.
Here is exhaustive documentation for v0.5.0 so far. Maybe you can tell me a good place to put this.
Unary + is now disallowed (formerly deprecated)
// THIS WONT COMPILE WITH V050
pragma solidity ^0.4.19;
contract Foo {
function() public {
var a = +5;
}
}
callcode is now disallowed (formerly deprecated)
// THIS WONT COMPILE WITH V050
pragma solidity ^0.4.19;
contract D {
function callcode(address _contract, bytes4 _functionHash, uint _callData) public {
require(_contract.delegatecall(_functionHash, _callData));
}
}
view keyword is now enforced
// THIS WONT COMPILE WITH V050
pragma solidity ^0.4.19;
contract A {
string a;
function aView() public view {
a = "yo";
}
}
Storage location must be specified as either "memory" or "storage".
(Will has no idea what this means)
Fallback function must be declared as external
// THIS WONT COMPILE WITH V050
pragma solidity ^0.4.19;
contract A {
function() public payable {
}
}
Adjusts gas sent for calls to handle EIP-150
Do not populate address members into the contract (Will has no idea what this means)
did we not choose to go with a keyword for fallback functions??
@OTTO there was no clear conclusion about how to name the actual fallback function (function selector set, but does not match any function in the contract) and the function that is called when ether is sent and not data. It will probably go into 0.6.0.
@axic what is this issue about, i.e. when can it be closed? Doesn't the project cover this?
I don't remember, this was prior the introduction of the project feature.
Most helpful comment
Here is exhaustive documentation for v0.5.0 so far. Maybe you can tell me a good place to put this.
Unary + is now disallowed (formerly deprecated)
callcodeis now disallowed (formerly deprecated)viewkeyword is now enforcedStorage location must be specified as either "memory" or "storage".
Fallback function must be declared as
externalAdjusts gas sent for calls to handle EIP-150
Do not populate address members into the contract (Will has no idea what this means)