diff --git a/crates/ogar-vocab/src/lib.rs b/crates/ogar-vocab/src/lib.rs index f706a37..285a85c 100644 --- a/crates/ogar-vocab/src/lib.rs +++ b/crates/ogar-vocab/src/lib.rs @@ -1526,13 +1526,38 @@ pub enum ConceptDomain { /// transcribing a GPL/AGPL implementation, so this public codebook stays /// unencumbered while GPL consumers link it freely. Blocks, - /// `0xC0XX` — **Java runtime** (Project Panama + Project Valhalla): the - /// managed-runtime membrane over the SoA substrate. The **floor of the - /// C-band** — the door every other tenant of that layer arrives through. - /// Carries ZERO vocabulary rows today — same reserved posture as - /// [`Osint`](Self::Osint) / [`Genetics`](Self::Genetics) / - /// [`Blocks`](Self::Blocks): the slot returns a stable domain tag before - /// any concept mints (operator ruling, 2026-08-18). + /// `0xC0XX` — **Java runtime (Panama FFM)**: the managed-runtime + /// membrane over the SoA substrate via Project Panama's Foreign + /// Function & Memory API — downcalls, memory segments, lanes, arenas, + /// masks. The **floor of the C-band** — the door every other tenant of + /// that layer arrives through. Carries ZERO vocabulary rows today — + /// same reserved posture as [`Osint`](Self::Osint) / + /// [`Genetics`](Self::Genetics) / [`Blocks`](Self::Blocks): the slot + /// returns a stable domain tag before any concept mints (operator + /// ruling, 2026-08-18). + /// + /// **Valhalla deliberately has NO domain representation here — and NOT + /// because it is unintegrated** (cross-session ruling, 2026-08-18, + /// `lance-graph-java` × `ruff`/R2IL: *"a `ConceptDomain` is a + /// vocabulary of ADDRESSABLE things; Panama's crossing concepts — + /// downcalls, segments, lanes, arenas, masks — are addressable, while + /// Valhalla flatness is a property of a representation. If it ever + /// needs surfacing, it's a facet on an existing concept, not a + /// domain."*). Valhalla IS integrated in `lance-graph-java`, in two + /// real senses: the shipping descriptor vocabulary (`LaneId` / + /// `Ordinal` / `MaskId` / `RowRange` / `FacetId`) is designed so the + /// same source compiles as `value record` under JEP 401 — migration is + /// one word per type — and a real Valhalla EA build (`27-jep401ea3`) + /// ran the A/B with measured results (array flattening cliff at 8-byte + /// payload; 4–8-byte descriptors 5.5× smaller / up to 8.3× faster + /// where flattening applies; bulk data stays native, winning 38–57× + /// on both platforms). Precisely BECAUSE that integration is a + /// designed property OF the `0xC0` concepts' vocabulary rather than a + /// concept itself, it mints no address: properties of concepts do not + /// get domains. This corrects the prior doc text here, which bundled + /// the two as "Panama + Valhalla" as if both named crossing surfaces. + /// A genuine Valhalla concept, if one is ever needed, is argued fresh + /// on its own merits — it does not inherit squatting rights in `0xC0`. /// /// First named consumer: `lance-graph-java`'s planned schema/classid /// field on `LgjResourceInfo` / `LgjLaneDesc`, by which a native diff --git a/docs/APP-CLASS-CODEBOOK-LAYOUT.md b/docs/APP-CLASS-CODEBOOK-LAYOUT.md index 71eb88e..2988753 100644 --- a/docs/APP-CLASS-CODEBOOK-LAYOUT.md +++ b/docs/APP-CLASS-CODEBOOK-LAYOUT.md @@ -68,7 +68,7 @@ classid : u32 = [ hi u16 : in-codebook class ] [ lo u16 : APP / codebook name | slot | domain | why there | |---|---|---| - | `0xC0` | `JavaRuntime` (Panama + Valhalla) | the managed-runtime membrane over the SoA substrate — the **floor** of the band | + | `0xC0` | `JavaRuntime` (Panama FFM) | the managed-runtime membrane over the SoA substrate — the **floor** of the band. Valhalla deliberately has NO domain slot — not because it is unintegrated (lance-graph-java's shipping descriptor vocabulary is `value record`-ready by design, one word per type, with measured EA-build numbers) but because it is a representation *property of* the C0 concepts' vocabulary, never an addressable boundary itself — see the `JavaRuntime` doc comment in `ogar-vocab` | | `0xC1` | `Analytics` | the analyst estate — addressable tabular units + catalog ontology (`ogar-bricks` and a lakehouse consumer are two app prefixes over ONE vocabulary) | | `0xC4` | `BinaryLifting` | bolted onto `0xC0` (Ghidra is itself a JVM application), so a **tenant** of that layer rather than a peer; the slot number is the blast radius | diff --git a/docs/DISCOVERY-MAP.md b/docs/DISCOVERY-MAP.md index 43a2b85..683f34c 100644 --- a/docs/DISCOVERY-MAP.md +++ b/docs/DISCOVERY-MAP.md @@ -1687,6 +1687,18 @@ isolation. The map's job is to keep them visible. stratum. Cross-ref: that repo's `.claude/board/EPIPHANIES.md` `E-LGJ-THE-DOMAIN-BYTE-CARRIES-ALTITUDE-1`. + **Correction (2026-08-18, same day, cross-session ruling lance-graph-java × + ruff/R2IL):** the parenthetical above reads "(Panama + Valhalla)" — the slot + is **Panama FFM alone**. Valhalla gets no domain representation: a + `ConceptDomain` is a vocabulary of ADDRESSABLE things, and Valhalla is a + representation property (flatness) OF the C0 vocabulary, not a crossing + concept. Stated precisely so the ruling is not misread as "Valhalla is + unintegrated": lance-graph-java's shipping descriptor types are + `value record`-ready by design (one-word migration under JEP 401) and the + A/B ran on a real EA build with measured numbers — the integration is a + designed property of the concepts, which is exactly why it mints no + address. Canonical text: the `JavaRuntime` doc comment in `ogar-vocab`. + - **[D-BLOCKS-DOMAIN] `0x17XX` reserved as ConceptDomain::Blocks — the shared visual block-programming opcode vocabulary, ONE canon domain under two app prefixes** — `[G]` (CODED, reserved-empty, 2026-08-04, operator-chosen slot)