mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-28 06:53:42 +08:00
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>
8 lines
539 B
TypeScript
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";
|