P5.7 Step B1: remove the compiler_call IR op + the hook Registry
The compiler_call op + #compiler hook mechanism was fully superseded by abi(.compiler) VM-native dispatch (P5.5) — no sx code emits it anymore. Remove: the compiler_call op variant + CompilerCall struct (inst.zig); the Builder.compilerCall emitter (module.zig); the two dead producer blocks in lower/call.zig (compiler_expr-bodied free fns + methods); every consumer switch arm (emit_llvm, ops.emitCompilerCall, print, interp dispatch); the interp.hooks field + init/deinit. Strip compiler_hooks.zig down to the still- live BuildConfig / BuildHooks / AssetDir (delete HookError/HookFn/Registry/ registerDefaults + all hookXxx, and the now-unused interp/Value imports). Test refs that used compiler_call as a sample unported op now use vec_splat. 501/501 unit + 706/0 corpus.
This commit is contained in:
@@ -207,7 +207,6 @@ pub const Op = union(enum) {
|
||||
call_indirect: CallIndirect,
|
||||
call_closure: CallIndirect,
|
||||
call_builtin: BuiltinCall,
|
||||
compiler_call: CompilerCall,
|
||||
|
||||
/// `#objc_call(ReturnT)(recv, sel, args...)` — dispatched through
|
||||
/// `objc_msgSend`. emit_llvm.zig synthesizes a per-call-site LLVM
|
||||
@@ -473,11 +472,6 @@ pub const BuiltinId = enum(u16) {
|
||||
type_info,
|
||||
};
|
||||
|
||||
pub const CompilerCall = struct {
|
||||
name: u32, // StringPool id for qualified name (e.g. "BuildOptions.add_link_flag")
|
||||
args: []const Ref,
|
||||
};
|
||||
|
||||
pub const ClosureCreate = struct {
|
||||
func: FuncId, // trampoline function
|
||||
env: Ref, // allocated env pointer (or Ref.none for no captures)
|
||||
|
||||
Reference in New Issue
Block a user