The --sep producer compiled the ROOT build-target with the .wwi-producer -I flag, so check_exported_type ran on the root and rejected a real-tool root's legitimate `export fn f(a: *t)` over an unexported local type t (the root is terminal — its interface is never imported, and its .wwi is never consumed). The combined build never passes -I, so it built fine. For pi==root, invoke w6c with -c -o only, no -I. Both stages (the wwstage twin builds the shorter root argv). Gates that asserted __root.wwi exists encoded the buggy behavior; updated to assert __root.s (the consumed product) while deps' .wwi byte-id is retained. M3-tail commit-6 prerequisite. Gate 989_seproot_export_run reproduces the export-fn-over-unexported-type root + proves it sep-builds, with a non-vacuity leg that the forced -I path still rejects.
9.4 KiB
9.4 KiB