Skip to content

High-Level Language Support for Transient Storage #15007

Open
@ekpyron

Description

@ekpyron

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

Tasks

Preview Give feedback

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    epic effortMulti-stage task that may require coordination between team members across multiple PRs.high impactChanges are very prominent and affect users or the project in a major way.selected for developmentIt's on our short-term development

    Type

    No type

    Projects

    Status

    In Progress

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions