Skip to content

Authored reads: typed outgoing-edge reads and a guided bounded closure read #926

Open

Description

@flyingrobots

Jim's Edict-authored rope (jedit DL-0159, schema 2) keeps every structural relation as a typed edge, so its ReplaceRange must read outgoing edges by type and must read the bounded closure an edit touches (both boundary paths and the spines a join may descend) in one witnessed read.

Today the authored runtime ABI accepts only echo.dpo@1.node-atom-read plus the five mutation emitters; #921's range read is a Rust frame API with no authored intrinsic.

Needed:

  • an authored intrinsic that reads a node's outgoing edge of one type, witnessed in the read image;
  • a guided closure read: start node, a pure selector deciding which children to expand, maxNodes and maxDepth bounds, deduplicating material by node identity while preserving traversal meaning by edge path and interval (a leaf shared as both children of one branch is two positions, not one);
  • distinct outcomes for a resource limit, a selector that asked for too little, and a store that violates the declared invariants.

Consumer: jedit DL-0159 (https://github.com/flyingrobots/jedit/blob/main/docs/design/0159-edict-rope-representation.md).

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions