Skip to content

v4 T-4 combined #3200 merged-main reclass-PR (comment-only, no-urgency debt-visibility): πŸŸ’β†’πŸŸ‘ reclass on origin/main β€” CORE: llvm_ir.dag llvm_ir-7 set (BinaryOpcode/ConversionOpcode/IntPredicate/FloatPredicate/AtomicRmwOp + Tier-2 AtomicOrdering/Linkage) + go.dag width-enums (SignedIntWidth/Unsigne - #3215

Closed
briansrls wants to merge 23 commits into
mainfrom
session/snappy-otter-404-reclass-3200

Conversation

@briansrls

@briansrls briansrls commented May 16, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Comment-only debt-visibility reclass on origin/main per #3200 (consumer-INDEPENDENT GREEN rule, docs/modeling-discipline.md merged on main). No carrier shapes change; no urgency. Each enum's historical GREEN ledger is preserved as the rule-at-time-of-write record; a #3200 RE-SCOPE addendum (verilog.dag:1393 precedent) names the richer source, first-meaning-consumer trigger, and obligation.

Targets (11 enums total β€” comment-only)

llvm_ir.dag β€” CORE (llvm_ir-7 set):

  • BinaryOpcode β€” std/algebra.dag op-on-operand-type
  • ConversionOpcode β€” {src-domain, dst-domain, kind} lattice
  • IntPredicate β€” {signedness, Ordering-cells} over std/algebra
  • FloatPredicate β€” {nan-policy, Ordering-cells} over std/float
  • AtomicRmwOp β€” std/algebra.dag op-on-operand-type

llvm_ir.dag β€” Tier-2:

  • AtomicOrdering β€” C++11/C11 memory-model partial-order lattice
  • Linkage β€” {visibility, mergeability, odr, weakness}

go.dag β€” width-enum family (per operator standing precedent 2026-05-16, T-4 mgr msg_5c6cbb48 "yellow please" β€” any width-enum across the lane flips 🟑 per Practice-7-projection-over-Nat richer-source):

  • SignedIntWidth
  • UnsignedIntWidth
  • GoFloatWidth
  • GoComplexWidth

Discipline notes

  • Verilog precedent for the addendum shape: src/v4/extdeps/languages/verilog.dag:1393 (VariableDeclaration).
  • Per the cited operator ruling, width-enum 🟑s should NOT force fresh pushes on existing PRs; this PR exists explicitly so the debt becomes visible on origin/main without disturbing in-flight work.
  • LangRef / Go-spec surface names remain the parse/emit-side authority. Obligation discharged at the first meaning-consumer (D2 inhabitance pathway), not in these declarations.

Test plan

  • Verify diff is comment-only (no type body edits)
  • Spec-fidelity review of richer-source claims against std/ scaffolds + verilog.dag:1393 precedent

β€” sent from snappy-otter-404

briansrls and others added 2 commits May 16, 2026 19:15
…t-only)

Comment-only debt-visibility reclass on origin/main per #3200 (consumer-
INDEPENDENT GREEN rule, docs/modeling-discipline.md merged on main). Each
enum's historical GREEN ledger is preserved as the rule-at-time-of-write
record; a "#3200 RE-SCOPE" addendum (verilog.dag:1393 precedent) names
the richer source + first-meaning-consumer trigger + obligation.

llvm_ir.dag (CORE, llvm_ir-7 set):
  - BinaryOpcode      β€” std/algebra.dag op-on-operand-type
  - ConversionOpcode  β€” {src-domain, dst-domain, kind} lattice
  - IntPredicate      β€” {signedness, Ordering-cells} over std/algebra
  - FloatPredicate    β€” {nan-policy, Ordering-cells} over std/float
  - AtomicRmwOp       β€” std/algebra.dag op-on-operand-type
  Tier-2:
  - AtomicOrdering    β€” C++11/C11 memory-model partial-order lattice
  - Linkage           β€” {visibility, mergeability, odr, weakness}

go.dag (width-enum family per standing precedent β€”
operator ruling 2026-05-16, T-4 mgr msg_5c6cbb48 "yellow please"):
  - SignedIntWidth     β€” Practice-7-projection-over-Nat
  - UnsignedIntWidth   β€” Practice-7-projection-over-Nat
  - GoFloatWidth       β€” Practice-7-projection-over-Nat
  - GoComplexWidth     β€” Practice-7-projection-over-Nat / GoFloatWidth

No carrier shapes change; the LangRef/Go-spec surface names remain the
parse/emit-side authority. Obligation discharged at the first meaning-
consumer (D2 inhabitance pathway), not in these declarations.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@briansrls
briansrls marked this pull request as ready for review May 16, 2026 23:18
briansrls and others added 2 commits May 16, 2026 23:30
Two corrections per T-4 mgr brief msg_8a5f7335:

1. Ledger-header form: prior commit only added the #3200 RE-SCOPE
   footer; per verilog.dag:362/1397 precedent the LEDGER HEADER LINE
   must also flip from "🟒 GREEN (terminal)" to "🟑 YELLOW
   (deferred-on-consumer; re-scoped under #3200 rule-change 2026-05-16
   β€” namable richer source exists; see #3200 RE-SCOPE footer before
   the type declaration below)" so #3200 audits can grep the emoji
   marker. Applied to all 11 enums flipped in the prior commit.

2. rust.dag width-enums: missed from prior commit per mgr brief.
   RustIntWidth + RustFloatWidth flipped πŸŸ’β†’πŸŸ‘ with both header +
   footer addendum (Practice-7 projection over Nat; Pointer cell
   resolves via std/machine.dag PointerWidth).

Standing-home sweep (re-verified via `git show origin/main:<path>
> /tmp/x.dag` on each):
  - #3176 Tier-1 set (NonTriregNetKind, PrimitiveGateKind,
    VariableDeclaration, ParameterTypeKind,
    OutputPortAnsiVariableTypeKind): ALL already 🟑 on origin/main β€”
    skipped to avoid re-flip.

Total this PR (cumulative across both commits): 13 enums flipped
πŸŸ’β†’πŸŸ‘, comment-only, zero carrier/import/logic change, zero src/v3
touch.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: 83afba81 Β· Trigger: schedule
  • Thinking: 225s wall

BLOCKING (2)

Root Cause

  • src/v4/extdeps/languages/llvm_ir.dag Conversion re-scope collapses LangRef cast semantics into an informal kind axis without carrying the invalid-input disposition β†’ name fp↔int conversions with signedness and LangRef out-of-range semantics, or explicitly defer that disposition to the D2 consumer.
  • src/v4/extdeps/languages/llvm_ir.dag Atomic RMW re-scope uses informal algebra labels instead of the actual landed std/algebra carrier surface β†’ rewrite the map against the existing Ring/Lattice/BooleanAlgebra/ApproximateField carriers, or name missing carriers as future sources with triggers.

⚠️ Two added ledger claims misstate the external/algebraic semantics they are supposed to preserve.

Comment thread src/v4/extdeps/languages/llvm_ir.dag Outdated
// source EXISTS:
// Richer source: a two-axis lattice {source-domain, target-domain} Γ—
// {sign-extend, zero-extend, truncate, reinterpret, fp-narrow,
// fp-widen, fp↔int-saturating, address-space-cast} over std/integer

This comment was marked as resolved.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 69392ed. ConversionOpcode richer-source rewritten:

  • removed "saturating" claim
  • explicitly notes fptoui/fptosi/uitofp/sitofp are UB-on-out-of-range per LangRef "Conversion Operations"
  • saturating fp↔int forms (llvm.fptoui.sat / llvm.fptosi.sat intrinsics) explicitly named as DISTINCT declarations outside this opcode set, reachable only via LlvmIntrinsicCall
  • added {int-signedness} sub-axis to distinguish sitofp/uitofp / fptosi/fptoui per your finding
  • invalid-input disposition EXPLICITLY deferred to first D2 meaning-consumer (pairs with existing FidelityDisposition machinery)

β€” sent from snappy-otter-404

Comment thread src/v4/extdeps/languages/llvm_ir.dag Outdated
// "grounded THERE"). Under the post-#3200 consumer-INDEPENDENT rule
// this is 🟑 YELLOW because a namable richer source EXISTS:
// Richer source: std/algebra.dag carriers β€” Semigroup/Monoid (xchg
// as the last-write identity-on-second-arg), Semiring (add/sub),

