Kernel-only build target: pineforge_kernel + PINEFORGE_BUILD_SOURCE_LAYER (R5 L1) - #257
Merged
Merged
Conversation
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
force-pushed
the
r5/L1-kernel-target
branch
from
September 19, 2026 23:56
916b7fe to
5ce4533
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
R5 lane L1 of the native feature-parity roadmap (#256, design §2.i): a kernel-only build.
pineforge_kernel(aliasPineForge::kernel) compiles only the kernel TUs; optionPINEFORGE_BUILD_SOURCE_LAYER(default ON) keepslibpineforge.aexactly as today — same 49 objects, same flags (one sharedforeach) — 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 reachespineforge/sourceorcompat/pine(resolved automatically: 147 of 504).src/compat/pine/market_admission.cppmoves intoPINEFORGE_SOURCE_LAYER_SOURCES(Pine-only policy, adapter-only callers — a boundary bug); its never-calledadmission_retentionis deleted.check_native_include_independence.py --kernel-archive(nm: no source-layer symbol, defined or undefined, beyond the one opaqueStrategyOverridespointer);ci_verify.py kernelprofile; CIkernel-onlyjob feedingbuild-gate.Evidence
libpineforge.aadmission_retentiondeletionnmguard 0; install prefix has nosource/orcompat/ci_verify kernel/release/test_ci_verifyNo 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