// Phase 5 — sx-driven build pipeline (compiler primitives). // // These run in the comptime evaluator (`abi(.compiler)`), serviced by // `comptime_vm.callCompilerFn`. They are called from the post-link build driver // (a callback registered via `set_post_link_callback`), which always runs on the // comptime VM (`core.invokeByFuncId`) — the VM, unlike the legacy interpreter, // can allocate/grow the `List`s the driver builds (issue 0141). // // This is the home the sx `default_build` pipeline grows into; for now it exposes // the read-only build metadata queries. #import "modules/std.sx"; // The C companion object files for this build (`#import c { #source ... }`, // compiled to `.o`) and the `#library` link names. The sx driver passes them to // the linker. Answered from the compiler's accumulated build state. c_object_paths :: () -> List(string) abi(.compiler); link_libraries :: () -> List(string) abi(.compiler); // The object file the compiler emitted for this build. The compiler emits it // eagerly; this returns its path (a query, not an action). The sx driver passes // it to `link` alongside the C objects. emit_object :: () -> string abi(.compiler);