You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Follow-up to #741, whose builtins.c half landed in #812 — lint.c still carries 6 EIGENSCRIPT_FREESTANDING blocks gating ~950 lines, and they should get the same whole-TU treatment now that src/builtins_host.c establishes the pattern in-tree.
The blocks (current main)
Lines
Size
What
~144–186
41L
g_builtin_name_env + the E003 binding-base machinery
~850–1442
591L
the --api surface index (eigs_api_dump + its lib scan over scandir)
freestanding arm (dual-implementation eigs_lint_file)
Shape
Unlike the builtins.c case these are not "builtin groups behind a registration seam" — they're lint subsystems plus one dual-arm entry point. The extraction is a lint_host.c (or similar) following builtins_host.c's recipe:
Whole TU behind #if !EIGENSCRIPT_FREESTANDING, with the #else arm holding the same linkable stubs the current freestanding arms provide (the ~113L freestanding eigs_lint_file variant moves there).
TU lists to update (all five, or the link breaks in a different harness than the one you tested): Makefile SOURCES, tools/freestanding_check.sh, tools/freestanding_smoke.sh, tools/embed_stack_soak.sh, web/build.sh.
Follow-up to #741, whose builtins.c half landed in #812 —
lint.cstill carries 6EIGENSCRIPT_FREESTANDINGblocks gating ~950 lines, and they should get the same whole-TU treatment now thatsrc/builtins_host.cestablishes the pattern in-tree.The blocks (current main)
g_builtin_name_env+ the E003 binding-base machinery--apisurface index (eigs_api_dump+ its lib scan overscandir)check_undefined_names(scope-aware name-resolution lint, #404)eigs_lint_file)Shape
Unlike the builtins.c case these are not "builtin groups behind a registration seam" — they're lint subsystems plus one dual-arm entry point. The extraction is a
lint_host.c(or similar) followingbuiltins_host.c's recipe:#if !EIGENSCRIPT_FREESTANDING, with the#elsearm holding the same linkable stubs the current freestanding arms provide (the ~113L freestandingeigs_lint_filevariant moves there).replay_blocks/g_argc/g_argv; here expect the binding-base env and whatever the lint driver shares.MakefileSOURCES,tools/freestanding_check.sh,tools/freestanding_smoke.sh,tools/embed_stack_soak.sh,web/build.sh.freestanding_check.shstage 1 by name; a direct libc call from portable code must still fail by import.Definition of done
lint.c's FREESTANDING block count drops to ~0 (dual-behavior carve-outs may legitimately stay, as in builtins.c).detect_leaks=1green, leak tally 0.freestanding_check.shstages green with allowlist/HAL-roots untouched;freestanding_smoke.shgreen.