Skip to content

Kernel-only build target: pineforge_kernel + PINEFORGE_BUILD_SOURCE_LAYER (R5 L1) - #257

Merged
luisleo526 merged 1 commit into
mainfrom
r5/L1-kernel-target
Sep 20, 2026
Merged

luisleo526 merged 1 commit into
mainfrom
r5/L1-kernel-target

Conversation

@luisleo526

Copy link
Copy Markdown
Collaborator

What

R5 lane L1 of the native feature-parity roadmap (#256, design §2.i): a kernel-only build.

  • pineforge_kernel (alias PineForge::kernel) compiles only the kernel TUs; option PINEFORGE_BUILD_SOURCE_LAYER (default ON) keeps libpineforge.a exactly as today — same 49 objects, same flags (one shared foreach) — and when OFF builds/installs the kernel alone: source/ + compat/ headers not installed, Pine-bound targets skipped with a STATUS line, tests registered only when their include graph never reaches pineforge/source or compat/pine (resolved automatically: 147 of 504).
  • src/compat/pine/market_admission.cpp moves into PINEFORGE_SOURCE_LAYER_SOURCES (Pine-only policy, adapter-only callers — a boundary bug); its never-called admission_retention is deleted.
  • Guards: check_native_include_independence.py --kernel-archive (nm: no source-layer symbol, defined or undefined, beyond the one opaque StrategyOverrides pointer); ci_verify.py kernel profile; CI kernel-only job feeding build-gate.

Evidence

check result
default build ctest 504/504, registration identical to 73817c1, object set identical (49)
only global-symbol delta in libpineforge.a the ordered admission_retention deletion
kernel-only ctest 147/147; nm guard 0; install prefix has no source/ or compat/
ci_verify kernel / release / test_ci_verify PASS / PASS / 96 OK
supervisor fresh rebuild OFF 147/147, nm 0; ON registered 504

No engine behaviour change; the adapter path is untouched. Campaign sweep (no regression, net 0 accepted) runs on this tree before merge.

🤖 Generated with Claude Code

https://claude.ai/code/session_01CSmYixVAp4NqWpBZxkrLPT

pineforge_kernel (alias PineForge::kernel) compiles only the kernel TUs;
PINEFORGE_BUILD_SOURCE_LAYER (default ON) keeps libpineforge.a exactly as
today (same 49 objects, same flags via one shared foreach) and, when OFF,
builds and installs the kernel alone: source/ and compat/ headers are not
installed, Pine-bound targets (corpus, tutorial, bench, the runner's
strategy.cpp example) are skipped with a STATUS line, and tests/ registers
only the TUs whose include graph never reaches pineforge/source or
compat/pine (resolved automatically, 147 of 504).

src/compat/pine/market_admission.cpp moves from the kernel list into
PINEFORGE_SOURCE_LAYER_SOURCES (it is Pine-only policy with adapter-only
callers); its never-called admission_retention is deleted.

Guards: check_native_include_independence.py gains --kernel-archive (nm the
kernel archive: no defined or undefined source-layer symbol beyond the one
opaque StrategyOverrides pointer); ci_verify.py gains the `kernel` profile
(live runner on, source layer off, ABI-receipt rows skipped) and CI runs it
as a kernel-only job feeding build-gate.

Verified: default build ctest 504/504 with registration identical to
73817c1; kernel-only ctest 147/147, nm guard 0; ci_verify kernel and
release PASS; test_ci_verify 96 OK. Design: docs/design/native-feature-parity.md §2.i.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CSmYixVAp4NqWpBZxkrLPT
@luisleo526
luisleo526 merged commit be0cbab into main Sep 20, 2026
11 checks passed
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