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

High-Level Language Support for Transient Storage #15007

Open
6 tasks
ekpyron opened this issue Apr 10, 2024 · 0 comments
Open
6 tasks

High-Level Language Support for Transient Storage #15007

ekpyron opened this issue Apr 10, 2024 · 0 comments
Labels
epic effort Multi-stage task that may require coordination between team members across multiple PRs. high impact Changes are very prominent and affect users or the project in a major way. selected for development It's on our short-term development

Comments

@ekpyron
Copy link
Member

ekpyron commented Apr 10, 2024

Comprehensive high-level language support for transient storage decomposes into the following tasks:

Tasks

Starting from the second step each step decomposes into a Yul and legacy part. We currently plan to start with Yul implementations and to merely backport functionality to legacy on demand.

Questions to be settled during the process:

  • Layout of transient storage variables.
    • current proposal: storage and transient storage have independent layouts (both starting at zero and overlapping), otherwise the layout (including packing) is the same between transient storage and storage.
  • Autoclearing, no autoclearing, optional autoclearing.
    • So far we assume that despite the connected dangers unconditional compiler-generated autoclearing is not expected and also not possible for all types. If we were to decide for opt-in or opt-out autoclearing behaviour, we would need to decide syntax for it. We're open to community input on the question.
    • Given the design of transient storage there is unfortunately no optimal choice here; current tendency is to expose the bare EVM functionality directly in the first instance; only consider optional opt-in autoclearing separately.
@ekpyron ekpyron added selected for development It's on our short-term development epic effort Multi-stage task that may require coordination between team members across multiple PRs. high impact Changes are very prominent and affect users or the project in a major way. labels Apr 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
epic effort Multi-stage task that may require coordination between team members across multiple PRs. high impact Changes are very prominent and affect users or the project in a major way. selected for development It's on our short-term development
Projects
Development

No branches or pull requests

1 participant