Files
scriptc/tests/harness/link-features.ts
T
Malte UblandClaude Opus 5.5 f79ed58138 Link the runtime units of lowered IR as compile() does in the harnesses
The self-hosting harnesses link the IR they lower through compileC. Most
hand-picked a subset of runtime feature flags, which lacked dynTier: a
sanitized build compiles exactly the listed runtime sources, so programs
with jsval operations failed to link scr_js_value.c's entry points, and
harnesses passing no flags at all failed in both lanes.

Every such site now spreads moduleLinkFeatures (tests/harness/
link-features.ts), which is executableLinkFeatures, the selection
compile() uses, so a runtime unit added later cannot drift out of the
harness builds. moduleUsesDynTier joins the IR facade's unit gates.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 19:12:42 -07:00

8 lines
539 B
TypeScript

/* The runtime units a lowered module links, selected exactly as compile()
* selects them (executableLinkFeatures). Harnesses that link IR through
* compileC spread this instead of hand-picking feature flags: a hand-picked
* list silently misses a unit added later (the dynamic tier's
* scr_js_value.c), which the sanitized lane, compiling only the listed
* runtime sources, reports as undefined references. */
export { executableLinkFeatures as moduleLinkFeatures } from "../../packages/compiler/src/backend/executable-features.js";