Private
Public Access
feat(directives): scavenge from intent_dsl_survey + handoffs/: 5 directives
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
# pipeline_immediate_mode_no_object
|
||||
|
||||
## v1
|
||||
|
||||
**Why this iteration:** Lifted from `conductor/tracks/intent_dsl_survey_20260612/spec.md:189` (Section 5 Claim 2 — "the DSL's pipeline is immediate-mode in pipeline composition. Each `->`-delimited stage is a method invocation, not a Pipeline object."). The O'Donnell IMGUI parallel — "widgets are method invocations, not objects" — is the load-bearing argument; the project inherits the immediate-mode philosophy at the pipeline level.
|
||||
**Source:** `conductor/tracks/intent_dsl_survey_20260612/spec.md:189`
|
||||
|
||||
---
|
||||
**Lifted:** 2026-07-02 (scavenge pass — directive library expansion from intent_dsl_survey track)
|
||||
@@ -0,0 +1,24 @@
|
||||
# DSL pipelines are immediate-mode — there is no Pipeline object to query, name, or pass across executions
|
||||
|
||||
## The pipeline contract
|
||||
|
||||
A `->`-delimited chain of DSL verbs exists ONLY while the program is executing. Once execution ends, the pipeline's state is gone. There is no Pipeline object you can:
|
||||
|
||||
- Query for the current value
|
||||
- Name and pass to another verb
|
||||
- Re-use across executions
|
||||
- Hold in a variable
|
||||
|
||||
The only way to "name" a chain is to wrap it in a function: `func my_pipeline(x: T) -> U { ... }`.
|
||||
|
||||
Per `conductor/tracks/intent_dsl_survey_20260612/spec.md:189`: "the DSL's pipeline is *immediate-mode in pipeline composition*. Each `->`-delimited stage is a method invocation, not a Pipeline object. The pipeline exists *only* while the DSL program is being executed; once execution ends, the pipeline's state is gone. ... the `->` chain has no 'pipeline object' you can query, name, or pass around."
|
||||
|
||||
## Why
|
||||
|
||||
A retained Pipeline object would require the parser/VM to track state across executions, which (a) doubles the cognitive load on the parser, (b) makes pipelines harder to reason about, and (c) defeats the immediate-mode execution model the DSL inherits from O'Donnell's IMGUI / "widgets are method invocations, not objects."
|
||||
|
||||
## What this means in practice
|
||||
|
||||
- The DSL parser does NOT construct an intermediate AST object that is retained after parse; it emits operations directly (per Onat's xchg model).
|
||||
- A pipeline value is consumed by the next verb in the chain or the function exits; there is no "the pipeline" as a first-class value.
|
||||
- Re-using a chain requires wrapping it in a function, not naming the chain itself.
|
||||
Reference in New Issue
Block a user