Skip to content

docs(vms-da0): OpenVMS GCC port × OVMX faithful-surface gap analysis - #709

Merged
baron-3dl merged 1 commit into
mainfrom
work/vms-da0-gap-analysis
Aug 28, 2026
Merged

baron-3dl merged 1 commit into
mainfrom
work/vms-da0-gap-analysis

Conversation

@baron-3dl

Copy link
Copy Markdown
Contributor

First gap-analysis pass for the corrected GCC-oracle-lane charge (operator, relayed via ACP conductor 2026-08-22): build OVMX's own VMS surface UP until the real OpenVMS GCC port builds+runs on it — Linux GCC is a correctness oracle only, never a vendored/hacked shipped artifact. Companion to #708 (which reverted the cc1-specific LINK hacks).

Goalpost stood up: alpha-dec-vms (GCC 8.5.0, machinery carries to 14.2.0), obtained sparse/blobless to /tmp as oracle — never vendored into the repo.

Six axes mapped requirement-vs-current with file:line cites (both the real port source and OVMX's surface, via three scout agents):

Axis Headline
CRTL/DECC$SHR 372-universal musl shim; port needs decc$-prefixed universals (decoration rules) → can't even link (R1) + I/O bypasses RMS (R2)
LINK ELF-in/symbol-vector-out; port drives native LINKER via vms-ld .opt grammar → teach LINK the .opt front-end (R3) + object-format call (R4)
RMS Already strong (versioning/records/temp) — gap is the CRTL not reaching it
Spawn lib$spawn /NOWAIT completion AST/EF discarded (R6, vms-e9a)
Condition handler-stack emulation, no real frame unwind; Alpha PDSC/CHF/invocation-context = deep OVMX-Alpha runtime rung (R8)

Ends with 10 outcome-shaped ladder rungs (owner L=lane / C=conductor) and the P1 (port runs on OVMX-Alpha) before P2 (port builds on OVMX) sequencing.

First march: R1 (decc$ vector) → R2 (CRTL→RMS) → R3/R4 (LINK .opt + object format).

rd rungs to be filed under vms-da0 after the epic reframe lands (coordinating with the conductor's fork). Three open design questions at the end (goalpost arch — resolved; CRTL↔RMS binding; object format).

Doc only — no code change.

First gap-analysis pass for the corrected GCC-oracle-lane charge: build OVMX's
own VMS surface UP until the real OpenVMS GCC port (alpha-dec-vms) builds+runs
on it — Linux GCC is oracle-only, never a vendored/hacked shipped artifact.

Goalpost stood up: alpha-dec-vms (GCC 8.5.0, carries to 14.2.0), obtained
sparse/blobless to /tmp as oracle (never vendored). Six axes mapped
requirement-vs-current with file:line cites (OVMX surface + real port source):

- CRTL/DECC$SHR: today a 372-universal MUSL shim; the port references
  decc$-prefixed universals with vms.c decoration rules => it can't even link
  (NAMING gap, R1) and the musl file layer bypasses RMS (SEMANTICS gap, R2).
- LINK: ELF-in / symbol-vector-out; the port drives the native LINKER via a
  vms-ld .opt grammar (IDENT/GSMATCH/symbol_vector/cluster/PSECT_ATTR) => teach
  LINK the .opt front-end mapped onto native .vms$sv/GSMATCH (R3); object-format
  design call (R4).
- RMS is already STRONG (versioning/records/temp) — the gap is the CRTL not
  reaching it, not RMS itself.
- Spawn: lib$spawn /NOWAIT completion AST/EF discarded (R6, vms-e9a).
- Condition/calling standard: handler-stack emulation, no real frame unwind;
  Alpha PDSC/CHF/invocation-context is a deep OVMX-Alpha runtime rung (R8).

Ends with 10 outcome-shaped ladder rungs (owner L=lane / C=conductor) and the
P1 (port runs on OVMX-Alpha) before P2 (port builds on OVMX) sequencing. rd
rungs to be filed under vms-da0 after the epic reframe lands.
@baron-3dl
baron-3dl merged commit 8e4c0fc into main Aug 28, 2026
94 checks passed
@baron-3dl
baron-3dl deleted the work/vms-da0-gap-analysis branch August 28, 2026 13:33
baron-3dl added a commit that referenced this pull request Aug 28, 2026
…ce parity, SHOW USERS de-fab (#858)

Bumps OVMX_PRODUCT_VERSION and os-release V0.5-7 -> V0.5-8. 14 commits since V0.5-7.

Distributed Lock Manager — the cross-node ladder tops out at a real GRANT:
  - #849 vms-e8f1/vms-17c  DLM rung-2 (H4): the first REAL cross-node $ENQ GRANT
                           — node B holds a lock on A's behalf for A's CSID,
                           $ENQ returns SS$_NORMAL over live SCS (no longer
                           INV-6 "grants nothing"). The distributed lock
                           manager now actually locks across nodes.
  - #845 vms-209          DLM harness H3 — a cross-node $ENQ reaches node B's
                           real executive
  - #843 vms-4bd0         DLM harness H2 — two real-executive QEMU nodes
                           complete the full VMS$VAXcluster join
  - #842 vms-534          DLM harness H1 — two real-executive nodes exchange
                           the 0x6007 HELLO over a socket netdev
  - #840 vms-4b6          DLM harness rung H0 — SCSD.EXE composes with a real
                           executive
  - #841 docs             Alpha cross-node DLM wire oracle — observed SCS
                           transport + documented GRANT semantics (Rule 8)

Alpha co-release parity — authenticated login + the shared SHOW battery:
  - #852 vms-f2c          Alpha DCL/SHOW acceptance parity — the same shared
                           11-command battery x86_64 runs, now on
                           qemu-system-alpha
  - #847                  vms.ko guards BG fork-inherit tracepoints behind
                           CONFIG_TRACEPOINTS (Alpha P0 modpost fix)

Authenticity (INV-6 de-fabrication):
  - #839 vms-6a1          SHOW USERS fails honestly when the executive is
                           absent — no more per-process fabricated user list

Boot console fidelity:
  - #850 vms-dec          kill boot-console newline spam (the operator's echoed
                           RETURNs) + a type-during-boot regression gate

Networking (layered-product promotion):
  - #851 vms-67f          TCP/IP Services promoted to a first-class layered
                           product — build plan + roadmap (1.0 blocker)

Docs / ledger:
  - #745                  Alpha C-RTL archive DECIDED — Option A (operator
                           ruling 2026-08-23)
  - #709 vms-da0          OpenVMS GCC port × OVMX faithful-surface gap analysis
  - #838                  reconcile the release block for the V0.5-7 tag
                           (INV-LEDGER)

QA'd under KVM boot-to-login on the workshop host with the full SHOW
acceptance battery VMS-faithful; boot console clean (no newline flood) and
SHOW USERS honest. Release notes are generated at tag time by
tools/gen_release_notes.py (INV-LEDGER single-ledger); the roadmap narrative
block + public site are the conductor's reconcile (INV-0/INV-LEDGER).

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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