Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Further Document the resiliency of storage usage #12547

Closed
fulldecent opened this issue Jan 17, 2022 · 5 comments
Closed

Further Document the resiliency of storage usage #12547

fulldecent opened this issue Jan 17, 2022 · 5 comments

Comments

@fulldecent
Copy link
Contributor

This extends. #5293


A commitment has been made on the resiliency of Solidity storage slot locations:

To summarize: If compiling a contract with different Solidity versions results in different storage layout, this would be a bug in the compiler. We currently have no plans to change the layout, not even in breaking releases.

https://twitter.com/ethchris/status/1073692785176444928

And this commitment is being dependent on in EIP-1967 (DRAFT).


Please document this commitment in official project documentation.

@chriseth
Copy link
Contributor

chriseth commented Feb 2, 2022

I"m sorry, but "we currently have no plans" does not sound like a commitment to me that needs documenting. What do you want to achieve and what would your proposal for a documentation update be?

@fulldecent
Copy link
Contributor Author

How about this?

All released versions of Solidity are backwards compatible as to storage layout. It is anticipated that all future releases will continue as such.

Such language would be helpful for e.g. EIP1967 as well as block explorers which may perform inspection of storage locations.

I can make a PR if acceptable.

@chriseth
Copy link
Contributor

chriseth commented Feb 3, 2022

I don"t think this is the right language. We cannot tell what the future brings.

Would it be a big enough commitment for you to say that storage layout changes are a breaking change and if this happens, we try to provide a mechanism so that new contracts can always be compiled in a "compatibility mode"?

@fulldecent
Copy link
Contributor Author

Yes, that"s great.

PR -> #12638

@fulldecent
Copy link
Contributor Author

Fixed here #12638, closing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants