Skip to content

v4 T-4 go: model extdeps/languages/go.dag — Go scalar/channel/export vocabulary slice (fan-out from rust #3174) - #3179

Closed
briansrls wants to merge 2 commits into
mainfrom
session/bright-crane-527-go
Closed

briansrls wants to merge 2 commits into
mainfrom
session/bright-crane-527-go

Conversation

@briansrls

@briansrls briansrls commented May 16, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Structural finding: NO STOP from the type-system surface. Go's predeclared scalar vocabulary, channel-direction effect-typing locus, and binary export-status visibility all fit the substrate's closed Disj + Conj classifier shape without modification. No 7th connective, no 6th behavior. Mirrors the operator-RATIFIED canonical-rust shape (v4 T-4 rust-slice: extdeps/languages/rust.dag — type-system vocabulary + classifiers (no STOP) #3174 loyal-koi-702) with per-language facts surfaced:
    • Go has no reference-kind partition (no &/&mut; pointers are uniform); the IN-B effect-typing locus for Go is channel direction (Go spec §Channel_types). Same IN-B principle (effects intrinsic to type signature), different per-language carrier — Rust borrow-kind, Verilog signal-type, PTX state-space, Go channel-direction.
    • Go has primitive complex types (complex64/complex128) that Rust lacks at the language layer; declared as their own scalar kind partition member per spec §Numeric_types (INVARIANTS P1 modeling-faithfulness).
    • Go spec preserves int/uint and uintptr as structurally distinct platform-dependent integer kinds (PlatformInt + PointerSized variants in GoIntWidth, NOT collapsed to one Pointer variant like Rust's isize/usize).
    • Go visibility is encoded structurally in the identifier's first-letter case (spec §Exported_identifiers); the parser reads the spelling at the K-1 boundary and emits a GoExportStatus tag — kernel/lens code reads the tag, never the spelling.
  • Declares 8 closed-Disj coproducts (each with full 5-pattern Practice-4 ledger including Practice-7): GoIntKind, GoIntWidth (6-way), GoFloatWidth, GoComplexWidth, GoScalarKind (5-way: Int/Float/Complex/Bool/String), GoScalar (Disj-with-named-payloads — illegal kind×width unrepresentable), GoChannelDirection, GoExportStatus. 2 Conj records (no ledger): GoChannel (the IN-B effect-typed carrier), GoCost (🟡 raw-Int scaffold).
  • Deferred with named-owner+trigger (do not author, do not improvise): emit/parse ops ride D1 Outcome when ratified in std/diagnostic.dag; per-target scalar inhabitance rides pending D2 form-decision (PR T-4.12: model extdeps/languages/llvm_ir.dag — LLVM IR LanguageModel (B2-OMNI probe PASS) #3171 hold precedent); bidirectional Go LanguageModel grammar productions ride the T-4 bundle; composite types + goroutine grammar are scope-negative.

Per-section spec anchors: Each carrier carries // Spec: https://go.dev/ref/spec#<section> (Numeric_types, Boolean_types, String_types, Types, Channel_types, Exported_identifiers, plus member-by-member spec links in modeling notes for the GO → SUBSTRATE FIT mapping) per operator standing requirement (authored from the start).

Imports: only Symbol from v4.std.node. std/algebra.dag NOT imported per D2 deferral; std/diagnostic.dag NOT imported per D1 deferral. Scaffold-header Consumes preserved verbatim, staleness surfaced in Status riding systemic reconciliation (msg_1fddb75c), uniform with ptx #3170, spice #3168, llvm_ir #3171, rust #3174, verilog #3176.

Test plan

  • v2-compiler compile --source-root src/v4 --target dag → 63 modules / 0 diagnostics
  • Every closed-Disj coproduct ≥2 variants carries the full 5-pattern Practice-4 ledger with the "five patterns attempted" lead-in (8 ledgers total)
  • Scaffold-header Scope / Owns / Stress / Unifies lines preserved verbatim; staleness surfaced in Status, not silently rewritten (manager directive)
  • No per-target algebra inhabitance instance-values declared (D2 deferred)
  • No parse/emit function bodies declared (D1 Outcome deferred)
  • No data <name>: Algebra<C> = … rows authored (the PR T-4.12: model extdeps/languages/llvm_ir.dag — LLVM IR LanguageModel (B2-OMNI probe PASS) #3171 improvisation precedent)
  • Imports limited to declaration-class needs (Symbol only; algebra/diagnostic correctly NOT imported)
  • No new files; no new std/ concepts; no hand-Rust
  • Per-carrier // Spec: anchor URLs to https://go.dev/ref/spec sections

🤖 Generated with Claude Code

briansrls and others added 2 commits May 16, 2026 01:00
…ehaviors (IN-B probe PASS)

IN-B probe RESULT: PASS — Verilog hardware concurrency models cleanly
under the existing five L1 behaviors with NO 6th `Concurrent` behavior
and NO core/pipeline change. The probe surfaces the structurally-
correct intra-vs-cross-program partition: intra-program HW concurrency
(parallel always-blocks / continuous assigns within one module) is the
Conj-of-parallel-siblings + Bind-chain-within-always shape, with per-
language effect-typing intrinsic to the wire/reg/vector signal type;
cross-program coordination (Endpoint/DeploymentUnit/messaging) is a
distinct concern owned by extdeps/coordination.dag (T-4.8).

Declares closed-Disj coproducts (each with full 5-pattern Practice-4
ledger — Fact-placement / Variant-is-data / Algebraic-form / Dimensional
/ Parameterized-family-Practice-7 per modeling-discipline.md §4):
PortDirection, NetType, VariableType, EdgeTrigger,
ProceduralAssignKind, PackingShape, ModuleItem. Conj records (no
ledger): VectorRange (🟡 scaffold), NetDeclaration, VariableDeclaration,
PortDeclaration, ParameterDeclaration, SensitivityItem,
ContinuousAssign, AlwaysBlock, InitialBlock, PortConnection,
ModuleInstance, VerilogModule, VerilogCost (🟡 scaffold).

DEFERRED with named-owner+trigger (do not author, do not improvise):
- emit/parse ops ride D1 Outcome<T> (Produced{value:T}|Rejected{...})
  when ratified in std/diagnostic.dag (v4 value-or-Diagnostic STOP
  surfaced by T-4.6 keen-wren-419).
- Bit-vector inhabitance (Semiring<UInt<N>> / OrderedRing<Int<N>>) rides
  pending D2 instance-value form (PR #3171's worker pushback precedent).
- Expression sub-grammar (RHS of assign, procedural-statement bodies,
  control-flow conditions) ride the T-4 LanguageModel bundle; verbatim
  String lexemes carry the textual surface in the interim (spice.dag
  SpiceValue.lexeme precedent).

Scaffold-header Consumes line preserved verbatim with surfaced staleness
(primitive.dag deleted PR #3152; coordination.dag is an unfilled scaffold
modeling cross-program coordination — a different concern from intra-
program HW concurrency). The systemic per-file Consumes reconciliation
is pending operator ratification (T-4 mgr synthesis msg_1fddb75c).

Verification: `v2-compiler compile --source-root src/v4 --target dag`
= 63 modules / 0 diagnostics.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…vocabulary slice (fan-out from rust #3174)

Structural finding: NO STOP from the type-system surface. Go's predeclared
scalar vocabulary, channel-direction effect-typing locus, and binary export-
status visibility all fit the substrate's closed Disj + Conj classifier
shape without modification. No 7th connective, no 6th behavior. Mirrors
the operator-RATIFIED canonical-rust shape (#3174 loyal-koi-702) with
per-language facts surfaced:

- Go has NO reference-kind partition (no `&`/`&mut`; pointers are uniform);
  the IN-B effect-typing locus for Go is CHANNEL DIRECTION instead. Same
  IN-B principle (effects intrinsic to type signature), different per-
  language carrier — Rust borrow-kind, Verilog signal-type, PTX state-
  space, Go channel-direction.
- Go has primitive complex types (complex64/complex128) that Rust lacks
  at the language layer; declared as their own scalar kind partition
  member per Go spec §Numeric_types (INVARIANTS P1 modeling-faithfulness).
- Go spec preserves `int`/`uint` and `uintptr` as STRUCTURALLY DISTINCT
  platform-dependent integer kinds (the spec does not equate them, even
  on platforms where they happen to be the same width); modeled as
  PlatformInt + PointerSized variants in GoIntWidth, not collapsed to
  one Pointer variant. Per-language spec partition, not Rust's collapse.
- Go visibility is encoded structurally in the identifier's first-letter
  case at the LEXICAL surface (per Go spec §Exported_identifiers); the
  parser reads the spelling at the K-1 boundary and emits a GoExportStatus
  tag onto the enclosing declaration's Conj record. Kernel/lens code
  reads the tag, never the spelling — exactly the K-1 boundary-intern-
  table discipline.

Declares 8 closed-Disj coproducts (each with full 5-pattern Practice-4
ledger including Practice-7): GoIntKind, GoIntWidth (6-way per the spec
partition), GoFloatWidth, GoComplexWidth, GoScalarKind (5-way: Int/Float/
Complex/Bool/String), GoScalar (Disj-with-named-payloads — illegal
kind×width combinations unrepresentable), GoChannelDirection, GoExportStatus.
2 Conj records (no ledger): GoChannel (the IN-B effect-typed carrier),
GoCost (🟡 raw-Int scaffold per std/cardinality.dag dissolution trigger).

DEFERRED with named-owner+trigger (do not author, do not improvise):
- emit/parse ops ride D1 Outcome<T>=Produced{value:T}|Rejected{diagnostic:
  Diagnostic} when ratified in std/diagnostic.dag (operator-pending).
- Per-target scalar inhabitance instance-values ride pending D2 form-
  decision (PR #3171 worker pushback precedent; #3174 blessed deferral
  shape).
- Bidirectional Go LanguageModel grammar productions ride the T-4 bundle.
- Composite types (slices/arrays/structs/maps/interfaces/functions) and
  goroutine `go` keyword grammar are scope-negative for this slice
  (LanguageModel bundle).

Per-section spec anchors: Each carrier carries `// Spec: https://go.dev/
ref/spec#<section>` (Numeric_types, Boolean_types, String_types, Types,
Channel_types, Exported_identifiers) per operator standing requirement
(authored from the start, not retrofitted).

Imports: only `Symbol` from v4.std.node (the K-1 opaque kernel identity
used as the channel element-type-reference on GoChannel). std/algebra.dag
NOT imported per D2 deferral; std/diagnostic.dag NOT imported per D1
deferral. Same pattern as rust.dag #3174.

Scaffold-header `Consumes` line preserved verbatim; effective-imports
discrepancy surfaced in Status, riding systemic per-file Consumes
reconciliation (T-4 mgr synthesis msg_1fddb75c) — uniform with ptx #3170,
spice #3168, llvm_ir #3171, rust #3174, verilog #3176.

Verification: `v2-compiler compile --source-root src/v4 --target dag`
= 63 modules / 0 diagnostics.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@briansrls briansrls changed the title T-4.9 verilog v4 T-4 go: model extdeps/languages/go.dag — Go scalar/channel/export vocabulary slice (fan-out from rust #3174) May 16, 2026
@briansrls
briansrls marked this pull request as ready for review May 16, 2026 01:21
@briansrls

Copy link
Copy Markdown
Contributor Author

Superseded by #3182 — that branch is cut from main and contains only src/v4/extdeps/languages/go.dag, fixing the multi-file contamination noted by T-4 mgr msg_02f308d6 (this branch inadvertently carried verilog.dag because it was cut from session/bright-crane-527). Verilog stays untouched at #3176. — sent from bright-crane-527

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