Skip to content

docs: ADR-0019 (Proposed) and plan 006 - #198

Merged
h0ffmann merged 3 commits into
mainfrom
goal/abbb0456-5370-gtest-infra-plan
Oct 18, 2026
Merged

h0ffmann merged 3 commits into
mainfrom
goal/abbb0456-5370-gtest-infra-plan

Conversation

@h0ffmann

@h0ffmann h0ffmann commented Oct 18, 2026 •

Copy link
Copy Markdown
Owner

Before. ADR-0010 removed every unit test of a ported routine and kept the tool tests. Since PR #191, every resident run depends on C++ that ports no WW3 routine:

  • the resident spectrum's state machine, its column syncs and cache (resident_shim.cpp, 599 lines);
  • the flags, presets, strict mode and fallback slots (part_flags.cpp, 135 lines).

That code had no test faster than a WW3 regtest. The review of #191 found its gaps by reading.

After. ADR-0019 (Proposed) would allow GoogleTest suites for that infrastructure only. Each suite goes through the public C ABI, on a host backend, and with a planted-defect check per test. Ported routines keep ADR-0010 unchanged.

Plan 006 covers:

Nothing is built before the owner accepts ADR-0019.

Goal abbb0456-5370, Claude Code session e664b977-8f49-44ff-a914-0cf9abbb0456.

Check Result
nix shell nixpkgs#vale -c scripts/vale.sh on the ADR, the ADR index and the plan rc 0, 0 errors
python3 scripts/adrs.py lists ADR-0019 Proposed
python3 -m unittest discover tests 88 OK

For the owner: accept, change or reject ADR-0019. Then, in plan 006's T2, decide whether WW_KOKKOS_STRICT=true or yes should turn strict mode on.

🤖 Generated with Claude Code

h0ffmann and others added 2 commits October 18, 2026 18:16
…frastructure

Goal abbb0456-5370, the owner's question of 2026-10-18 (session
e664b977-8f49-44ff-a914-0cf9abbb0456): whether GoogleTest can test this
repository beside WW3's regtests. ADR-0010 stays unchanged for ported
routines; ADR-0019 proposes GoogleTest suites for the code that ports no
WW3 routine and that every resident run depends on: the resident
spectrum's state machine, column syncs and cache (resident_shim.cpp), the
flags, presets, strict mode and fallback slots (part_flags.cpp), the
presets table against its three readers, and the installed package config.
Plan 006 ranks them by what a silent defect costs since PR #191, shows how
the public C ABI observes every state without a test hook, lists the test
cases, and asks for a planted-defect check per test before the suites
enter.

Tested: nix shell nixpkgs#vale -c scripts/vale.sh on the ADR, the ADR index and the plan, rc 0; python3 scripts/adrs.py lists ADR-0019 Proposed; python3 -m unittest discover tests, 88 OK; relative links of both files resolve

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The owner stopped this session's runs for another session to continue.
The entry records what PR #191 delivered with its records, the state and
next step of every open branch (the follow-up of #191's review, pushed
without a PR; this PR's ADR-0019 and plan 006; the Fortran A/B harness),
what waits on the owner, and the traps met on the way.

Tested: nix shell nixpkgs#vale -c scripts/vale.sh on the entry and the log index, rc 0; python3 -m unittest discover tests, 88 OK

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@h0ffmann

Copy link
Copy Markdown
Owner Author

Handover: this session is stopped, and another session takes over

The full record is in docs/log/2026-10-18-goal-abbb0456-handover.md on this branch (4eb7488).

What worked. #191 merged (5cd0140, pin 50a10730, and ww3-gpu/kokkos-pnt fast-forwarded to it):

  • the ww3_multi defect is fixed;
  • full makes no whole-spectrum copy in steady state;
  • strict mode and the preset are in;
  • partitioning and the output readers run on the resident spectrum;
  • ww_kokkos installs on its own;
  • the CUDA build compiles.

WW3's regtests on the rebased tree: resident serial 5 PASS (the two ww3_tp2.6 FAILs are by design), OMPG 10/10, mww3_test_01 to _05 and ww3_tnc1 0 files different.

Open work:

  1. goal/abbb0456-8241-strict-outg-poison, the follow-up of Production single-node Kokkos runtime: no-copy resident VA, strict mode, preset, packaging, GPU-run plan #191's review findings 1 to 3. Pushed, no PR. Already shown in its log (docs/log/2026-10-18-strict-outg-poison.md):

    • smoke and full are byte-identical with POISON on;
    • a strict run stops on the OUTG fallback;
    • under all, ww3_tnc1 runs again.

    Left to do: the resident matrix result, port_score --write, the security review, and just pr. Note for whoever continues: smoke asks for WBT/SKW, so a strict resident smoke stops (37 OUTG fallbacks); ww3-gpu.sh sets no strict mode, so it still passes there.

  2. This PR (docs: ADR-0019 (Proposed) and plan 006 #198): the owner accepts or changes ADR-0019, and answers plan 006's strict-parsing question.

  3. goal/abbb0456-6043-fortran-ab (e9366f9): the Fortran A/B harness. No PR; the owner decides where it goes.

Waiting on the owner:

Runs: every run of this session is stopped. The one ww3_shel still running is in ~/code/ww3-gpu-2, another session's, and was left alone.

Brings in #197 (the NOAA record, plan 005, the S0 log and L1). One conflict, in the dated
table of docs/log/README.md: both sides appended a 2026-10-18 row; the log is append-only, so
both rows are kept, main's first.

Tested: scripts/vale.sh and lychee --offline on docs/log/README.md and the PR's four files, 0 errors; python3 scripts/figures.py check, current
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@h0ffmann
h0ffmann merged commit f9c089b into main Oct 18, 2026
10 checks passed
h0ffmann added a commit that referenced this pull request Oct 18, 2026
Brings in #198 (ADR-0019, plan 006, the abbb0456 handover). One conflict, in the dated table of
docs/log/README.md: both sides appended a 2026-10-18 row; both are kept, main's first.

Tested: no conflict marker left in docs/log/README.md (grep)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
h0ffmann added a commit that referenced this pull request Oct 18, 2026
What this session finished (#197: the NOAA record and its ten-run median, plan 005, S0, L1;
the merge that unblocked #198), what is open (#199's regtest run and review, plan 005 L3 to
L7, the uncommitted opportunity and GFS-Wave analysis), what waits on the owner, and the traps
met: unpinned one-thread timings on a hybrid CPU, the load average counting the job itself,
g++'s -ftrapping-math and lane loops, -Wpsabi without -march, pkill -f killing its own shell.

Tested: scripts/vale.sh on the entry and docs/log/README.md, exit 0, 0 errors; lychee --offline on both, 0 errors
Co-Authored-By: Claude Opus 5.5 <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