Repository navigation
feat(evaluator): PR-A.3 structural memo-key carriers #1544
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
Merged
Merged
Changes from all commits
Commits
Show all changes
14 commits
Select commit
Hold shift + click to select a range
1c559a6
WIP: nimble-tern-266
briansrls ee1fe3c
WIP: nimble-tern-266
briansrls 677ca08
Merge remote-tracking branch 'origin/main' into feat/r3-pr-a3-memo-ke…
briansrls f7b4b08
WIP: nimble-tern-266
briansrls 20a8b06
WIP: nimble-tern-266
briansrls 948dcb2
WIP: nimble-tern-266
briansrls 4d16d95
WIP: nimble-tern-266
briansrls 538ad96
WIP: nimble-tern-266
briansrls 4710fee
Merge remote-tracking branch 'origin/main' into feat/r3-pr-a3-memo-ke…
briansrls 240784f
Merge remote-tracking branch 'origin/main' into feat/r3-pr-a3-memo-ke…
briansrls 8e5b4c4
Merge remote-tracking branch 'origin/main' into feat/r3-pr-a3-memo-ke…
briansrls c2863c5
WIP: nimble-tern-266
briansrls ab57278
WIP: nimble-tern-266
briansrls c8bce71
Merge remote-tracking branch 'origin/main' into feat/r3-pr-a3-memo-ke…
briansrls File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -15,7 +15,7 @@ worker is not dispatch-ready until W1 wires `rust_emit_output` and | |
| |---|---|---| | ||
| | PR-A.2 frames | `src/v3/std/runtime.dag:76-90` declares `EvalFrame { bindings: Map<PortId, Value> }` and `EvalStateStack { frames: List<EvalFrame> }`. | Still landed; not a blocker. | | ||
| | PR-A.3 eager strategy | `src/v3/std/runtime.dag:93-103` declares `EvalStrategy = ApplicativeOrder { input_order: InputEvaluationOrder }` and `InputEvaluationOrder = LeftFirst`. | Eager/left-first strategy identity is live. | | ||
| | PR-A.3 memo carriers | `src/v3/std/runtime.dag:86` mentions `EvalMemoKey` as PR-A.3-owned future work, but the live declarations jump from `EvalStateStack` to `EvalStrategy` at `src/v3/std/runtime.dag:89-98`; `git grep` finds no `type EvalStateKey` or `type EvalMemoKey` declaration at HEAD. | Memo identity remains absent. A no-memo eager carve-out still needs Director/runner-owner framing. | | ||
| | PR-A.3 memo carriers | `src/v3/std/runtime.dag` declares `EvalStateKey { state: EvalStateStack }` and `EvalMemoKey { program: DeclarationId, node: NodeId, state_key: EvalStateKey, strategy: EvalStrategy }`. | Structural memo identity is live. The former no-memo eager carve-out gate is closed; W1 producer wiring remains the blocker. | | ||
| | Body evaluator | `src/v3/compiler/src/lib.rs:547-553` exposes `pub fn evaluate_body(...) -> Result<Value, EvalError>`. Tests cover the shell at `src/v3/compiler/src/lib.rs:820-829` and branch dispatch at `src/v3/compiler/src/lib.rs:1344-1373`. | The old "no body evaluator entry point" blocker is closed. | | ||
| | W1 producer fixture | `src/v3/compiler/tests/fixtures/r3_verification_l4_emit_eval_match.dag:19-23` still defines `rust_emit_output` / `dag_eval_output` as `miss_int_lookup()` placeholders, and the fixture header at `:1-4` says runner support is intentionally NYI until wiring lands. | The structural fixture exists, but producers are not real. | | ||
| | W1 runner extension | `src/v3/compiler/src/test_runner.rs:2336-2344` still accepts only `(v3_program_cost, v2_oracle_cost)` for `DifferentialEquals`; any other pairing returns `NotYetImplemented`. | `rust_emit_output` / `dag_eval_output` remain unwired. This is the blocking gate. | | ||
|
|
@@ -32,9 +32,9 @@ The four #1392 fire criteria now evaluate as: | |
| 2. **`dag_eval_output` backed by real evaluator:** **Partially.** `evaluate_body` | ||
| exists and has E5-era runtime coverage, but no `dag_eval_output` producer | ||
| calls it from `TestRunner`. | ||
| 3. **Memo gap closed or explicitly deferred:** **Still open.** No | ||
| `EvalStateKey` / `EvalMemoKey` declarations exist; an eager no-memo carve-out | ||
| is plausible but not sufficient without W1 producer wiring. | ||
| 3. **Memo gap closed or explicitly deferred:** **Closed.** `EvalStateKey` / | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. BLOCKING: Marking the memo gap closed while the dispatch paragraph still requires an explicit no-memo eager scope leaves incompatible W1 gates in one readiness audit, violating live-state documentation and boundary discipline. |
||
| `EvalMemoKey` declarations now exist with structural state and closed | ||
| strategy fields; W1 producer wiring remains independently required. | ||
| 4. **Worker brief preserves failure taxonomy and fixture path:** **Yes.** The | ||
| existing fixture path remains | ||
| `src/v3/compiler/tests/fixtures/r3_verification_l4_emit_eval_match.dag`, and | ||
|
|
@@ -56,8 +56,8 @@ Recommended trigger for re-engagement: | |
| `NotYetImplemented` branch; and | ||
| - `dag_eval_output` invokes the real eager evaluator path rather than fixture | ||
| lookup or placeholder `miss_int_lookup()`; and | ||
| - the no-memo eager carve-out is explicitly recorded, or `EvalStateKey` / | ||
| `EvalMemoKey` carriers land. | ||
| - `EvalMemoKey` is consumed as the declared structural memo identity if W1 uses | ||
| memoization; no string/name-only state key is introduced. | ||
|
|
||
| Until then, cool-crab / Lane 1 implementation should stay on hold. The concrete | ||
| blocker is no longer evaluator critical mass; it is the W1 producer bridge | ||
|
|
||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
BLOCKING: The new "carrier absence is closed" statement leaves this same brief's carrier-authority and still-needed-prerequisite sections saying strategy/memo carriers are undeclared, creating duplicate PR-B.1 gate authority contrary to INVARIANTS P1/P2.