Skip to content

docs(chapel): PIC-from-source rebuild ADR + Justfile recipe#150

Merged
hyperpolymath merged 1 commit into
mainfrom
feat/chapel-pic-from-source-recipe
May 30, 2026
Merged

docs(chapel): PIC-from-source rebuild ADR + Justfile recipe#150
hyperpolymath merged 1 commit into
mainfrom
feat/chapel-pic-from-source-recipe

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

Summary

Wave-2 follow-on to PR #146. The metalayer is currently linked
--library --static because the apt-distributed Chapel runtime ships
only the lib_pic-none variant. This PR ships:

  • ADR at `docs/decisions/2026-05-30-chapel-pic-rebuild.md` —
    documents the constraint, the source-rebuild procedure, tradeoffs
    vs the current static form, and why the CI flip is deferred to a
    future registry-pushed container.
  • `just chapel-pic-from-source` — runnable recipe that downloads
    chapel-2.8.0, sets `CHPL_LIB_PIC=pic`, builds, and verifies the
    `lib_pic-pic/` runtime variant landed. Cache via
    `ECHIDNA_CHAPEL_PIC_CACHE`; version via `CHPL_VERSION`. Not
    invoked from CI.
  • Cross-link from the rehabilitation ADR's Wave-2 plan into this ADR.

Why no CI flip

The PIC runtime is required for `--library --dynamic` and the L2.5
multi-locale Chapel work, but not required for the current Rust
link path (which uses `libechidna_chapel.a`). The ~30 min wall +
~5 GB disk cost of the source rebuild would dominate the chapel-ci
budget for negligible gain until L2.5 starts — see the
"Tradeoffs" table in the ADR.

A registry-pushed Containerfile is the right amortisation, gated on
L1 Cap'n Proto.

Test plan

  • `just --list` shows the new recipe
  • Justfile parses (shebang-style recipe, same form as `init`/`doctor`/`heal`)
  • Recipe end-to-end execution (deliberately local-only; takes ~30 min)
  • CI: chapel-build + chapel-smoke remain green (unchanged from current main)

🤖 Generated with Claude Code

Wave-2 follow-on to PR #146. Documents the procedure for replacing the
apt-shipped Chapel runtime (which ships only the `lib_pic-none`
variant) with a `lib_pic-pic` build so the metalayer can be linked as
a shared library instead of a static archive.

- `docs/decisions/2026-05-30-chapel-pic-rebuild.md` — ADR addendum to
  the rehabilitation ADR. Documents the source-build procedure, the
  ~30 min / ~5 GB cost, the tradeoffs vs `--library --static`, and
  why the CI flip is deferred (registry-pushed container image is the
  L2.5 prerequisite).
- `Justfile :: chapel-pic-from-source` — runnable recipe that
  downloads chapel-2.8.0, sets `CHPL_LIB_PIC=pic`, builds, and
  verifies the `lib_pic-pic/` runtime variant landed. Cache dir
  configurable via `ECHIDNA_CHAPEL_PIC_CACHE`; version via
  `CHPL_VERSION`. **Not** invoked from CI.
- Cross-link from the rehabilitation ADR's Wave-2 plan to the new ADR.

Verification path is local-only by design — the recipe will be exercised
on-demand when L2.5 multi-locale work needs the shared-library form.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@hyperpolymath hyperpolymath enabled auto-merge (squash) May 30, 2026 19:35
@hyperpolymath hyperpolymath merged commit cd1a713 into main May 30, 2026
28 of 36 checks passed
@hyperpolymath hyperpolymath deleted the feat/chapel-pic-from-source-recipe branch May 30, 2026 22:19
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