This comment was marked as resolved.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 69392ed. AtomicRmwOp richer-source fully rewritten against the verified LANDED std/algebra.dag surface (Semigroup:139 / Monoid:145 / AbelianGroup:166 / Semiring:183 / Ring:195 / OrderedRing:209 / ApproximateField:255 / Lattice:271 / BooleanAlgebra:289):

  • xchg β†’ Monoid (last-write identity on second arg)
  • add/mul β†’ Semiring; sub β†’ Ring (additive inverse Semiring lacks)
  • and/or/xor/nand β†’ BooleanAlgebra (nand is De-Morgan derived over same carrier, NOT a fresh algebra)
  • max/min/umax/umin β†’ Lattice on signed-vs-unsigned Ord inhabitances
  • fadd/fsub/fmax/fmin β†’ ApproximateField via std/float.dag:255
  • uinc_wrap/udec_wrap explicitly NAMED MISSING β€” future std/integer.dag bounded-counter authority, obligation rides the trigger (per codex's "name missing carriers as future sources with triggers" option)

Same defect class found + fixed preventively in BinaryOpcode (replaced "BooleanRing" / "lattice/bitwise" with the verified landed surface).

β€” sent from snappy-otter-404

@briansrls

Copy link
Copy Markdown
Contributor Author

Re cursor exploratory note on // Terminal: phrasing reading like the old GREEN label:

Acknowledged as clarity-only, not invariant. Keeping the // Terminal: line unchanged on this PR is deliberate:

  • The mgr brief (msg_8a5f7335) is explicit "comment-only, no-urgency debt-visibility… no churn-push once HEAD settles."
  • Per the verilog.dag:362/1397 precedent this PR mirrors, the // Terminal: … line is also retained verbatim alongside the flipped 🟑 header + docs(modeling-discipline): GREEN is consumer-independent; YELLOW covers consumer-deferred decompositionΒ #3200 RE-SCOPE footer (see verilog.dag:381 "Terminal: the closed eleven-way non-trireg net-type-keyword classifier of the IEEE 1364-2005 spec" β€” still present even though that ledger is 🟑). The word "Terminal" there reads as "exhaustive for the spec's closed set" (the C1 stop-signal partition), not as the 🟒 classification β€” a meaning the header + footer now disambiguate explicitly.
  • The standing operator ruling (msg_5c6cbb48 / "yellow please") additionally directs that width-enum 🟑 flips not force fresh pushes on top of a settled HEAD; folding a clarity-only rewording would violate that posture.

If a future #3200 maintenance pass normalizes the // Terminal: wording across the lane, this PR is the standing home and that rewording lands there. No fix on this HEAD.

β€” sent from snappy-otter-404

briansrls and others added 3 commits May 16, 2026 20:13
…aryOpcode richer-source against LANDED std/algebra.dag carriers + LangRef semantics

briansrls inline + codex BLOCKING review on HEAD 83afba8 caught three
spec/carrier-fidelity defects in the prior #3200 RE-SCOPE addendums.
Fix is comment-only; HEAD changes from 83afba8.

1. ConversionOpcode (briansrls inline @ llvm_ir.dag:582; codex BLOCKING):
   the prior text labeled fp↔int casts "saturating" β€” LangRef
   fptoui/fptosi/uitofp/sitofp are UB-on-out-of-range, NOT saturating
   (the saturating forms are the `llvm.fptoui.sat` / `llvm.fptosi.sat`
   intrinsics, distinct declarations outside this opcode set). Rewrite
   the kind axis to "fp↔int" (no saturating claim), explicitly note the
   UB-on-out-of-range LangRef disposition, add the {int-signedness}
   sub-axis (distinguishing sitofp/uitofp / fptosi/fptoui), and
   explicitly DEFER invalid-input disposition to the first D2 meaning-
   consumer per the briansrls finding.

2. AtomicRmwOp (codex BLOCKING + briansrls inline @ llvm_ir.dag:1024):
   the prior text mapped `sub` to Semiring (Semiring has no additive
   inverse) and named non-existent carriers BooleanRing /
   JoinSemilattice / MeetSemilattice / "wrap-counter". Rewrite against
   the verified LANDED std/algebra.dag surface (Semigroup:139 / Monoid:
   145 / AbelianGroup:166 / Semiring:183 / Ring:195 / OrderedRing:209 /
   ApproximateField:255 / Lattice:271 / BooleanAlgebra:289): map
   xchg→Monoid, add/mul→Semiring, sub→Ring, and/or/xor/nand→
   BooleanAlgebra (nand is De-Morgan over the same carrier),
   max/min/umax/umin→Lattice on signed-vs-unsigned Ord inhabitances,
   fadd/fsub/fmax/fmin→ApproximateField. uinc_wrap/udec_wrap have no
   landed carrier β€” explicitly named as a MISSING future
   std/integer.dag bounded-counter authority with the trigger carrying
   the obligation (codex's "name missing carriers as future sources
   with triggers" option).

3. BinaryOpcode (preventive audit β€” same defect class as 2): prior
   text named "BooleanRing" (does not exist) and "lattice/bitwise" (too
   informal). Rewrite to the same LANDED surface β€” Semiring (add/mul),
   Ring (sub β€” additive inverse), OrderedRing with signed/unsigned Ord
   (s/udiv, s/urem), BooleanAlgebra (and/or/xor), Lattice on shift
   action (shl/lshr/ashr), ApproximateField (fadd/fsub/fmul/fdiv/frem
   via std/float.dag:255).

Other #3200 addendums on this PR audited and found CLEAN:
IntPredicate/FloatPredicate cite Ordering / ApproximateField (landed);
AtomicOrdering / Linkage / go.dag-widths / rust.dag-widths name
future-missing carriers explicitly. No further edits needed.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: 45434d15 Β· Trigger: schedule
  • Thinking: 335s wall

BLOCKING (2)

Root Cause

  • src/v4/extdeps/languages/llvm_ir.dag The #3200 re-scope equates β€œstd/algebra structure exists” with β€œa landed operation witness exists for each LLVM opcode” β†’ split landed algebra ontology from per-op witnesses, and name missing carriers/triggers for LLVM division/remainder, shift, exchange, and float primitive semantics.

Non-blocking β€” Strengths

  • src/v4/extdeps/languages/go.dag The Go width reclassifications preserve spec keyword authority and name bounded D2 triggers for width meaning.
  • src/v4/extdeps/languages/rust.dag The Rust width reclassifications follow the same width-enum Nat-projection framing without adding a second type authority.

⚠️ The prior comments are fixed, but the LLVM richer-source ledgers still ground several opcodes in authorities that are not actually landed or not the right algebraic carrier.

Comment thread src/v4/extdeps/languages/llvm_ir.dag Outdated
// inhabitance was "Owned ELSEWHERE" / not-yet-landed in pattern 3).
// Under the post-#3200 consumer-INDEPENDENT rule this is 🟑 YELLOW
// because a namable richer source EXISTS:
// Richer source: LANDED std/algebra.dag carriers (verified at

This comment was marked as resolved.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in d46499f. BinaryOpcode richer-source rewritten to split (a) landed std/algebra.dag ONTOLOGY from (b) per-(type, op) WITNESS availability:

(a) LANDED ONTOLOGY with witness caveats:

  • add/mul β†’ Semiring (witness rides int_ordered_ring: OrderedRing<Int> on abstract Int per std/integer.dag:244; per-iN-width witnesses deferred to D2 fan-out β€” none landed yet)
  • sub β†’ Ring (same int_ordered_ring for abstract Int; per-iNβ†’D2)
  • and/or/xor β†’ BooleanAlgebra (only bool_boolean_algebra: BooleanAlgebra<Bool> landed at std/logic.dag:120; per-iN-bitwiseβ†’D2)
  • fadd/fsub/fmul/fdiv β†’ ApproximateField (ontology landed at std/algebra.dag:257; machine-readable data: ApproximateField<Float> witness EXPLICITLY WITHHELD per std/float.dag:136 DECISIONS.md D3 / INVARIANTS P1/P3 β€” the ontology binding holds, the witness lands in a later std/float phase)

(b) NAMED MISSING carriers (no landed ontology match):

  • s/udiv, s/urem: Ring has NO quotient/remainder β€” MISSING integer Euclidean-division-with-rounding-mode authority (future std/integer.dag); trigger named
  • shl/lshr/ashr: NOT a Lattice op (meet/join are bitwise AND/OR, not shifts) β€” MISSING bit-shift-action authority (future std/integer.dag Monoid-action carrier on iN with modular reduction); trigger named
  • frem: NOT in ApproximateField β€” MISSING IEEE-754-remainder authority (future std/float.dag); trigger named

β€” sent from snappy-otter-404

Comment thread src/v4/extdeps/languages/llvm_ir.dag Outdated
// xchg/add/and/or/xor/max/min trace to the `iN` ring/lattice instances,
// "grounded THERE"). Under the post-#3200 consumer-INDEPENDENT rule
// this is 🟑 YELLOW because a namable richer source EXISTS:
// Richer source: LANDED std/algebra.dag carriers (verified at

This comment was marked as resolved.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in d46499f. AtomicRmwOp richer-source rewritten with the same (a) landed-ontology / (b) named-missing-carrier split:

(a) LANDED ONTOLOGY with witness caveats:

  • add β†’ Semiring; sub β†’ Ring (both ride int_ordered_ring: OrderedRing<Int> at std/integer.dag:244 on abstract Int; per-iNβ†’D2 fan-out)
  • and/or/xor/nand β†’ BooleanAlgebra (bool_boolean_algebra: BooleanAlgebra<Bool> at std/logic.dag:120; per-iN-bitwiseβ†’D2). Nand is De-Morgan over the same carrier.
  • fadd/fsub β†’ ApproximateField (ontology at std/algebra.dag:257; machine-readable Float witness EXPLICITLY WITHHELD per std/float.dag:136 D3 / INVARIANTS P1/P3)

(b) NAMED MISSING carriers:

  • xchg β€” your specific finding: NOT a Monoid (second-projection has no identity element; no e such that swap(x, e) == x; "last write wins" is not a two-sided identity op). MISSING atomic-swap-with-prior-value-return primitive (future std/concurrency.dag); trigger named.
  • max/min/umax/umin β€” Lattice exists at std/algebra.dag:271 but needs the signed/unsigned Ord inhabitance on iN to derive meet=min/join=max; MISSING that derived Lattice instance (future std/integer.dag); trigger named.
  • fmax/fmin β€” NOT in ApproximateField, AND IEEE-754 NaN policy is distinct from algebraic max/min; MISSING IEEE-754-max/min-with-NaN-policy (future std/float.dag); trigger named.
  • uinc_wrap/udec_wrap β€” bounded-counter primitive, no landed carrier; MISSING future std/integer.dag bounded-counter; trigger named.

β€” sent from snappy-otter-404

briansrls and others added 3 commits May 16, 2026 21:19
…s in BinaryOpcode/AtomicRmwOp richer-source

codex BLOCKING + briansrls inline (Γ—2) on HEAD 45434d1 caught the
remaining trap: my prior rewrite conflated "the std/algebra structure
type is landed" with "a landed per-(type, op) data witness exists for
each LLVM opcode". Per M9/INVARIANTS P1 these are distinct facts.

Verified on origin/main:
  - Landed data witnesses: ONLY `int_ordered_ring: OrderedRing<Int>`
    (std/integer.dag:244) and `bool_boolean_algebra: BooleanAlgebra<Bool>`
    (std/logic.dag:120). No per-iN-width, no Float.
  - std/float.dag DECISIONS.md D3 / INVARIANTS P1/P3 EXPLICITLY WITHHOLDS
    the machine-readable `data: ApproximateField<Float>` witness
    (std/float.dag:136).
  - std/algebra.dag ontology surface (Semigroup/Monoid/AbelianGroup/
    Semiring/Ring/OrderedRing/ApproximateField/Lattice/BooleanAlgebra)
    is landed; it provides NO quotient/remainder, NO shift, NO swap,
    NO float-remainder, NO IEEE-754-max/min.

Rewrite both addendums to split:
  (a) LANDED ONTOLOGY β€” structure type landed; per-iN/per-Float witness
      either landed-on-abstract-carrier (Int/Bool only) or explicitly
      deferred to D2/D3 fan-out.
  (b) NAMED-MISSING CARRIERS β€” no ontology match in std/algebra.dag;
      future authority + trigger explicitly named.

BinaryOpcode:
  (a) add/mul→Semiring (witness on abstract Int, per-iN→D2);
      sub→Ring (witness on abstract Int, per-iN→D2);
      and/or/xor→BooleanAlgebra (witness on Bool, per-iN→D2);
      fadd/fsub/fmul/fdiv→ApproximateField (witness withheld per D3).
  (b) NAMED MISSING: integer Euclidean-div (s/u div+rem); bit-shifts
      (shl/lshr/ashr β€” NOT Lattice, future Monoid-action carrier);
      frem (NOT in ApproximateField, future IEEE-754 carrier).

AtomicRmwOp:
  (a) add→Semiring; sub→Ring; and/or/xor/nand→BooleanAlgebra (nand
      De-Morgan over same carrier); fadd/fsub→ApproximateField
      (witness withheld per D3) β€” all with witness-status caveats.
  (b) NAMED MISSING: xchg (atomic swap β€” NOT a Monoid, second-
      projection has no identity); max/min/umax/umin (need signed/
      unsigned Ord-derived Lattice instance on iN); fmax/fmin (NOT in
      ApproximateField, IEEE-754 NaN-policy distinct from algebraic);
      uinc_wrap/udec_wrap (bounded-counter, no landed carrier).

ConversionOpcode addendum left intact (already names DOMAINS not
algebra-carriers β€” no witness conflation).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… ONLY two), reference int_abelian_group + Nat witnesses with materiality reasoning

T-4 mgr verify-don't-trust caught a precision gap in d46499f β€” the
landed-witness inventory said "ONLY int_ordered_ring + bool_boolean_
algebra" which is false-on-its-face. Verified on origin/main, FIVE
landed std/algebra-inhabiting data witnesses exist:
  - int_abelian_group: AbelianGroup<Int>            (std/integer.dag:234)
  - int_ordered_ring: OrderedRing<Int>              (std/integer.dag:244)
  - bool_boolean_algebra: BooleanAlgebra<Bool>      (std/logic.dag:120)
  - nat_additive_commutative_monoid: CommutativeMonoid<Nat>
                                                    (std/nat.dag:151)
  - nat_semiring: CommutativeSemiring<Nat>          (std/nat.dag:174)

Materiality (disposition unchanged β€” this is precision-hardening, NOT
a re-split):
  - int_abelian_group is the `add:` sub-component OF int_ordered_ring
    (integer.dag:246) β€” one Int-arithmetic story, not a distinct/
    stronger richer-source for any LLVM opcode.
  - Nat witnesses are NOT a richer source for LLVM iN (LLVM iN β‰…
    Z/2^N-modular, not β„•); citing them as a witness would mis-route
    any meaning consumer.

Inventory notes fold into both BinaryOpcode and AtomicRmwOp #3200
RE-SCOPE blocks; (a)/(b) split + per-opcode mapping unchanged.
Avoids a re-BLOCK on inventory-rigor under codex's lane.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

Precision correction on the inline replies above (HEAD now 8db67bd).

My prior inline replies stated landed-witness inventory as "ONLY `int_ordered_ring` + `bool_boolean_algebra`" β€” false-on-its-face. Verified on origin/main, there are FIVE landed std/algebra-inhabiting data witnesses:

  • `int_abelian_group: AbelianGroup` (std/integer.dag:234)
  • `int_ordered_ring: OrderedRing` (std/integer.dag:244)
  • `bool_boolean_algebra: BooleanAlgebra` (std/logic.dag:120)
  • `nat_additive_commutative_monoid: CommutativeMonoid` (std/nat.dag:151)
  • `nat_semiring: CommutativeSemiring` (std/nat.dag:174)

Materiality (disposition UNCHANGED β€” precision-hardening, not a re-split):

  • `int_abelian_group` is the `add:` sub-component OF `int_ordered_ring` (integer.dag:246) β€” one Int-arithmetic story, not a distinct/stronger richer-source for any LLVM opcode.
  • Nat witnesses are NOT a richer source for LLVM iN opcodes (LLVM iN β‰… Z/2^N-modular β‰  β„•); citing them would mis-route any meaning consumer.

Both #3200 RE-SCOPE addendums (BinaryOpcode + AtomicRmwOp) updated to carry the full FIVE-witness inventory + the materiality reasoning. (a)/(b) split and per-opcode mappings unchanged.

β€” sent from snappy-otter-404

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: 0b40c53e Β· Trigger: schedule
  • Thinking: 201s wall

BLOCKING (1)

Root Cause

  • src/v4/extdeps/languages/llvm_ir.dag The ConversionOpcode re-scope prose still mixes opcode shape with deferred invalid-input disposition β†’ keep shape in this enum, but state only fptoui/fptosi poison here and leave the full poison/rounding/NaN disposition to the D2 fidelity carrier.

Non-blocking β€” Strengths

  • src/v4/extdeps/languages/llvm_ir.dag The BinaryOpcode and AtomicRmwOp ledgers now make the important ontology-vs-witness split explicit and name concrete missing carriers instead of overclaiming landed algebra authority.

⚠️ One remaining external-spec fidelity issue should be fixed before this comment ledger lands.

Comment thread src/v4/extdeps/languages/llvm_ir.dag Outdated
// unsigned} (LangRef separates sitofp from uitofp and fptosi from
// fptoui precisely on this signedness). LangRef invalid-input
// disposition is NOT carried by these opcodes β€” fptoui/fptosi/
// uitofp/sitofp on out-of-range inputs are UB per LangRef

This comment was marked as resolved.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 82c9921. ConversionOpcode addendum narrowed per your finding + codex's "keep shape here, defer disposition to D2" framing:

  • REMOVED the wrong-on-its-face "fptoui/fptosi/uitofp/sitofp out-of-range are UB" claim. Per LangRef "Conversion Operations":
    • fptoui/fptosi out-of-range β†’ POISON (not UB)
    • uitofp/sitofp inexact-integer-input β†’ ROUNDED (not UB; inexact rounding only)
  • KEPT only the single opcode-shape disposition fact tied to this enum: fptoui/fptosi out-of-range β†’ POISON.
  • EXPLICITLY DEFERRED the full disposition surface (uitofp/sitofp inexact-rounding semantics; fptoui/fptosi NaN behavior; per-target rounding modes) to the first D2 meaning-consumer's fidelity carrier (pairs with the existing FidelityDisposition machinery).
  • Saturating fp↔int (llvm.fptoui.sat/llvm.fptosi.sat intrinsics) call-out preserved as the distinct-declaration carve-out.

β€” sent from snappy-otter-404

briansrls and others added 2 commits May 17, 2026 02:17
…/fptosi POISON (not UB); defer full disposition to D2

codex BLOCKING + briansrls inline on HEAD 0b40c53: ConversionOpcode
re-scope mixed opcode shape with deferred invalid-input disposition,
and the "UB on out-of-range" claim was wrong-on-its-face for ALL FOUR
fp↔int ops per LangRef "Conversion Operations":
  - fptoui/fptosi out-of-range produce POISON (NOT UB)
  - uitofp/sitofp inexact integer inputs are ROUNDED (NOT UB; only
    inexact rounding)

Per codex's "keep shape in this enum, but state only fptoui/fptosi
poison here and leave the full poison/rounding/NaN disposition to the
D2 fidelity carrier" β€” narrowed the disposition mention to the single
opcode-shape fact (fptoui/fptosi β†’ POISON) and explicitly DEFERRED the
full surface (uitofp/sitofp inexact-rounding; fptoui/fptosi NaN
behavior; per-target rounding modes) to the first D2 meaning-consumer's
fidelity carrier (FidelityDisposition machinery).

BinaryOpcode + AtomicRmwOp ledgers untouched β€” codex re-review on
0b40c53 explicitly recognized them as non-blocking strengths after
the prior (a)/(b) split + named-missing-carrier rewrite.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…eps fact-modeling rework (do NOT cement D2/FidelityDisposition)

T-4 mgr msg_54fc2bf9: my prior ConversionOpcode deferral followed
codex's framing ("first D2 meaning-consumer's fidelity carrier; pairs
with the existing FidelityDisposition machinery") β€” but codex's framing
PREDATES the operator's D2 FOUNDATION REVERSAL. The
alias-identity/D2-resolver form (incl. the D2 meaning-consumer +
FidelityDisposition machinery) is being reverted/reworked. Cementing
that mechanism as the deferral owner introduces a fresh dependency on
a foundation being torn out (llvm_ir.dag is already flagged a-LITE for
D2-seam-prose rework).

Re-point D2-reversal-NEUTRALLY: deferral stays VALID (uitofp/sitofp-
inexact / NaN / per-target-rounding surface is genuinely deferred);
POISON fact for fptoui/fptosi out-of-range stays. The owner is now
explicitly TBD per the extdeps fact-modeling rework β€” does NOT name
"D2 meaning-consumer / FidelityDisposition machinery" as the owner.

One comment-line re-phrase. No carrier/semantic change. Comment-only.
BinaryOpcode + AtomicRmwOp ledgers untouched.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

Re cursor exploratory on informal review handles / message-ids in footers:

Acknowledged as clarity-only, not invariant. Keeping the inline msg-id citations is deliberate on this PR:

  • The msg-id tokens (msg_5c6cbb48, msg_8a5f7335) are the audit anchors for the operator/T-4 mgr standing precedents this reclass implements (e.g. the "yellow please" width-enum ruling, the standing-home sweep brief). They are not opaque-to-me β€” they're the precise provenance trail an auditor reproduces the disposition from.
  • Per mgr-direction on this PR ("keep HEAD SETTLED; do NOT push") and per operator standing ("do NOT fold this 🟑 into a fresh push; track for the next review-tail commit"), a clarity-only rewording would violate the no-churn-push posture.
  • If a future docs(modeling-discipline): GREEN is consumer-independent; YELLOW covers consumer-deferred decompositionΒ #3200 maintenance pass normalizes the citation form across the lane, this PR is the standing home and the rewording lands there.

No fix on this HEAD.

β€” sent from snappy-otter-404

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: 74c3f79d Β· Trigger: schedule
  • Thinking: 178s wall

Non-blocking β€” Strengths

  • src/v4/extdeps/languages/llvm_ir.dag The updated LLVM IR ledgers preserve LangRef opcode authority while making the ontology-vs-witness split and missing-carrier triggers explicit.
  • src/v4/extdeps/languages/go.dag The width-enum reclassifications are documented, bounded to first meaning-consumers, and keep Go spec spellings as the parse/emit authority.
  • src/v4/extdeps/languages/rust.dag The Rust width reclassifications follow the same Nat/PointerWidth deferred-consumer pattern without adding a competing width authority.

βœ… No blocking concerns found.

@briansrls

Copy link
Copy Markdown
Contributor Author

Re cursor optional nit on // Terminal: echoing Practice 4's "GREEN (terminal)" vocabulary:

Same exploratory concern already addressed on this PR β€” see #issuecomment-4468605275 above. Standing rationale: verilog.dag:381 precedent retains the // Terminal: line verbatim alongside the 🟑 header + #3200 RE-SCOPE footer (the word reads "exhaustive for the spec's closed set" / C1 stop-signal, not the GREEN classification β€” disambiguated by the header + footer). Operator standing precedent (msg_5c6cbb48 "yellow please") additionally forbids forcing fresh pushes for clarity-only reword on a settled HEAD. Any "Spec closure:" / "Terminal-set:" rename would normalize across the lane in a future #3200 maintenance pass; this PR is the standing home and that rewording lands there.

No fix on 74c3f79.

β€” sent from snappy-otter-404

@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: openai-pro / gpt-5-5-pro
  • Commit: 0be3260c Β· Trigger: manual
  • Comparison: main @ 728db213 ... session/snappy-otter-404-reclass-3200 @ 0be3260c
  • Conversation: View conversation

1. Story of the diff

This PR is a comment-only reclassification pass over v4 target-language substrate enums: it changes several coproduct ledgers from β€œπŸŸ’ GREEN terminal” to β€œπŸŸ‘ YELLOW deferred-on-consumer,” then records the richer source, the consumer trigger, and the obligation not to recover meaning through local label matches. The Go and Rust changes apply that pattern to width enums, while llvm_ir.dag applies it to opcode/predicate/ordering/linkage labels and adds more detailed split logic between landed algebra ontology and not-yet-landed per-type witnesses. The load-bearing mechanism is the new #3200 RE-SCOPE footer: for example, BinaryOpcode now explicitly separates landed algebra structures from missing per-width witnesses at src/v4/extdeps/languages/llvm_ir.dag:535-604, and the width enums similarly pre-assign decomposition to the first meaning consumer rather than this surface label carrier.

2. Invariant categories

1. LAYER MODEL β€” substrate vs implementation

Finding β€” BLOCKING, substrate / external-spec authority. src/v4/extdeps/languages/llvm_ir.dag:1137 introduces a β€œNAMED-MISSING CARRIERS” inventory for AtomicRmwOp, but the added inventory only covers the visible missing carrier families for RmwFMax / RmwFMin at src/v4/extdeps/languages/llvm_ir.dag:1155 and RmwUIncWrap / RmwUDecWrap at src/v4/extdeps/languages/llvm_ir.dag:1161. LLVM’s released 22.1.0 LangRef already lists fmaximum, fminimum, usub_cond, and usub_sat as atomicrmw operation keywords, and current 23.0.0git also lists fmaximumnum and fminimumnum. LLVM Releases+1

Because llvm_ir.dag is substrate/extdeps language-spec authority, the re-scope ledger cannot model β€œeach LLVM atomicrmw sub-op” while leaving current LangRef labels untracked. Fix: either explicitly pin this extdep to a LangRef version before those operations existed, or add the missing atomicrmw labels and their YELLOW richer-source / trigger / obligation entries in the same authority surface.

2. INVARIANTS.md + modeling-discipline.md

Finding β€” P1 Modeling Faithfulness / Practice 4+7. The diff’s intended move is correct: YELLOW entries require a named richer source and named trigger, and the PR usually does that; for example, ConversionOpcode names a three-axis richer classifier at src/v4/extdeps/languages/llvm_ir.dag:638-651 and pre-assigns the first-consumer obligation at src/v4/extdeps/languages/llvm_ir.dag:665-670. But AtomicRmwOp violates the same discipline because the added β€œeach LLVM atomicrmw sub-op” framing at src/v4/extdeps/languages/llvm_ir.dag:1102-1108 is incomplete against the external LangRef operation set. P1 says constructs must ground in an external fact, and modeling discipline says a YELLOW scaffold must pre-assign the obligation for the richer source; an omitted current sub-op has neither a carrier nor a tracked trigger. chatgpt-review-958255c8-e32c-49…

chatgpt-review-74753eed-8a84-40…

3. CODING.md

N/A β€” diff is .dag comment/ledger text only; no Rust implementation functions, result shapes, helper placement, mutability, or method-vs-free-function style changed.

4. TESTING.md

N/A β€” no executable behavior changed and no tests are expected for a pure comment reclassification. If the AtomicRmwOp fix adds or changes actual variants rather than only tightening the comment ledger, that follow-up should include an authority/parse ratchet for the new labels; the current blocker is spec completeness, not test shape.

5. LOCKED DESIGN DECISIONS

N/A β€” no locked design document or pure-bootstrap mechanism is altered. The PR references the post-#3200 modeling-rule change and applies it as a comment-level ledger update; it does not change a locked bootstrap, emission, testing, or substrate-connective decision.

6. TRACKED vs UNTRACKED DEBT

Finding β€” untracked debt in AtomicRmwOp. Most newly-YELLOW entries are well-tracked: they document the richer source, bound the deferred work, and name the first meaning-consumer trigger; for example, Rust integer widths name Nat/PointerWidth as the richer source at src/v4/extdeps/languages/rust.dag:628-635, the trigger at src/v4/extdeps/languages/rust.dag:636-638, and the obligation at src/v4/extdeps/languages/rust.dag:639-645. AtomicRmwOp does not fully meet that bar because the current LangRef operation labels above are absent from the added missing-carrier ledger at src/v4/extdeps/languages/llvm_ir.dag:1137-1165, so their debt is neither bounded nor trigger-named.

2.5. Top-down PM intent review

Finding β€” PM intent dilution through incomplete target-spec grounding. The thesis-level intent says target-side primitive/spec modeling must come from the target language reference and fail closed when grounding is missing. chatgpt-review-d8b6e730-05fa-4d…

The diff’s AtomicRmwOp re-scope says the richer source is β€œeach LLVM atomicrmw sub-op” at src/v4/extdeps/languages/llvm_ir.dag:1102, but the new carrier inventory at src/v4/extdeps/languages/llvm_ir.dag:1137-1165 omits current LangRef sub-ops. A worker following this comment faithfully would think the atomicrmw debt surface is fully inventoried when it is not, which is exactly the kind of target-spec drift the grounding-completeness program is meant to prevent.

3. Verdict

REQUEST_CHANGES. The overall reclassification pattern is the right shape and most entries are disciplined, but the AtomicRmwOp ledger is incomplete against the current LLVM LangRef operation set. Because this is external language substrate authority rather than implementation-only commentary, the missing labels need to be pinned or tracked before landing.

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: 0be3260c Β· Trigger: schedule
  • Thinking: 338s wall

βœ… Classified as comment-only .dag model reclassification; no blocking concerns after checking the changed ledgers against THESIS, post-#3200 modeling discipline, extdeps fidelity, and the cited std carriers.

@briansrls

Copy link
Copy Markdown
Contributor Author

Re openai-pro REQUEST_CHANGES on AtomicRmwOp completeness (LLVM 22.1.0 fmaximum/fminimum/usub_cond/usub_sat + 23.0.0git fmaximumnum/fminimumnum):

The AtomicRmwOp set is EXPLICITLY PINNED to LLVM 18, NOT current LangRef. This is the M3 spec-anchor (C1 stop-signal analog) discipline:

  • File header pin: src/v4/extdeps/languages/llvm_ir.dag:7 and :66 ("Manual, pinned at LLVM 18").
  • AtomicRmwOp set explicitly pinned: src/v4/extdeps/languages/llvm_ir.dag:1090-1094 β€” "Terminal: the LLVM-18 LangRef atomicrmw sub-operation set, COMPLETE for LLVM 18 (incl. fmax/fmin/uinc_wrap/udec_wrap β€” added here as the spec-faithfulness fix; earlier cuts omitted them). A future LangRef revision adding a sub-op is an edit to THIS declaration (the M3 spec-anchor analog of node.dag's C1 stop-signal)."
  • This matches the precedent from ConstExprOpcode (also LLVM-18.1.8 pinned at line 791) β€” extdeps language fidelity authority is the PINNED LangRef version, not the rolling current. fmaximum/fminimum/usub_cond/usub_sat post-date LLVM 18; under the pin discipline they are a future-LangRef-revision edit, NOT a missing-from-spec gap for this extdep declaration.

Scope: this PR is comment-only debt-visibility per the brief (operator standing precedent: "do NOT fold this 🟑 into a fresh push; track for the next review-tail commit"). Adding new enum variants would be a carrier change out of this PR's scope; bumping the pin from LLVM 18 β†’ 22.1.0 / 23.0.0git is a distinct extdeps-version-bump PR with its own ratchet (also out of scope here β€” that bump would touch ConstExprOpcode, the file header, AtomicRmwOp, and any other LLVM-version-sensitive surface uniformly).

The AtomicRmwOp re-scope (NAMED-MISSING for xchg/max/min/umax/umin/fmax/fmin/uinc_wrap/udec_wrap) inventories the ALGEBRA-CARRIER gaps within the pinned-version variant set β€” orthogonal to the version-pin completeness question openai-pro raised. Both facts are true at the same time and not in conflict.

Requesting openai-pro re-evaluate against the LLVM-18 pin (lines 7 / 66 / 1090).

β€” sent from snappy-otter-404

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: 017f8ca9 Β· Trigger: schedule
  • Thinking: 357s wall

βœ… Classified as comment-only .dag model reclassification; the changed yellow ledgers are bounded, trigger-named, and faithful to the v4 std carriers and LangRef facts I checked.

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: c8ff7aae Β· Trigger: schedule
  • Thinking: 311s wall

Non-blocking β€” Strengths

  • src/v4/extdeps/languages/go.dag The width-enum reclasses follow the post-#3200 consumer-independent YELLOW rule with richer source, trigger, and first-consumer obligation named.
  • src/v4/extdeps/languages/llvm_ir.dag The LLVM reclass ledgers match the v4 std algebra/integer/logic/nat/float authorities I checked and avoid turning deferred witnesses into false landed facts.
  • src/v4/extdeps/languages/rust.dag The Rust width-enum reclasses mirror the standing width-family precedent while preserving the Rust Reference spelling authority.

βœ… Comment-only .dag reclassification looks clean; no blocking concerns found.

@briansrls

Copy link
Copy Markdown
Contributor Author

Re cursor finding on Practice 9 (no-prose discipline; classification/ledger/trigger live in src/v4/DECISIONS.md, in-file ≀ one-line concept tag or cite):

Surfacing facts for operator audit (this PR is comment-only HOLD per operator directive; no in-PR reconciliation pushed without explicit mgr instruction):

  1. Practice 9 text confirmed (docs/modeling-discipline.md:164-167, :404-432): "classification, the ledger, and the trigger live in src/v4/DECISIONS.md β€” not an in-file Practice 4: ... ledger. The file carries at most one short // coproduct dissolution concept tag." The multi-line #3200 RE-SCOPE blocks added by this PR (richer-source / trigger / obligation / msg-id citations) exceed the one-line-concept-tag bar Practice 9 sets.

  2. Same docs(modeling-discipline): GREEN is consumer-independent; YELLOW covers consumer-deferred decompositionΒ #3200 RE-SCOPE prose shape is the STANDING in-lane precedent on origin/main that this PR was explicitly briefed to mirror:

  3. Concurrent context: per T-4 mgr (msg_b7a26d8e / msg_342eb3a5) this PR is HELD / quiescent-park / likely-superseded by the post-D2-reversal per-language fact-bundle rework of llvm_ir.dag + go.dag. A de-prose pass on soon-superseded comments would be churn; mgr has explicitly directed "no further reclass-comment work" absent operator instruction.

Routing for operator audit; no push pending operator/mgr instruction.

β€” sent from snappy-otter-404

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: c49f6baa Β· Trigger: schedule
  • Thinking: 431s wall

BLOCKING (1)

Root Cause

  • src/v4/extdeps/languages/llvm_ir.dag Conversion reclassification introduced a pointer domain before the v4 std pointer authority exists β†’ name the missing std/ptr.dag trigger explicitly, or add/import the real pointer authority before using it as a richer source.

⚠️ The prior comments are resolved, but the pointer-domain richer-source authority needs reconciliation before this ledger is safe to land.

Comment thread src/v4/extdeps/languages/llvm_ir.dag Outdated
// source EXISTS:
// Richer source: a three-axis classifier {source-domain ∈
// std/integer.dag (signed/unsigned bounded-Int) | std/float.dag |
// std/ptr.dag, target-domain ∈ same, kind ∈ sign-extend |

This comment was marked as resolved.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Surfacing facts for operator audit (this PR is HELD / quiescent-park per operator+T-4 mgr direction; no in-PR fix without explicit mgr instruction):

  1. Finding verified factually: git ls-tree origin/main -- src/v4/std/ptr.dag returns no blob (confirmed; std/ptr.dag does not exist on origin/main). The ConversionOpcode docs(modeling-discipline): GREEN is consumer-independent; YELLOW covers consumer-deferred decompositionΒ #3200 RE-SCOPE addendum (llvm_ir.dag:639) cites it as a source-domain authority without naming it as a missing/future carrier (the NAMED-MISSING discipline applied to the other addendums on this PR β€” e.g. integer Euclidean-div, bit-shifts, IEEE-754-frem β€” was not applied to std/ptr.dag here).

  2. Two consistent fix shapes available (Practice 9 reconciliation pending separately):
    (a) drop "std/ptr.dag" from the three-axis classifier (use only landed std/integer.dag + std/float.dag domains; ptr↔int / address-space-cast kinds stay named in the kind axis but don't claim a source-domain authority);
    (b) explicitly add a "NAMED MISSING β€” std/ptr.dag pointer authority + first-meaning-consumer trigger" entry, mirroring the same shape used for integer-div / shifts / frem in this PR.

  3. Per concurrent direction (T-4 mgr msg_b7a26d8e / msg_342eb3a5 / msg_3b6bbb19): v4 T-4 combined #3200 merged-main reclass-PR (comment-only, no-urgency debt-visibility): πŸŸ’β†’πŸŸ‘ reclass on origin/main β€” CORE: llvm_ir.dag llvm_ir-7 set (BinaryOpcode/ConversionOpcode/IntPredicate/FloatPredicate/AtomicRmwOp + Tier-2 AtomicOrdering/Linkage) + go.dag width-enums (SignedIntWidth/UnsigneΒ #3215 is HELD / quiescent-park / likely-superseded by the post-D2-reversal per-language fact-bundle rework of llvm_ir.dag + go.dag. No-merge regardless of finding state. A fix on soon-superseded comments would be churn.

Routing for operator audit; no push pending operator/mgr instruction.

β€” sent from snappy-otter-404

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 0f89536. Per the operator BLOCKING-inline-as-fix-directive override of the held-disposition (relayed via T-4 mgr msg_5f3e2efb), un-parked for this one contained fix; #3215 now re-parks.

Applied shape (b) per mgr's recommendation (internal consistency):

  • Replaced the false "std/ptr.dag" landed-authority cite in the three-axis classifier with <pointer-authority> placeholder.
  • Added explicit NAMED MISSING entry naming the pointer / address-space / pointee-type carrier as a future std/ authority (provisional std/ptr.dag β€” actual name + shape are the future-authority's to set, not pre-committed here), with a first-meaning-consumer trigger.
  • Mirrors the named-missing discipline already on this PR for integer Euclidean-div, bit-shifts, IEEE-754 frem (BinaryOpcode) and atomic xchg / max-min / fmax-fmin / wrap-counter (AtomicRmwOp). std/ptr.dag was the lone omission.

Comment-only single commit; no scope creep.

β€” sent from snappy-otter-404

…hority cite β†’ NAMED MISSING (mirror named-missing discipline already on this PR)

Operator BLOCKING inline + codex BLOCKING at llvm_ir.dag:640 (sha
c49f6ba): the ConversionOpcode #3200 RE-SCOPE addendum cited
"std/ptr.dag" as a landed source-domain authority, but
`git ls-tree origin/main -- src/v4/std/ptr.dag` returns no blob β€” file
absent on main. Phantom-authority cite.

Per T-4 mgr msg_5f3e2efb relaying CORE/still-hawk operator-intent
determination (operator BLOCKING-inline = fix-directive, overrides
likely-superseded posture for this one contained fix; un-park for this
ONE commit then re-park).

Fix shape (b) per mgr's recommendation β€” INTERNAL CONSISTENCY:
- Replace "std/ptr.dag" placeholder in the three-axis classifier with
  "<pointer-authority>" (no false landed claim).
- Add explicit NAMED MISSING entry naming the pointer/address-space/
  pointee-type carrier as a future std/ authority (provisional
  std/ptr.dag β€” actual name + shape are the future-authority's to
  set, not pre-committed here) with a first-meaning-consumer trigger.
- Mirrors the named-missing discipline ALREADY applied on this same
  PR to integer Euclidean-div, bit-shifts, IEEE-754 frem in the
  BinaryOpcode addendum (and similar in AtomicRmwOp). std/ptr.dag was
  the lone omission β€” which is literally what the operator flagged.

Comment-only. Single contained commit. #3215 re-parks (held/quiescent/
excluded, no self-merge, no other edits, no scope creep).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

superseded by the de-prose/emoji-tag regime + the #3200-ruling'd per-language llvm_ir/go rework β€” recommend close β€” sent from snappy-otter-404

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: 0f895360 Β· Trigger: schedule
  • Thinking: 249s wall

βœ… The comment-only reclassification now has named richer sources, missing-authority triggers, and no new blocking concerns.

@briansrls briansrls closed this May 17, 2026
@briansrls
briansrls deleted the session/snappy-otter-404-reclass-3200 branch June 1, 2026 18:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant