Skip to content

chore: reproducible native FVS build script for parity testing#10

Merged
mihiarc merged 1 commit into
mainfrom
chore/native-fvs-build-script
Jun 21, 2026
Merged

chore: reproducible native FVS build script for parity testing#10
mihiarc merged 1 commit into
mainfrom
chore/native-fvs-build-script

Conversation

@mihiarc

@mihiarc mihiarc commented Jun 21, 2026

Copy link
Copy Markdown
Owner

Adds scripts/build_native_fvs.sh — a reproducible, documented build for the native FVS Fortran shared libraries that the parity suite validates against. This is the "scripted + documented native build" deliverable of the M0 milestone (re-establishing parity measurement).

What it does

  • Compiles each requested variant from the FVS source via the repo's own bin/makefile (make FVS<v>.so), using per-variant build dirs to avoid multiple-definition collisions.
  • Installs FVS<variant>.so to ~/.fvs/lib (where pyfvs.native and the parity conftest discover libraries) and ad-hoc code-signs on macOS.
  • Defaults to all 11 pyfvs variants (SN, LS, CS, NE, PN, WC, EC, CA, WS, OP, OC); accepts a subset.
  • Auto-initializes the volume/NVEL git submodule if missing.

Docs

native/BUILD.md now calls out the two non-obvious steps that otherwise block a build:

  • the volume/NVEL (NVEL volume library) git submodule must be initialized — a fresh checkout fails on beqinfo.inc;
  • the parity tests are auto-marked parity and deselected by the default config, so they must be run with -m parity.

Verified

Built all 11 variants on macOS arm64 (gfortran 15.2). Parity suite runs: 34 pass · 13 xfail · 6 xpass · 1 fail (54 tests).

🤖 Generated with Claude Code

Adds scripts/build_native_fvs.sh, which compiles the native FVS Fortran
shared libraries (FVS<variant>.so) for the parity suite and installs them
to ~/.fvs/lib. Builds any variant subset (default: all 11 pyfvs variants)
via the FVS repo's own makefile, using per-variant build dirs to avoid
multiple-definition collisions, and ad-hoc code-signs on macOS.

Also documents in native/BUILD.md the two non-obvious steps that block a
build: the volume/NVEL git submodule must be initialized, and the parity
tests must be opted into with `-m parity` (the default config deselects
them).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mihiarc mihiarc merged commit 3120299 into main Jun 21, 2026
3 checks passed
@mihiarc mihiarc deleted the chore/native-fvs-build-script branch June 21, 2026 11:04
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