diff --git a/src/Compilation.zig b/src/Compilation.zig index dc7d0ba925..183fe8b8f3 100644 --- a/src/Compilation.zig +++ b/src/Compilation.zig @@ -50,8 +50,7 @@ gpa: Allocator, /// be used for other things requiring the same lifetime as the `Compilation`. arena: Allocator, /// Not every Compilation compiles .zig code! For example you could do `zig build-exe foo.o`. -/// TODO: rename to zcu: ?*Zcu -module: ?*Zcu, +zcu: ?*Zcu, /// Contains different state depending on whether the Compilation uses /// incremental or whole cache mode. cache_use: CacheUse, @@ -1474,7 +1473,7 @@ pub fn create(gpa: Allocator, arena: Allocator, options: CreateOptions) !*Compil comp.* = .{ .gpa = gpa, .arena = arena, - .module = opt_zcu, + .zcu = opt_zcu, .cache_use = undefined, // populated below .bin_file = null, // populated below .implib_emit = null, // handled below @@ -1926,7 +1925,7 @@ pub fn create(gpa: Allocator, arena: Allocator, options: CreateOptions) !*Compil pub fn destroy(comp: *Compilation) void { if (comp.bin_file) |lf| lf.destroy(); - if (comp.module) |zcu| zcu.deinit(); + if (comp.zcu) |zcu| zcu.deinit(); comp.cache_use.deinit(); for (comp.work_queues) |work_queue| work_queue.deinit(); if (!InternPool.single_threaded) comp.codegen_work.queue.deinit(); @@ -2198,7 +2197,7 @@ pub fn update(comp: *Compilation, main_progress_node: std.Progress.Node) !void { }; } - if (comp.module) |zcu| { + if (comp.zcu) |zcu| { const pt: Zcu.PerThread = .{ .zcu = zcu, .tid = .main }; zcu.compile_log_text.shrinkAndFree(gpa, 0); @@ -2268,7 +2267,7 @@ pub fn update(comp: *Compilation, main_progress_node: std.Progress.Node) !void { try comp.performAllTheWork(main_progress_node); - if (comp.module) |zcu| { + if (comp.zcu) |zcu| { const pt: Zcu.PerThread = .{ .zcu = zcu, .tid = .main }; if (build_options.enable_debug_extensions and comp.verbose_intern_pool) { @@ -2447,7 +2446,7 @@ fn flush( }; } - if (comp.module) |zcu| { + if (comp.zcu) |zcu| { try link.File.C.flushEmitH(zcu); if (zcu.llvm_object) |llvm_object| { @@ -2558,7 +2557,7 @@ fn addNonIncrementalStuffToCacheManifest( comptime assert(link_hash_implementation_version == 14); - if (comp.module) |mod| { + if (comp.zcu) |mod| { try addModuleTableToCacheHash(gpa, arena, &man.hash, mod.root_mod, mod.main_mod, .{ .files = man }); // Synchronize with other matching comments: ZigOnlyHashStuff @@ -2692,7 +2691,7 @@ fn addNonIncrementalStuffToCacheManifest( } fn emitOthers(comp: *Compilation) void { - if (comp.config.output_mode != .Obj or comp.module != null or + if (comp.config.output_mode != .Obj or comp.zcu != null or comp.c_object_table.count() == 0) { return; @@ -2951,7 +2950,7 @@ pub fn saveState(comp: *Compilation) !void { var pt_headers = std.ArrayList(Header.PerThread).init(gpa); defer pt_headers.deinit(); - if (comp.module) |zcu| { + if (comp.zcu) |zcu| { const ip = &zcu.intern_pool; const header: Header = .{ .intern_pool = .{ @@ -3246,7 +3245,7 @@ pub fn getAllErrorsAlloc(comp: *Compilation) !ErrorBundle { } } - if (comp.module) |zcu| { + if (comp.zcu) |zcu| { if (bundle.root_list.items.len == 0 and zcu.compile_log_sources.count() != 0) { const values = zcu.compile_log_sources.values(); // First one will be the error; subsequent ones will be notes. @@ -3283,7 +3282,7 @@ pub fn getAllErrorsAlloc(comp: *Compilation) !ErrorBundle { } } - const compile_log_text = if (comp.module) |m| m.compile_log_text.items else ""; + const compile_log_text = if (comp.zcu) |m| m.compile_log_text.items else ""; return bundle.toOwnedBundle(compile_log_text); } @@ -3497,7 +3496,7 @@ pub fn performAllTheWork( comp: *Compilation, main_progress_node: std.Progress.Node, ) JobError!void { - defer if (comp.module) |mod| { + defer if (comp.zcu) |mod| { mod.sema_prog_node.end(); mod.sema_prog_node = std.Progress.Node.none; mod.codegen_prog_node.end(); @@ -3543,7 +3542,7 @@ fn performAllTheWorkInner( // in the `astgen_wait_group`. if (comp.job_queued_update_builtin_zig) b: { comp.job_queued_update_builtin_zig = false; - const zcu = comp.module orelse break :b; + const zcu = comp.zcu orelse break :b; _ = zcu; // TODO put all the modules in a flat array to make them easy to iterate. var seen: std.AutoArrayHashMapUnmanaged(*Package.Module, void) = .{}; @@ -3563,7 +3562,7 @@ fn performAllTheWorkInner( } } - if (comp.module) |zcu| { + if (comp.zcu) |zcu| { { // Worker threads may append to zcu.files and zcu.import_table // so we must hold the lock while spawning those tasks, since @@ -3606,7 +3605,7 @@ fn performAllTheWorkInner( if (comp.job_queued_compiler_rt_obj) work_queue_wait_group.spawnManager(buildRt, .{ comp, "compiler_rt.zig", .compiler_rt, .Obj, &comp.compiler_rt_obj, main_progress_node }); if (comp.job_queued_fuzzer_lib) work_queue_wait_group.spawnManager(buildRt, .{ comp, "fuzzer.zig", .libfuzzer, .Lib, &comp.fuzzer_lib, main_progress_node }); - if (comp.module) |zcu| { + if (comp.zcu) |zcu| { const pt: Zcu.PerThread = .{ .zcu = zcu, .tid = .main }; if (comp.incremental) { const update_zir_refs_node = main_progress_node.start("Update ZIR References", 0); @@ -3638,7 +3637,7 @@ fn performAllTheWorkInner( try processOneJob(@intFromEnum(Zcu.PerThread.Id.main), comp, job, main_progress_node); continue :work; }; - if (comp.module) |zcu| { + if (comp.zcu) |zcu| { // If there's no work queued, check if there's anything outdated // which we need to work on, and queue it if so. if (try zcu.findOutdatedToAnalyze()) |outdated| { @@ -3666,7 +3665,7 @@ pub fn queueJobs(comp: *Compilation, jobs: []const Job) !void { fn processOneJob(tid: usize, comp: *Compilation, job: Job, prog_node: std.Progress.Node) JobError!void { switch (job) { .codegen_nav => |nav_index| { - const zcu = comp.module.?; + const zcu = comp.zcu.?; const nav = zcu.intern_pool.getNav(nav_index); if (nav.analysis_owner.unwrap()) |cau| { const unit = InternPool.AnalUnit.wrap(.{ .cau = cau }); @@ -3689,14 +3688,14 @@ fn processOneJob(tid: usize, comp: *Compilation, job: Job, prog_node: std.Progre const named_frame = tracy.namedFrame("analyze_func"); defer named_frame.end(); - const pt: Zcu.PerThread = .{ .zcu = comp.module.?, .tid = @enumFromInt(tid) }; + const pt: Zcu.PerThread = .{ .zcu = comp.zcu.?, .tid = @enumFromInt(tid) }; pt.ensureFuncBodyAnalyzed(func) catch |err| switch (err) { error.OutOfMemory => return error.OutOfMemory, error.AnalysisFail => return, }; }, .analyze_cau => |cau_index| { - const pt: Zcu.PerThread = .{ .zcu = comp.module.?, .tid = @enumFromInt(tid) }; + const pt: Zcu.PerThread = .{ .zcu = comp.zcu.?, .tid = @enumFromInt(tid) }; pt.ensureCauAnalyzed(cau_index) catch |err| switch (err) { error.OutOfMemory => return error.OutOfMemory, error.AnalysisFail => return, @@ -3725,7 +3724,7 @@ fn processOneJob(tid: usize, comp: *Compilation, job: Job, prog_node: std.Progre const named_frame = tracy.namedFrame("resolve_type_fully"); defer named_frame.end(); - const pt: Zcu.PerThread = .{ .zcu = comp.module.?, .tid = @enumFromInt(tid) }; + const pt: Zcu.PerThread = .{ .zcu = comp.zcu.?, .tid = @enumFromInt(tid) }; Type.fromInterned(ty).resolveFully(pt) catch |err| switch (err) { error.OutOfMemory => return error.OutOfMemory, error.AnalysisFail => return, @@ -3738,7 +3737,7 @@ fn processOneJob(tid: usize, comp: *Compilation, job: Job, prog_node: std.Progre if (true) @panic("TODO: update_line_number"); const gpa = comp.gpa; - const pt: Zcu.PerThread = .{ .zcu = comp.module.?, .tid = @enumFromInt(tid) }; + const pt: Zcu.PerThread = .{ .zcu = comp.zcu.?, .tid = @enumFromInt(tid) }; const decl = pt.zcu.declPtr(decl_index); const lf = comp.bin_file.?; lf.updateDeclLineNumber(pt, decl_index) catch |err| { @@ -3760,7 +3759,7 @@ fn processOneJob(tid: usize, comp: *Compilation, job: Job, prog_node: std.Progre const named_frame = tracy.namedFrame("analyze_mod"); defer named_frame.end(); - const pt: Zcu.PerThread = .{ .zcu = comp.module.?, .tid = @enumFromInt(tid) }; + const pt: Zcu.PerThread = .{ .zcu = comp.zcu.?, .tid = @enumFromInt(tid) }; pt.semaPkg(mod) catch |err| switch (err) { error.OutOfMemory => return error.OutOfMemory, error.AnalysisFail => return, @@ -3924,7 +3923,7 @@ fn processOneJob(tid: usize, comp: *Compilation, job: Job, prog_node: std.Progre fn queueCodegenJob(comp: *Compilation, tid: usize, codegen_job: CodegenJob) !void { if (InternPool.single_threaded or - !comp.module.?.backendSupportsFeature(.separate_thread)) + !comp.zcu.?.backendSupportsFeature(.separate_thread)) return processOneCodegenJob(tid, comp, codegen_job); { @@ -3963,14 +3962,14 @@ fn processOneCodegenJob(tid: usize, comp: *Compilation, codegen_job: CodegenJob) const named_frame = tracy.namedFrame("codegen_nav"); defer named_frame.end(); - const pt: Zcu.PerThread = .{ .zcu = comp.module.?, .tid = @enumFromInt(tid) }; + const pt: Zcu.PerThread = .{ .zcu = comp.zcu.?, .tid = @enumFromInt(tid) }; try pt.linkerUpdateNav(nav_index); }, .func => |func| { const named_frame = tracy.namedFrame("codegen_func"); defer named_frame.end(); - const pt: Zcu.PerThread = .{ .zcu = comp.module.?, .tid = @enumFromInt(tid) }; + const pt: Zcu.PerThread = .{ .zcu = comp.zcu.?, .tid = @enumFromInt(tid) }; // This call takes ownership of `func.air`. try pt.linkerUpdateFunc(func.func, func.air); }, @@ -3995,7 +3994,7 @@ fn workerDocsCopy(comp: *Compilation) void { } fn docsCopyFallible(comp: *Compilation) anyerror!void { - const zcu = comp.module orelse + const zcu = comp.zcu orelse return comp.lockAndSetMiscFailure(.docs_copy, "no Zig code to document", .{}); const emit = comp.docs_emit.?; @@ -4352,7 +4351,7 @@ fn workerCheckEmbedFile(comp: *Compilation, embed_file: *Zcu.EmbedFile) void { } fn detectEmbedFileUpdate(comp: *Compilation, embed_file: *Zcu.EmbedFile) !void { - const mod = comp.module.?; + const mod = comp.zcu.?; const ip = &mod.intern_pool; var file = try embed_file.owner.root.openFile(embed_file.sub_file_path.toSlice(ip), .{}); defer file.close(); @@ -4665,7 +4664,7 @@ fn reportRetryableEmbedFileError( embed_file: *Zcu.EmbedFile, err: anyerror, ) error{OutOfMemory}!void { - const mod = comp.module.?; + const mod = comp.zcu.?; const gpa = mod.gpa; const src_loc = embed_file.src_loc; const ip = &mod.intern_pool; @@ -4730,7 +4729,7 @@ fn updateCObject(comp: *Compilation, c_object: *CObject, c_obj_prog_node: std.Pr // Special case when doing build-obj for just one C file. When there are more than one object // file and building an object we need to link them together, but with just one it should go // directly to the output file. - const direct_o = comp.c_source_files.len == 1 and comp.module == null and + const direct_o = comp.c_source_files.len == 1 and comp.zcu == null and comp.config.output_mode == .Obj and comp.objects.len == 0; const o_basename_noext = if (direct_o) comp.root_name diff --git a/src/arch/wasm/CodeGen.zig b/src/arch/wasm/CodeGen.zig index 49732a387b..f36df7c444 100644 --- a/src/arch/wasm/CodeGen.zig +++ b/src/arch/wasm/CodeGen.zig @@ -6003,7 +6003,7 @@ fn airPtrSliceFieldPtr(func: *CodeGen, inst: Air.Inst.Index, offset: u32) InnerE /// NOTE: Allocates place for result on virtual stack, when integer size > 64 bits fn intZeroValue(func: *CodeGen, ty: Type) InnerError!WValue { - const zcu = func.bin_file.base.comp.module.?; + const zcu = func.bin_file.base.comp.zcu.?; const int_info = ty.intInfo(zcu); const wasm_bits = toWasmBits(int_info.bits) orelse { return func.fail("TODO: Implement intZeroValue for integer bitsize: {d}", .{int_info.bits}); diff --git a/src/arch/wasm/Emit.zig b/src/arch/wasm/Emit.zig index d795e2afa6..087f0dff6b 100644 --- a/src/arch/wasm/Emit.zig +++ b/src/arch/wasm/Emit.zig @@ -255,7 +255,7 @@ fn fail(emit: *Emit, comptime format: []const u8, args: anytype) InnerError { @setCold(true); std.debug.assert(emit.error_msg == null); const comp = emit.bin_file.base.comp; - const zcu = comp.module.?; + const zcu = comp.zcu.?; const gpa = comp.gpa; emit.error_msg = try Zcu.ErrorMsg.create(gpa, zcu.navSrcLoc(emit.owner_nav), format, args); return error.EmitFail; diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig index 2d989f81e2..1d8667ecb2 100644 --- a/src/codegen/llvm.zig +++ b/src/codegen/llvm.zig @@ -864,7 +864,7 @@ pub const Object = struct { // into the garbage can by converting into absolute paths. What // a terrible tragedy. const compile_unit_dir = blk: { - if (comp.module) |zcu| m: { + if (comp.zcu) |zcu| m: { const d = try zcu.main_mod.root.joinString(arena, ""); if (d.len == 0) break :m; if (std.fs.path.isAbsolute(d)) break :blk d; @@ -955,7 +955,7 @@ pub const Object = struct { .gpa = gpa, .builder = builder, .pt = .{ - .zcu = comp.module.?, + .zcu = comp.zcu.?, .tid = .main, }, .debug_compile_unit = debug_compile_unit, diff --git a/src/link.zig b/src/link.zig index 894074cdda..635fdb49fa 100644 --- a/src/link.zig +++ b/src/link.zig @@ -755,7 +755,7 @@ pub const File = struct { const directory = base.emit.root_dir; // Just an alias to make it shorter to type. const full_out_path = try directory.join(arena, &[_][]const u8{base.emit.sub_path}); const full_out_path_z = try arena.dupeZ(u8, full_out_path); - const opt_zcu = comp.module; + const opt_zcu = comp.zcu; // If there is no Zig code to compile, then we should skip flushing the output file // because it will not be part of the linker line anyway. diff --git a/src/link/C.zig b/src/link/C.zig index 585389aa3f..18e6b5d0eb 100644 --- a/src/link/C.zig +++ b/src/link/C.zig @@ -418,7 +418,7 @@ pub fn flushModule(self: *C, arena: Allocator, tid: Zcu.PerThread.Id, prog_node: const comp = self.base.comp; const gpa = comp.gpa; - const zcu = self.base.comp.module.?; + const zcu = self.base.comp.zcu.?; const ip = &zcu.intern_pool; const pt: Zcu.PerThread = .{ .zcu = zcu, .tid = tid }; diff --git a/src/link/Coff.zig b/src/link/Coff.zig index 74f2c903e7..323fba7016 100644 --- a/src/link/Coff.zig +++ b/src/link/Coff.zig @@ -1354,7 +1354,7 @@ pub fn getOrCreateAtomForNav(self: *Coff, nav_index: InternPool.Nav.Index) !Atom } fn getNavOutputSection(self: *Coff, nav_index: InternPool.Nav.Index) u16 { - const zcu = self.base.comp.module.?; + const zcu = self.base.comp.zcu.?; const ip = &zcu.intern_pool; const nav = ip.getNav(nav_index); const ty = Type.fromInterned(nav.typeOf(ip)); @@ -1609,7 +1609,7 @@ pub fn deleteExport( .nav => |nav| self.navs.getPtr(nav), .uav => |uav| self.uavs.getPtr(uav), } orelse return; - const zcu = self.base.comp.module.?; + const zcu = self.base.comp.zcu.?; const name_slice = name.toSlice(&zcu.intern_pool); const sym_index = metadata.getExportPtr(self, name_slice) orelse return; @@ -1691,7 +1691,7 @@ pub fn flushModule(self: *Coff, arena: Allocator, tid: Zcu.PerThread.Id, prog_no defer sub_prog_node.end(); const pt: Zcu.PerThread = .{ - .zcu = comp.module orelse return error.LinkingWithoutZigSourceUnimplemented, + .zcu = comp.zcu orelse return error.LinkingWithoutZigSourceUnimplemented, .tid = tid, }; diff --git a/src/link/Coff/lld.zig b/src/link/Coff/lld.zig index 7273aa39b6..9225399c94 100644 --- a/src/link/Coff/lld.zig +++ b/src/link/Coff/lld.zig @@ -32,7 +32,7 @@ pub fn linkWithLLD(self: *Coff, arena: Allocator, tid: Zcu.PerThread.Id, prog_no // If there is no Zig code to compile, then we should skip flushing the output file because it // will not be part of the linker line anyway. - const module_obj_path: ?[]const u8 = if (comp.module != null) blk: { + const module_obj_path: ?[]const u8 = if (comp.zcu != null) blk: { try self.flushModule(arena, tid, prog_node); if (fs.path.dirname(full_out_path)) |dirname| { @@ -296,7 +296,7 @@ pub fn linkWithLLD(self: *Coff, arena: Allocator, tid: Zcu.PerThread.Id, prog_no if (self.subsystem) |explicit| break :blk explicit; switch (target.os.tag) { .windows => { - if (comp.module) |module| { + if (comp.zcu) |module| { if (module.stage1_flags.have_dllmain_crt_startup or is_dyn_lib) break :blk null; if (module.stage1_flags.have_c_main or comp.config.is_test or @@ -440,7 +440,7 @@ pub fn linkWithLLD(self: *Coff, arena: Allocator, tid: Zcu.PerThread.Id, prog_no } else { try argv.append("-NODEFAULTLIB"); if (!is_lib and entry_name == null) { - if (comp.module) |module| { + if (comp.zcu) |module| { if (module.stage1_flags.have_winmain_crt_startup) { try argv.append("-ENTRY:WinMainCRTStartup"); } else { diff --git a/src/link/Elf.zig b/src/link/Elf.zig index 088485a78d..e89c475d10 100644 --- a/src/link/Elf.zig +++ b/src/link/Elf.zig @@ -212,7 +212,7 @@ pub fn createEmpty( const use_lld = build_options.have_llvm and comp.config.use_lld; const use_llvm = comp.config.use_llvm; - const opt_zcu = comp.module; + const opt_zcu = comp.zcu; const output_mode = comp.config.output_mode; const link_mode = comp.config.link_mode; const optimize_mode = comp.root_mod.optimize_mode; @@ -2084,7 +2084,7 @@ fn linkWithLLD(self: *Elf, arena: Allocator, tid: Zcu.PerThread.Id, prog_node: s // If there is no Zig code to compile, then we should skip flushing the output file because it // will not be part of the linker line anyway. - const module_obj_path: ?[]const u8 = if (comp.module != null) blk: { + const module_obj_path: ?[]const u8 = if (comp.zcu != null) blk: { try self.flushModule(arena, tid, prog_node); if (fs.path.dirname(full_out_path)) |dirname| { diff --git a/src/link/Elf/ZigObject.zig b/src/link/Elf/ZigObject.zig index ac16fb7a48..a7a758b5c4 100644 --- a/src/link/Elf/ZigObject.zig +++ b/src/link/Elf/ZigObject.zig @@ -128,7 +128,7 @@ pub fn deinit(self: *ZigObject, allocator: Allocator) void { pub fn flushModule(self: *ZigObject, elf_file: *Elf, tid: Zcu.PerThread.Id) !void { // Handle any lazy symbols that were emitted by incremental compilation. if (self.lazy_syms.getPtr(.anyerror_type)) |metadata| { - const pt: Zcu.PerThread = .{ .zcu = elf_file.base.comp.module.?, .tid = tid }; + const pt: Zcu.PerThread = .{ .zcu = elf_file.base.comp.zcu.?, .tid = tid }; // Most lazy symbols can be updated on first use, but // anyerror needs to wait for everything to be flushed. @@ -949,7 +949,7 @@ pub fn getOrCreateMetadataForNav( if (!gop.found_existing) { const any_non_single_threaded = elf_file.base.comp.config.any_non_single_threaded; const symbol_index = try self.newSymbolWithAtom(gpa, 0); - const zcu = elf_file.base.comp.module.?; + const zcu = elf_file.base.comp.zcu.?; const nav_val = Value.fromInterned(zcu.intern_pool.getNav(nav_index).status.resolved.val); const sym = self.symbol(symbol_index); if (nav_val.getVariable(zcu)) |variable| { @@ -1626,7 +1626,7 @@ pub fn deleteExport( .nav => |nav| self.navs.getPtr(nav), .uav => |uav| self.uavs.getPtr(uav), } orelse return; - const mod = elf_file.base.comp.module.?; + const mod = elf_file.base.comp.zcu.?; const exp_name = name.toSlice(&mod.intern_pool); const esym_index = metadata.@"export"(self, exp_name) orelse return; log.debug("deleting export '{s}'", .{exp_name}); diff --git a/src/link/MachO.zig b/src/link/MachO.zig index cfcf6b7965..d0e0d3d489 100644 --- a/src/link/MachO.zig +++ b/src/link/MachO.zig @@ -164,7 +164,7 @@ pub fn createEmpty( const gpa = comp.gpa; const use_llvm = comp.config.use_llvm; - const opt_zcu = comp.module; + const opt_zcu = comp.zcu; const optimize_mode = comp.root_mod.optimize_mode; const output_mode = comp.config.output_mode; const link_mode = comp.config.link_mode; diff --git a/src/link/MachO/ZigObject.zig b/src/link/MachO/ZigObject.zig index e12ffd5cf7..9ef0fb0acd 100644 --- a/src/link/MachO/ZigObject.zig +++ b/src/link/MachO/ZigObject.zig @@ -566,7 +566,7 @@ pub fn getInputSection(self: ZigObject, atom: Atom, macho_file: *MachO) macho.se pub fn flushModule(self: *ZigObject, macho_file: *MachO, tid: Zcu.PerThread.Id) !void { // Handle any lazy symbols that were emitted by incremental compilation. if (self.lazy_syms.getPtr(.anyerror_type)) |metadata| { - const pt: Zcu.PerThread = .{ .zcu = macho_file.base.comp.module.?, .tid = tid }; + const pt: Zcu.PerThread = .{ .zcu = macho_file.base.comp.zcu.?, .tid = tid }; // Most lazy symbols can be updated on first use, but // anyerror needs to wait for everything to be flushed. @@ -1437,7 +1437,7 @@ pub fn deleteExport( exported: Zcu.Exported, name: InternPool.NullTerminatedString, ) void { - const mod = macho_file.base.comp.module.?; + const mod = macho_file.base.comp.zcu.?; const metadata = switch (exported) { .nav => |nav| self.navs.getPtr(nav), @@ -1545,7 +1545,7 @@ pub fn getOrCreateMetadataForLazySymbol( fn isThreadlocal(macho_file: *MachO, nav_index: InternPool.Nav.Index) bool { if (!macho_file.base.comp.config.any_non_single_threaded) return false; - const ip = &macho_file.base.comp.module.?.intern_pool; + const ip = &macho_file.base.comp.zcu.?.intern_pool; return switch (ip.indexToKey(ip.getNav(nav_index).status.resolved.val)) { .variable => |variable| variable.is_threadlocal, .@"extern" => |@"extern"| @"extern".is_threadlocal, diff --git a/src/link/Plan9.zig b/src/link/Plan9.zig index 27a3bf7bc8..0d397dfff7 100644 --- a/src/link/Plan9.zig +++ b/src/link/Plan9.zig @@ -152,7 +152,7 @@ pub const Atom = struct { return .{ .code_ptr = slice.ptr, .other = .{ .code_len = slice.len } }; } fn getCode(self: CodePtr, plan9: *const Plan9) []u8 { - const zcu = plan9.base.comp.module.?; + const zcu = plan9.base.comp.zcu.?; const ip = &zcu.intern_pool; return if (self.code_ptr) |p| p[0..self.other.code_len] else blk: { const nav_index = self.other.nav_index; @@ -317,7 +317,7 @@ pub fn createEmpty( fn putFn(self: *Plan9, nav_index: InternPool.Nav.Index, out: FnNavOutput) !void { const gpa = self.base.comp.gpa; - const mod = self.base.comp.module.?; + const mod = self.base.comp.zcu.?; const file_scope = mod.navFileScopeIndex(nav_index); const fn_map_res = try self.fn_nav_table.getOrPut(gpa, file_scope); if (fn_map_res.found_existing) { @@ -607,7 +607,7 @@ pub fn flushModule(self: *Plan9, arena: Allocator, tid: Zcu.PerThread.Id, prog_n defer assert(self.hdr.entry != 0x0); const pt: Zcu.PerThread = .{ - .zcu = self.base.comp.module orelse return error.LinkingWithoutZigSourceUnimplemented, + .zcu = self.base.comp.zcu orelse return error.LinkingWithoutZigSourceUnimplemented, .tid = tid, }; @@ -952,7 +952,7 @@ pub fn freeDecl(self: *Plan9, decl_index: InternPool.DeclIndex) void { const gpa = self.base.comp.gpa; // TODO audit the lifetimes of decls table entries. It's possible to get // freeDecl without any updateDecl in between. - const mod = self.base.comp.module.?; + const mod = self.base.comp.zcu.?; const decl = mod.declPtr(decl_index); const is_fn = decl.val.isFuncBody(mod); if (is_fn) { @@ -1256,7 +1256,7 @@ pub fn writeSym(self: *Plan9, w: anytype, sym: aout.Sym) !void { } pub fn writeSyms(self: *Plan9, buf: *std.ArrayList(u8)) !void { - const mod = self.base.comp.module.?; + const mod = self.base.comp.zcu.?; const ip = &mod.intern_pool; const writer = buf.writer(); // write __GOT diff --git a/src/link/SpirV.zig b/src/link/SpirV.zig index 9964c09df0..7263b6d28d 100644 --- a/src/link/SpirV.zig +++ b/src/link/SpirV.zig @@ -229,7 +229,7 @@ pub fn flushModule(self: *SpirV, arena: Allocator, tid: Zcu.PerThread.Id, prog_n defer error_info.deinit(); try error_info.appendSlice("zig_errors:"); - const ip = &self.base.comp.module.?.intern_pool; + const ip = &self.base.comp.zcu.?.intern_pool; for (ip.global_error_set.getNamesFromMainThread()) |name| { // Errors can contain pretty much any character - to encode them in a string we must escape // them somehow. Easiest here is to use some established scheme, one which also preseves the diff --git a/src/link/Wasm.zig b/src/link/Wasm.zig index 2c5fc3fe7a..749719d5fc 100644 --- a/src/link/Wasm.zig +++ b/src/link/Wasm.zig @@ -556,7 +556,7 @@ pub fn createEmpty( } } - if (comp.module) |zcu| { + if (comp.zcu) |zcu| { if (!use_llvm) { const index: File.Index = @enumFromInt(wasm.files.len); var zig_object: ZigObject = .{ @@ -3352,7 +3352,7 @@ fn linkWithLLD(wasm: *Wasm, arena: Allocator, tid: Zcu.PerThread.Id, prog_node: // If there is no Zig code to compile, then we should skip flushing the output file because it // will not be part of the linker line anyway. - const module_obj_path: ?[]const u8 = if (comp.module != null) blk: { + const module_obj_path: ?[]const u8 = if (comp.zcu != null) blk: { try wasm.flushModule(arena, tid, prog_node); if (fs.path.dirname(full_out_path)) |dirname| { diff --git a/src/link/Wasm/ZigObject.zig b/src/link/Wasm/ZigObject.zig index a8312f71a5..82437a3f66 100644 --- a/src/link/Wasm/ZigObject.zig +++ b/src/link/Wasm/ZigObject.zig @@ -487,7 +487,7 @@ fn lowerConst( src_loc: Zcu.LazySrcLoc, ) !LowerConstResult { const gpa = wasm_file.base.comp.gpa; - const zcu = wasm_file.base.comp.module.?; + const zcu = wasm_file.base.comp.zcu.?; const ty = val.typeOf(zcu); @@ -604,7 +604,7 @@ fn populateErrorNameTable(zig_object: *ZigObject, wasm_file: *Wasm, tid: Zcu.Per // Addend for each relocation to the table var addend: u32 = 0; - const pt: Zcu.PerThread = .{ .zcu = wasm_file.base.comp.module.?, .tid = tid }; + const pt: Zcu.PerThread = .{ .zcu = wasm_file.base.comp.zcu.?, .tid = tid }; const slice_ty = Type.slice_const_u8_sentinel_0; const atom = wasm_file.getAtomPtr(atom_index); { @@ -803,7 +803,7 @@ pub fn getUavVAddr( const parent_atom_index = wasm_file.symbol_atom.get(.{ .file = zig_object.index, .index = @enumFromInt(reloc_info.parent_atom_index) }).?; const parent_atom = wasm_file.getAtomPtr(parent_atom_index); const is_wasm32 = target.cpu.arch == .wasm32; - const mod = wasm_file.base.comp.module.?; + const mod = wasm_file.base.comp.zcu.?; const ty = Type.fromInterned(mod.intern_pool.typeOf(uav)); if (ty.zigTypeTag(mod) == .Fn) { std.debug.assert(reloc_info.addend == 0); // addend not allowed for function relocations @@ -834,7 +834,7 @@ pub fn deleteExport( exported: Zcu.Exported, name: InternPool.NullTerminatedString, ) void { - const mod = wasm_file.base.comp.module.?; + const mod = wasm_file.base.comp.zcu.?; const nav_index = switch (exported) { .nav => |nav_index| nav_index, .uav => @panic("TODO: implement Wasm linker code for exporting a constant value"), @@ -930,7 +930,7 @@ pub fn updateExports( pub fn freeNav(zig_object: *ZigObject, wasm_file: *Wasm, nav_index: InternPool.Nav.Index) void { const gpa = wasm_file.base.comp.gpa; - const mod = wasm_file.base.comp.module.?; + const mod = wasm_file.base.comp.zcu.?; const ip = &mod.intern_pool; const nav_info = zig_object.navs.getPtr(nav_index).?; const atom_index = nav_info.atom; @@ -1016,7 +1016,7 @@ fn setupErrorsLen(zig_object: *ZigObject, wasm_file: *Wasm) !void { const gpa = wasm_file.base.comp.gpa; const sym_index = zig_object.findGlobalSymbol("__zig_errors_len") orelse return; - const errors_len = 1 + wasm_file.base.comp.module.?.intern_pool.global_error_set.getNamesFromMainThread().len; + const errors_len = 1 + wasm_file.base.comp.zcu.?.intern_pool.global_error_set.getNamesFromMainThread().len; // overwrite existing atom if it already exists (maybe the error set has increased) // if not, allocate a new atom. const atom_index = if (wasm_file.symbol_atom.get(.{ .file = zig_object.index, .index = sym_index })) |index| blk: {