Add -Dcomptime-flat-strict / env SX_COMPTIME_FLAT_STRICT (implies comptime_flat): at all three comptime sites (type-fn in lower/comptime.zig, const-init + #run in emit_llvm.zig) a VM bail becomes a build-gating error naming the reason INSTEAD of falling back to legacy. Forces every comptime eval onto the VM so the complete gap set is enumerable in one sweep; when the corpus is green under strict mode AND every example matches legacy, interp.zig can be deleted. Default behaviour unchanged (699/0 both default gates). Fixed a wiring bug: the type-fn site's local comptime_flat didn't include the strict flag (every type-fn falsely reported <unknown>); strict now implies flat there too. Swept the gap list (19 strict bails): switch_br (5, + unmasks a []Type-across-call silent-wrong in 0114), compiler_call (6, = the BuildOptions->abi(.zig) extern compiler migration), out (2), type_name (1), global_addr (1), interp_print_frames (1), 2 negative-test diagnostics (1179/1180), 1 dlsym (1654). Recorded as the deletion checklist in CHECKPOINT-COMPILER-API.md.
13 KiB
13 KiB