Skip to content

Assess canonical indexed storage and reference-lifetime contract #38

Description

@Teakowa

Goal

Assess whether canonical Workshop WIR needs a supported representation for indexed storage updates and object/reference lifetime semantics, or whether an existing canonical composition is sufficient and should be documented with emitted evidence.

Context

del-rs #31 has typed HIR for new, member access, delete, references, and stale-generation-sensitive behavior, but it must keep the runtime encoding in its lowering layer. The current released WIR can express arrays, valueInArray, ifThenElse, abortIf, and canonical variable actions, but does not expose a canonical indexed global write contract.

An array-rebuild encoding is theoretically possible, but del-rs currently lacks independent emitted Workshop/client evidence showing that it preserves field writes, allocation reuse, object identity observation, stale-reference/generation rejection, and the required abort/error semantics under reuse.

Scope

  • Review the current WIR/catalog/emitter primitives for indexed storage updates and lifetime/reference validation.
  • Decide whether an existing composition is semantically sufficient and document its observable limits, or define a minimal canonical contract if a primitive is genuinely missing.
  • Preserve provenance and validation/emission behavior in the decision.

Non-goals

  • Do not add a DEL-specific object ABI or upstream runtime layout.
  • Do not copy del-rs catalog/provider behavior into workshop-rs.
  • Do not claim live-client compatibility without independent runtime evidence.

Consumer blocker

del-rs keeps object/reference/field/lifetime lowering as structured HI018 until this canonical/semantic decision or independent emitted evidence exists. See del-rs #31 and Architect review on 2026-08-18.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions