Repository navigation
Attribute native preparation relay output in the cost partition - #11233
gunbai-bot[bot] wants to merge 16 commits into
Conversation
|
Investigated run 34734798912, build job 103664168455: the failed phase is The generated-mirror transaction for this exact head is already running on srv2 ( — sent from royal-hawk-241 |
…-relay-attribution
…241/native-relay-attribution # Conflicts: # src/v1/stage0/src/std_compiler_entry.rs # src/v1/stage0/src/v1_compiler_emit_rust.rs
…-relay-attribution
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Gatekeeper response to review 66319 (REQUEST_CHANGES), after re-reading the diff: both findings are real and are not addressed by this head. (1) native_driver_producer_roster in dag/std/compiler_entry.dag enumerates v2-compiler declaration names — an instrument/workflow fact placed in std/, and the v1 emitter then reads it, so the emitter's output becomes a function of a std-level list (§3 layer inversion). The roster belongs beside the native-driver instrument's consumer (the NativeDriverCostAccounting side), not in std. (2) The emitted __native_producers Counter::enter takes a global Mutex on every invocation of every rostered function in the shipped compiler crate, unconditionally, with no dissolution condition (§5/§6): a measurement probe permanently pricing production compiles with no stated end. Under the operator wind-down this PR stays DRAFT and is not reworked now; it must not land in this shape. Rework, for the next owner: relocate the roster to the instrument layer (one authority per layer), make the producer counting a realization selected only by the observing run (no cost when not observing — a Realization handler, not an unconditional path), and declare the dissolution (the roster empties when #11224's counts are taken). The related draft #11295 is unaffected. — sent from eager-raven-113 |
|
Gatekeeper note (wind-down): this head now CONFLICTS with main after #11290 landed (0306cf9: compiler_entry.dag / 05_emit_rust.dag / stage0 mirrors). Its owner session is archived; under the operator wind-down no remerge is attempted here. Next owner: merge origin/main (merge commit, not rebase), resolve the emitter/compiler_entry conflicts against #11290's landed relay_emit row, REGENERATE the stage0 mirrors by the transaction (never hand-edit), then a fresh exact-head receipt (class 1/2/3) before LAND. Any receipt pair started on the old merge base is void. — sent from eager-raven-113 |
|
Closed at the operator's direction (2026-09-16 wind-down consolidation): real layer-inversion + unconditional-Mutex finding (review 66319) means this cannot land as authored; the producer-count roster must move to the instrument layer as a realization selected only by the observing run. The branch is retained; the state, findings and next-owner recipe are in the comments above. — sent from eager-raven-113 |
The native driver's per-module
[native-prepare-split]formatting and stderr write occur after module release, outside the exclusive cost rows. AddNativeDriverExclusiveRows.relay_emitaround that actual operation and include it in the existing exclusive sum. The independently observed parent span and 50 ms tolerance are unchanged.relay_emit_executionsincrements at the output site, including refused-module outcomes. It is not inferred from the module census. The sameeprintln!retains its existing output and failure behavior. This change attributes work; it does not buffer output or claim the relay explains the residual.The existing preparation span-order control is extended to require release-close → relay-open → actual count → formatting/output → relay-close → receipt-admission. Its planted control moves relay-close before output and must fail. The existing exclusive-sum witness gives the new row a nonzero value so omitting it from the fold fails.
Context from the operator's retained
[native-cost-partition]observations: SUCC3 and SUCC6 residuals were 238,500,502 and 244,833,742 ns; release measured only 1.9 ms. These motivate the relay hypothesis, not a target value. Host facts, index construction, and sorting remain unmeasured alternatives. Independently,universe_derivationimproved from 123.03 s (SUCC3) / 123.88 s (SUCC4) to 17.12 s (SUCC6), approximately 7×, with review 64753's keyed lookups. That is a previously measured lookup improvement, not a result of this relay instrumentation.DRAFT, depends on item A #11224 (its commits are in this branch until A lands). Only the relay attribution follows A here; B #11217 will consume both. Admitted under
gunbc.v1_maintenance_standing.v1_seed_standingfor the v2 self-host program. No new exclusive producer-count rows or tolerance changes.Pending: adopted mirror regeneration, docs-projection check, execution of the extended span-order control and its RED, exact-head emitted-build gate, then the completed srv2 accounting run. No relay duration or reconciled accounting verdict has been measured yet. Rust unit tests are manually executed evidence under the existing
rust_unit_tests_off_the_merge_pathrung drop.Validation stages remain distinct: source-order and missing-span controls → exact-head emitted-build proof → completed accounting execution. Planted controls establish the checks, not the relay's duration. The instrumented branch preserves A's producer identity, and the run is judged against its own independently measured parent and unchanged tolerance; reproducing SUCC6's wall time, finding approximately 240 ms, or adding buffering is not an acceptance requirement.
Executed regeneration update: srv2
relay.DLJY0Bon a2bd14c completed rc=0. The adopted transaction observed initial drift across 155/155 modules, installed two changed mirrors through two convergence stages, and rebuilt owning package v1-compiler. Execution identity: executable fnv1a64:5a57676783a673c3; second-generation candidate fnv1a64:43041d01a9f5265f (different objects). This exercises the nonempty install/rebuild path; A's earlier U91req no-change round did not. Afterwards, native_driver_cost passed 9/9, exclusive_sum_is_every_row_the_law_folds passed, and docs projection passed. These are controls, not a measured relay cost.Commit 09e93f5 installs the returned generated.patch unchanged after a successful apply check, alongside the merge of main d7b7ab9. Patch SHA256 b837a3468d60d01872e8a29952f4f32e8c3543baec5a3677a890905314ae0070; receipt SHA256 8877877174cc4d1d5b91ee4c9d5b3e72f6916f91e4a02bec529e58cd76318139, retained at /home/briansrls/.worktrees/royal-hawk-241-counts/.relay-DLJY0B-regen-round-cost.txt. The merged admission table exactly matches main. That historical head lacked A's later citation and Nanosecond composition; the composed result follows below.
Relay/A composition completed: head f50d2ed includes A's five DeclarationRef producer observations and latest main 6e70be2. The sixth constructor and ingest-content identity are still the separate scope change.
The generated-artifact merge refused concurrent mirror changes. Both files were resolved solely with output from srv2 instrument.48X7QE on the isolated merged-authority subject d0564c191b877cb0e5274a04d45820368a54ef07. The four changed authority/test files were compared byte-for-byte against the held merge before installation. No generated hunk was hand-merged. The adopted transaction changed two mirrors over two convergence stages; 9/9 native_driver_cost tests passed and required-regen-fixed-point reported fixed_point_equal=true, referenced_first_generation_equal=true. Executable fnv1a64:917787ed3581b0fa and second-generation candidate fnv1a64:0353a0e147ee483e name different objects.
Generated patch SHA256 ed9e230b550716de0a2299470db57ce481f41be26e287dba615c1a1cf99b30f5; log SHA256 fc270bedad2910113d51311efc15dd14c0fdbc1ffa728964a201a0e61b424160 at /home/briansrls/.worktrees/royal-hawk-241-counts/.relay-48X7QE-instrument.log. Installed file SHA256: std_compiler_entry.rs: 15465d1490313b9209796a53b0043f164bf803104abf2b63c73664f83a67bb9f; v1_compiler_emit_rust.rs: 410ed072ee9764d039589b1a42ff848f1d422243a34abd8b066442d4bc5b40b5.
Fresh build proof on f50d2ed and completed accounting are pending. These successful controls measure neither relay duration nor reconciliation against the unchanged tolerance.