diff --git a/build.zig b/build.zig index 1380ff7c36..243df2967a 100644 --- a/build.zig +++ b/build.zig @@ -855,7 +855,7 @@ fn addCMakeLibraryList(exe: *std.Build.Step.Compile, list: []const u8) void { } const CMakeConfig = struct { - llvm_linkage: std.Build.Step.Compile.Linkage, + llvm_linkage: std.builtin.LinkMode, cmake_binary_dir: []const u8, cmake_prefix_path: []const u8, cmake_static_library_prefix: []const u8, diff --git a/doc/langref.html.in b/doc/langref.html.in index c1be451622..6dae425de1 100644 --- a/doc/langref.html.in +++ b/doc/langref.html.in @@ -1453,7 +1453,7 @@ export fn foo_strict(x: f64) f64 { } export fn foo_optimized(x: f64) f64 { - @setFloatMode(.Optimized); + @setFloatMode(.optimized); return x + big - big; } {#code_end#} @@ -8356,7 +8356,7 @@ test "main" {

{#code_begin|obj|export_builtin#} comptime { - @export(internalName, .{ .name = "foo", .linkage = .Strong }); + @export(internalName, .{ .name = "foo", .linkage = .strong }); } fn internalName() callconv(.C) void {} diff --git a/lib/build_runner.zig b/lib/build_runner.zig index 071b56a71c..25f444a868 100644 --- a/lib/build_runner.zig +++ b/lib/build_runner.zig @@ -892,10 +892,10 @@ fn workerMakeOneStep( // then we return without doing the step, relying on another worker to // queue this step up again when dependencies are met. for (s.dependencies.items) |dep| { - switch (@atomicLoad(Step.State, &dep.state, .SeqCst)) { + switch (@atomicLoad(Step.State, &dep.state, .seq_cst)) { .success, .skipped => continue, .failure, .dependency_failure, .skipped_oom => { - @atomicStore(Step.State, &s.state, .dependency_failure, .SeqCst); + @atomicStore(Step.State, &s.state, .dependency_failure, .seq_cst); return; }, .precheck_done, .running => { @@ -929,7 +929,7 @@ fn workerMakeOneStep( s.state = .running; } else { // Avoid running steps twice. - if (@cmpxchgStrong(Step.State, &s.state, .precheck_done, .running, .SeqCst, .SeqCst) != null) { + if (@cmpxchgStrong(Step.State, &s.state, .precheck_done, .running, .seq_cst, .seq_cst) != null) { // Another worker got the job. return; } @@ -956,13 +956,13 @@ fn workerMakeOneStep( handle_result: { if (make_result) |_| { - @atomicStore(Step.State, &s.state, .success, .SeqCst); + @atomicStore(Step.State, &s.state, .success, .seq_cst); } else |err| switch (err) { error.MakeFailed => { - @atomicStore(Step.State, &s.state, .failure, .SeqCst); + @atomicStore(Step.State, &s.state, .failure, .seq_cst); break :handle_result; }, - error.MakeSkipped => @atomicStore(Step.State, &s.state, .skipped, .SeqCst), + error.MakeSkipped => @atomicStore(Step.State, &s.state, .skipped, .seq_cst), } // Successful completion of a step, so we queue up its dependants as well. diff --git a/lib/c.zig b/lib/c.zig index 5d5040de7e..0534013d3b 100644 --- a/lib/c.zig +++ b/lib/c.zig @@ -26,7 +26,7 @@ const is_freestanding = switch (native_os) { comptime { if (is_freestanding and is_wasm and builtin.link_libc) { - @export(wasm_start, .{ .name = "_start", .linkage = .Strong }); + @export(wasm_start, .{ .name = "_start", .linkage = .strong }); } if (native_os == .linux) { @@ -34,16 +34,16 @@ comptime { } if (builtin.link_libc) { - @export(strcmp, .{ .name = "strcmp", .linkage = .Strong }); - @export(strncmp, .{ .name = "strncmp", .linkage = .Strong }); - @export(strerror, .{ .name = "strerror", .linkage = .Strong }); - @export(strlen, .{ .name = "strlen", .linkage = .Strong }); - @export(strcpy, .{ .name = "strcpy", .linkage = .Strong }); - @export(strncpy, .{ .name = "strncpy", .linkage = .Strong }); - @export(strcat, .{ .name = "strcat", .linkage = .Strong }); - @export(strncat, .{ .name = "strncat", .linkage = .Strong }); + @export(strcmp, .{ .name = "strcmp", .linkage = .strong }); + @export(strncmp, .{ .name = "strncmp", .linkage = .strong }); + @export(strerror, .{ .name = "strerror", .linkage = .strong }); + @export(strlen, .{ .name = "strlen", .linkage = .strong }); + @export(strcpy, .{ .name = "strcpy", .linkage = .strong }); + @export(strncpy, .{ .name = "strncpy", .linkage = .strong }); + @export(strcat, .{ .name = "strcat", .linkage = .strong }); + @export(strncat, .{ .name = "strncat", .linkage = .strong }); } else if (is_msvc) { - @export(_fltused, .{ .name = "_fltused", .linkage = .Strong }); + @export(_fltused, .{ .name = "_fltused", .linkage = .strong }); } } diff --git a/lib/compiler/aro/aro/Attribute.zig b/lib/compiler/aro/aro/Attribute.zig index f9cccb0142..2f99f48c0d 100644 --- a/lib/compiler/aro/aro/Attribute.zig +++ b/lib/compiler/aro/aro/Attribute.zig @@ -653,7 +653,7 @@ pub const Arguments = blk: { break :blk @Type(.{ .Union = .{ - .layout = .Auto, + .layout = .auto, .tag_type = null, .fields = &union_fields, .decls = &.{}, diff --git a/lib/compiler_rt/atomics.zig b/lib/compiler_rt/atomics.zig index 8e2fdbb54b..77519ee9a7 100644 --- a/lib/compiler_rt/atomics.zig +++ b/lib/compiler_rt/atomics.zig @@ -74,7 +74,7 @@ const SpinlockTable = struct { : "memory" ); } else flag: { - break :flag @atomicRmw(@TypeOf(self.v), &self.v, .Xchg, .Locked, .Acquire); + break :flag @atomicRmw(@TypeOf(self.v), &self.v, .Xchg, .Locked, .acquire); }; switch (flag) { @@ -91,7 +91,7 @@ const SpinlockTable = struct { : "memory" ); } else { - @atomicStore(@TypeOf(self.v), &self.v, .Unlocked, .Release); + @atomicStore(@TypeOf(self.v), &self.v, .Unlocked, .release); } } }; @@ -172,7 +172,7 @@ inline fn atomic_load_N(comptime T: type, src: *T, model: i32) T { defer sl.release(); return src.*; } else { - return @atomicLoad(T, src, .SeqCst); + return @atomicLoad(T, src, .seq_cst); } } @@ -203,7 +203,7 @@ inline fn atomic_store_N(comptime T: type, dst: *T, value: T, model: i32) void { defer sl.release(); dst.* = value; } else { - @atomicStore(T, dst, value, .SeqCst); + @atomicStore(T, dst, value, .seq_cst); } } @@ -239,12 +239,12 @@ fn wideUpdate(comptime T: type, ptr: *T, val: T, update: anytype) T { const mask = @as(WideAtomic, std.math.maxInt(T)) << inner_shift; - var wide_old = @atomicLoad(WideAtomic, wide_ptr, .SeqCst); + var wide_old = @atomicLoad(WideAtomic, wide_ptr, .seq_cst); while (true) { const old = @as(T, @truncate((wide_old & mask) >> inner_shift)); const new = update(val, old); const wide_new = wide_old & ~mask | (@as(WideAtomic, new) << inner_shift); - if (@cmpxchgWeak(WideAtomic, wide_ptr, wide_old, wide_new, .SeqCst, .SeqCst)) |new_wide_old| { + if (@cmpxchgWeak(WideAtomic, wide_ptr, wide_old, wide_new, .seq_cst, .seq_cst)) |new_wide_old| { wide_old = new_wide_old; } else { return old; @@ -270,7 +270,7 @@ inline fn atomic_exchange_N(comptime T: type, ptr: *T, val: T, model: i32) T { }; return wideUpdate(T, ptr, val, Updater.update); } else { - return @atomicRmw(T, ptr, .Xchg, val, .SeqCst); + return @atomicRmw(T, ptr, .Xchg, val, .seq_cst); } } @@ -315,7 +315,7 @@ inline fn atomic_compare_exchange_N( expected.* = value; return 0; } else { - if (@cmpxchgStrong(T, ptr, expected.*, desired, .SeqCst, .SeqCst)) |old_value| { + if (@cmpxchgStrong(T, ptr, expected.*, desired, .seq_cst, .seq_cst)) |old_value| { expected.* = old_value; return 0; } @@ -373,7 +373,7 @@ inline fn fetch_op_N(comptime T: type, comptime op: std.builtin.AtomicRmwOp, ptr return wideUpdate(T, ptr, val, Updater.update); } - return @atomicRmw(T, ptr, op, val, .SeqCst); + return @atomicRmw(T, ptr, op, val, .seq_cst); } fn __atomic_fetch_add_1(ptr: *u8, val: u8, model: i32) callconv(.C) u8 { diff --git a/lib/compiler_rt/clear_cache.zig b/lib/compiler_rt/clear_cache.zig index 3f9ecc0132..33d34ee42d 100644 --- a/lib/compiler_rt/clear_cache.zig +++ b/lib/compiler_rt/clear_cache.zig @@ -162,7 +162,7 @@ fn clear_cache(start: usize, end: usize) callconv(.C) void { } } -const linkage = if (builtin.is_test) std.builtin.GlobalLinkage.Internal else std.builtin.GlobalLinkage.Weak; +const linkage = if (builtin.is_test) std.builtin.GlobalLinkage.internal else std.builtin.GlobalLinkage.weak; fn exportIt() void { @export(clear_cache, .{ .name = "__clear_cache", .linkage = linkage }); diff --git a/lib/compiler_rt/common.zig b/lib/compiler_rt/common.zig index ea588c0065..38088de7a0 100644 --- a/lib/compiler_rt/common.zig +++ b/lib/compiler_rt/common.zig @@ -2,12 +2,12 @@ const std = @import("std"); const builtin = @import("builtin"); const native_endian = builtin.cpu.arch.endian(); -pub const linkage: std.builtin.GlobalLinkage = if (builtin.is_test) .Internal else .Weak; +pub const linkage: std.builtin.GlobalLinkage = if (builtin.is_test) .internal else .weak; /// Determines the symbol's visibility to other objects. /// For WebAssembly this allows the symbol to be resolved to other modules, but will not /// export it to the host runtime. pub const visibility: std.builtin.SymbolVisibility = - if (builtin.target.isWasm() and linkage != .Internal) .hidden else .default; + if (builtin.target.isWasm() and linkage != .internal) .hidden else .default; pub const want_aeabi = switch (builtin.abi) { .eabi, .eabihf, diff --git a/lib/compiler_rt/os_version_check.zig b/lib/compiler_rt/os_version_check.zig index 8b68154832..80353d5e5f 100644 --- a/lib/compiler_rt/os_version_check.zig +++ b/lib/compiler_rt/os_version_check.zig @@ -1,7 +1,7 @@ const std = @import("std"); const testing = std.testing; const builtin = @import("builtin"); -const linkage: std.builtin.GlobalLinkage = if (builtin.is_test) .Internal else .Weak; +const linkage: std.builtin.GlobalLinkage = if (builtin.is_test) .internal else .weak; const panic = @import("common.zig").panic; const have_availability_version_check = builtin.os.tag.isDarwin() and diff --git a/lib/compiler_rt/stack_probe.zig b/lib/compiler_rt/stack_probe.zig index 09d535bd51..5533464dcd 100644 --- a/lib/compiler_rt/stack_probe.zig +++ b/lib/compiler_rt/stack_probe.zig @@ -8,8 +8,8 @@ const is_test = builtin.is_test; const is_gnu = abi.isGnu(); const is_mingw = os_tag == .windows and is_gnu; -const linkage: std.builtin.GlobalLinkage = if (builtin.is_test) .Internal else .Weak; -const strong_linkage: std.builtin.GlobalLinkage = if (builtin.is_test) .Internal else .Strong; +const linkage: std.builtin.GlobalLinkage = if (builtin.is_test) .internal else .weak; +const strong_linkage: std.builtin.GlobalLinkage = if (builtin.is_test) .internal else .strong; pub const panic = @import("common.zig").panic; comptime { diff --git a/lib/std/Build.zig b/lib/std/Build.zig index 3892b9ca73..9ad4d0a69b 100644 --- a/lib/std/Build.zig +++ b/lib/std/Build.zig @@ -645,7 +645,7 @@ pub const ExecutableOptions = struct { version: ?std.SemanticVersion = null, optimize: std.builtin.OptimizeMode = .Debug, code_model: std.builtin.CodeModel = .default, - linkage: ?Step.Compile.Linkage = null, + linkage: ?std.builtin.LinkMode = null, max_rss: usize = 0, link_libc: ?bool = null, single_threaded: ?bool = null, diff --git a/lib/std/Build/Module.zig b/lib/std/Build/Module.zig index c6d908158c..12cbda39a0 100644 --- a/lib/std/Build/Module.zig +++ b/lib/std/Build/Module.zig @@ -414,7 +414,7 @@ pub const LinkSystemLibraryOptions = struct { needed: bool = false, weak: bool = false, use_pkg_config: SystemLib.UsePkgConfig = .yes, - preferred_link_mode: std.builtin.LinkMode = .Dynamic, + preferred_link_mode: std.builtin.LinkMode = .dynamic, search_strategy: SystemLib.SearchStrategy = .paths_first, }; diff --git a/lib/std/Build/Step/Compile.zig b/lib/std/Build/Step/Compile.zig index a7f6911b2f..75f01dbf5e 100644 --- a/lib/std/Build/Step/Compile.zig +++ b/lib/std/Build/Step/Compile.zig @@ -28,7 +28,7 @@ linker_script: ?LazyPath = null, version_script: ?LazyPath = null, out_filename: []const u8, out_lib_filename: []const u8, -linkage: ?Linkage = null, +linkage: ?std.builtin.LinkMode = null, version: ?std.SemanticVersion, kind: Kind, major_only_filename: ?[]const u8, @@ -223,7 +223,7 @@ pub const Options = struct { name: []const u8, root_module: Module.CreateOptions, kind: Kind, - linkage: ?Linkage = null, + linkage: ?std.builtin.LinkMode = null, version: ?std.SemanticVersion = null, max_rss: usize = 0, filters: []const []const u8 = &.{}, @@ -246,8 +246,6 @@ pub const Kind = enum { @"test", }; -pub const Linkage = enum { dynamic, static }; - pub fn create(owner: *std.Build, options: Options) *Compile { const name = owner.dupe(options.name); if (mem.indexOf(u8, name, "/") != null or mem.indexOf(u8, name, "\\") != null) { @@ -283,10 +281,7 @@ pub fn create(owner: *std.Build, options: Options) *Compile { .obj => .Obj, .exe, .@"test" => .Exe, }, - .link_mode = if (options.linkage) |some| @as(std.builtin.LinkMode, switch (some) { - .dynamic => .Dynamic, - .static => .Static, - }) else null, + .link_mode = options.linkage, .version = options.version, }) catch @panic("OOM"); @@ -531,11 +526,11 @@ pub fn dependsOnSystemLibrary(self: *const Compile, name: []const u8) bool { } pub fn isDynamicLibrary(self: *const Compile) bool { - return self.kind == .lib and self.linkage == Linkage.dynamic; + return self.kind == .lib and self.linkage == .dynamic; } pub fn isStaticLibrary(self: *const Compile) bool { - return self.kind == .lib and self.linkage != Linkage.dynamic; + return self.kind == .lib and self.linkage != .dynamic; } pub fn producesPdbFile(self: *Compile) bool { @@ -988,7 +983,7 @@ fn make(step: *Step, prog_node: *std.Progress.Node) !void { var prev_has_cflags = false; var prev_has_rcflags = false; var prev_search_strategy: Module.SystemLib.SearchStrategy = .paths_first; - var prev_preferred_link_mode: std.builtin.LinkMode = .Dynamic; + var prev_preferred_link_mode: std.builtin.LinkMode = .dynamic; // Track the number of positional arguments so that a nice error can be // emitted if there is nothing to link. var total_linker_objects: usize = @intFromBool(self.root_module.root_source_file != null); @@ -1053,16 +1048,16 @@ fn make(step: *Step, prog_node: *std.Progress.Node) !void { { switch (system_lib.search_strategy) { .no_fallback => switch (system_lib.preferred_link_mode) { - .Dynamic => try zig_args.append("-search_dylibs_only"), - .Static => try zig_args.append("-search_static_only"), + .dynamic => try zig_args.append("-search_dylibs_only"), + .static => try zig_args.append("-search_static_only"), }, .paths_first => switch (system_lib.preferred_link_mode) { - .Dynamic => try zig_args.append("-search_paths_first"), - .Static => try zig_args.append("-search_paths_first_static"), + .dynamic => try zig_args.append("-search_paths_first"), + .static => try zig_args.append("-search_paths_first_static"), }, .mode_first => switch (system_lib.preferred_link_mode) { - .Dynamic => try zig_args.append("-search_dylibs_first"), - .Static => try zig_args.append("-search_static_first"), + .dynamic => try zig_args.append("-search_dylibs_first"), + .static => try zig_args.append("-search_static_first"), }, } prev_search_strategy = system_lib.search_strategy; @@ -1138,7 +1133,7 @@ fn make(step: *Step, prog_node: *std.Progress.Node) !void { try zig_args.append(full_path_lib); total_linker_objects += 1; - if (other.linkage == Linkage.dynamic and + if (other.linkage == .dynamic and self.rootModuleTarget().os.tag != .windows) { if (fs.path.dirname(full_path_lib)) |dirname| { diff --git a/lib/std/Build/Step/TranslateC.zig b/lib/std/Build/Step/TranslateC.zig index 223b004993..7d69ffa8b0 100644 --- a/lib/std/Build/Step/TranslateC.zig +++ b/lib/std/Build/Step/TranslateC.zig @@ -55,7 +55,7 @@ pub const AddExecutableOptions = struct { version: ?std.SemanticVersion = null, target: ?std.Build.ResolvedTarget = null, optimize: ?std.builtin.OptimizeMode = null, - linkage: ?Step.Compile.Linkage = null, + linkage: ?std.builtin.LinkMode = null, }; pub fn getOutput(self: *TranslateC) std.Build.LazyPath { diff --git a/lib/std/Progress.zig b/lib/std/Progress.zig index fef89a228f..19f90e86a9 100644 --- a/lib/std/Progress.zig +++ b/lib/std/Progress.zig @@ -95,9 +95,9 @@ pub const Node = struct { /// This is the same as calling `start` and then `end` on the returned `Node`. Thread-safe. pub fn completeOne(self: *Node) void { if (self.parent) |parent| { - @atomicStore(?*Node, &parent.recently_updated_child, self, .Release); + @atomicStore(?*Node, &parent.recently_updated_child, self, .release); } - _ = @atomicRmw(usize, &self.unprotected_completed_items, .Add, 1, .Monotonic); + _ = @atomicRmw(usize, &self.unprotected_completed_items, .Add, 1, .monotonic); self.context.maybeRefresh(); } @@ -108,7 +108,7 @@ pub const Node = struct { { self.context.update_mutex.lock(); defer self.context.update_mutex.unlock(); - _ = @cmpxchgStrong(?*Node, &parent.recently_updated_child, self, null, .Monotonic, .Monotonic); + _ = @cmpxchgStrong(?*Node, &parent.recently_updated_child, self, null, .monotonic, .monotonic); } parent.completeOne(); } else { @@ -122,7 +122,7 @@ pub const Node = struct { /// Tell the parent node that this node is actively being worked on. Thread-safe. pub fn activate(self: *Node) void { if (self.parent) |parent| { - @atomicStore(?*Node, &parent.recently_updated_child, self, .Release); + @atomicStore(?*Node, &parent.recently_updated_child, self, .release); self.context.maybeRefresh(); } } @@ -134,9 +134,9 @@ pub const Node = struct { defer progress.update_mutex.unlock(); self.name = name; if (self.parent) |parent| { - @atomicStore(?*Node, &parent.recently_updated_child, self, .Release); + @atomicStore(?*Node, &parent.recently_updated_child, self, .release); if (parent.parent) |grand_parent| { - @atomicStore(?*Node, &grand_parent.recently_updated_child, parent, .Release); + @atomicStore(?*Node, &grand_parent.recently_updated_child, parent, .release); } if (progress.timer) |*timer| progress.maybeRefreshWithHeldLock(timer); } @@ -149,9 +149,9 @@ pub const Node = struct { defer progress.update_mutex.unlock(); self.unit = unit; if (self.parent) |parent| { - @atomicStore(?*Node, &parent.recently_updated_child, self, .Release); + @atomicStore(?*Node, &parent.recently_updated_child, self, .release); if (parent.parent) |grand_parent| { - @atomicStore(?*Node, &grand_parent.recently_updated_child, parent, .Release); + @atomicStore(?*Node, &grand_parent.recently_updated_child, parent, .release); } if (progress.timer) |*timer| progress.maybeRefreshWithHeldLock(timer); } @@ -159,12 +159,12 @@ pub const Node = struct { /// Thread-safe. 0 means unknown. pub fn setEstimatedTotalItems(self: *Node, count: usize) void { - @atomicStore(usize, &self.unprotected_estimated_total_items, count, .Monotonic); + @atomicStore(usize, &self.unprotected_estimated_total_items, count, .monotonic); } /// Thread-safe. pub fn setCompletedItems(self: *Node, completed_items: usize) void { - @atomicStore(usize, &self.unprotected_completed_items, completed_items, .Monotonic); + @atomicStore(usize, &self.unprotected_completed_items, completed_items, .monotonic); } }; @@ -313,8 +313,8 @@ fn refreshWithHeldLock(self: *Progress) void { self.bufWrite(&end, "... ", .{}); } need_ellipse = false; - const eti = @atomicLoad(usize, &node.unprotected_estimated_total_items, .Monotonic); - const completed_items = @atomicLoad(usize, &node.unprotected_completed_items, .Monotonic); + const eti = @atomicLoad(usize, &node.unprotected_estimated_total_items, .monotonic); + const completed_items = @atomicLoad(usize, &node.unprotected_completed_items, .monotonic); const current_item = completed_items + 1; if (node.name.len != 0 or eti > 0) { if (node.name.len != 0) { @@ -331,7 +331,7 @@ fn refreshWithHeldLock(self: *Progress) void { need_ellipse = false; } } - maybe_node = @atomicLoad(?*Node, &node.recently_updated_child, .Acquire); + maybe_node = @atomicLoad(?*Node, &node.recently_updated_child, .acquire); } if (need_ellipse) { self.bufWrite(&end, "... ", .{}); diff --git a/lib/std/Thread.zig b/lib/std/Thread.zig index a043f267bf..574e573c13 100644 --- a/lib/std/Thread.zig +++ b/lib/std/Thread.zig @@ -510,7 +510,7 @@ const WindowsThreadImpl = struct { fn entryFn(raw_ptr: windows.PVOID) callconv(.C) windows.DWORD { const self: *@This() = @ptrCast(@alignCast(raw_ptr)); - defer switch (self.thread.completion.swap(.completed, .SeqCst)) { + defer switch (self.thread.completion.swap(.completed, .seq_cst)) { .running => {}, .completed => unreachable, .detached => self.thread.free(), @@ -563,7 +563,7 @@ const WindowsThreadImpl = struct { fn detach(self: Impl) void { windows.CloseHandle(self.thread.thread_handle); - switch (self.thread.completion.swap(.detached, .SeqCst)) { + switch (self.thread.completion.swap(.detached, .seq_cst)) { .running => {}, .completed => self.thread.free(), .detached => unreachable, @@ -573,7 +573,7 @@ const WindowsThreadImpl = struct { fn join(self: Impl) void { windows.WaitForSingleObjectEx(self.thread.thread_handle, windows.INFINITE, false) catch unreachable; windows.CloseHandle(self.thread.thread_handle); - assert(self.thread.completion.load(.SeqCst) == .completed); + assert(self.thread.completion.load(.seq_cst) == .completed); self.thread.free(); } }; @@ -780,11 +780,11 @@ const WasiThreadImpl = struct { } fn getHandle(self: Impl) ThreadHandle { - return self.thread.tid.load(.SeqCst); + return self.thread.tid.load(.seq_cst); } fn detach(self: Impl) void { - switch (self.thread.state.swap(.detached, .SeqCst)) { + switch (self.thread.state.swap(.detached, .seq_cst)) { .running => {}, .completed => self.join(), .detached => unreachable, @@ -801,7 +801,7 @@ const WasiThreadImpl = struct { var spin: u8 = 10; while (true) { - const tid = self.thread.tid.load(.SeqCst); + const tid = self.thread.tid.load(.seq_cst); if (tid == 0) { break; } @@ -901,7 +901,7 @@ const WasiThreadImpl = struct { if (tid < 0) { return error.SystemResources; } - instance.thread.tid.store(tid, .SeqCst); + instance.thread.tid.store(tid, .seq_cst); return .{ .thread = &instance.thread }; } @@ -914,12 +914,12 @@ const WasiThreadImpl = struct { } __set_stack_pointer(arg.thread.memory.ptr + arg.stack_offset); __wasm_init_tls(arg.thread.memory.ptr + arg.tls_offset); - @atomicStore(u32, &WasiThreadImpl.tls_thread_id, @intCast(tid), .SeqCst); + @atomicStore(u32, &WasiThreadImpl.tls_thread_id, @intCast(tid), .seq_cst); // Finished bootstrapping, call user's procedure. arg.call_back(arg.raw_ptr); - switch (arg.thread.state.swap(.completed, .SeqCst)) { + switch (arg.thread.state.swap(.completed, .seq_cst)) { .running => { // reset the Thread ID asm volatile ( @@ -1191,7 +1191,7 @@ const LinuxThreadImpl = struct { fn entryFn(raw_arg: usize) callconv(.C) u8 { const self = @as(*@This(), @ptrFromInt(raw_arg)); - defer switch (self.thread.completion.swap(.completed, .SeqCst)) { + defer switch (self.thread.completion.swap(.completed, .seq_cst)) { .running => {}, .completed => unreachable, .detached => self.thread.freeAndExit(), @@ -1311,7 +1311,7 @@ const LinuxThreadImpl = struct { } fn detach(self: Impl) void { - switch (self.thread.completion.swap(.detached, .SeqCst)) { + switch (self.thread.completion.swap(.detached, .seq_cst)) { .running => {}, .completed => self.join(), .detached => unreachable, @@ -1323,7 +1323,7 @@ const LinuxThreadImpl = struct { var spin: u8 = 10; while (true) { - const tid = self.thread.child_tid.load(.SeqCst); + const tid = self.thread.child_tid.load(.seq_cst); if (tid == 0) { break; } diff --git a/lib/std/Thread/Condition.zig b/lib/std/Thread/Condition.zig index b1154f8bd0..39b8483950 100644 --- a/lib/std/Thread/Condition.zig +++ b/lib/std/Thread/Condition.zig @@ -163,7 +163,7 @@ const WindowsImpl = struct { if (comptime builtin.mode == .Debug) { // The internal state of the DebugMutex needs to be handled here as well. - mutex.impl.locking_thread.store(0, .Unordered); + mutex.impl.locking_thread.store(0, .unordered); } const rc = os.windows.kernel32.SleepConditionVariableSRW( &self.condition, @@ -173,7 +173,7 @@ const WindowsImpl = struct { ); if (comptime builtin.mode == .Debug) { // The internal state of the DebugMutex needs to be handled here as well. - mutex.impl.locking_thread.store(std.Thread.getCurrentId(), .Unordered); + mutex.impl.locking_thread.store(std.Thread.getCurrentId(), .unordered); } // Return error.Timeout if we know the timeout elapsed correctly. @@ -212,8 +212,8 @@ const FutexImpl = struct { // - T1: s & signals == 0 -> FUTEX_WAIT(&epoch, e) (missed the state update + the epoch change) // // Acquire barrier to ensure the epoch load happens before the state load. - var epoch = self.epoch.load(.Acquire); - var state = self.state.fetchAdd(one_waiter, .Monotonic); + var epoch = self.epoch.load(.acquire); + var state = self.state.fetchAdd(one_waiter, .monotonic); assert(state & waiter_mask != waiter_mask); state += one_waiter; @@ -231,30 +231,30 @@ const FutexImpl = struct { // Acquire barrier ensures code before the wake() which added the signal happens before we decrement it and return. while (state & signal_mask != 0) { const new_state = state - one_waiter - one_signal; - state = self.state.cmpxchgWeak(state, new_state, .Acquire, .Monotonic) orelse return; + state = self.state.cmpxchgWeak(state, new_state, .acquire, .monotonic) orelse return; } // Remove the waiter we added and officially return timed out. const new_state = state - one_waiter; - state = self.state.cmpxchgWeak(state, new_state, .Monotonic, .Monotonic) orelse return err; + state = self.state.cmpxchgWeak(state, new_state, .monotonic, .monotonic) orelse return err; } }, }; - epoch = self.epoch.load(.Acquire); - state = self.state.load(.Monotonic); + epoch = self.epoch.load(.acquire); + state = self.state.load(.monotonic); // Try to wake up by consuming a signal and decremented the waiter we added previously. // Acquire barrier ensures code before the wake() which added the signal happens before we decrement it and return. while (state & signal_mask != 0) { const new_state = state - one_waiter - one_signal; - state = self.state.cmpxchgWeak(state, new_state, .Acquire, .Monotonic) orelse return; + state = self.state.cmpxchgWeak(state, new_state, .acquire, .monotonic) orelse return; } } } fn wake(self: *Impl, comptime notify: Notify) void { - var state = self.state.load(.Monotonic); + var state = self.state.load(.monotonic); while (true) { const waiters = (state & waiter_mask) / one_waiter; const signals = (state & signal_mask) / one_signal; @@ -275,7 +275,7 @@ const FutexImpl = struct { // Reserve the amount of waiters to wake by incrementing the signals count. // Release barrier ensures code before the wake() happens before the signal it posted and consumed by the wait() threads. const new_state = state + (one_signal * to_wake); - state = self.state.cmpxchgWeak(state, new_state, .Release, .Monotonic) orelse { + state = self.state.cmpxchgWeak(state, new_state, .release, .monotonic) orelse { // Wake up the waiting threads we reserved above by changing the epoch value. // NOTE: a waiting thread could miss a wake up if *exactly* ((1<<32)-1) wake()s happen between it observing the epoch and sleeping on it. // This is very unlikely due to how many precise amount of Futex.wake() calls that would be between the waiting thread's potential preemption. @@ -288,7 +288,7 @@ const FutexImpl = struct { // - T1: s = LOAD(&state) // - T2: UPDATE(&state, signal) + FUTEX_WAKE(&epoch) // - T1: s & signals == 0 -> FUTEX_WAIT(&epoch, e) (missed both epoch change and state change) - _ = self.epoch.fetchAdd(1, .Release); + _ = self.epoch.fetchAdd(1, .release); Futex.wake(&self.epoch, to_wake); return; }; diff --git a/lib/std/Thread/Futex.zig b/lib/std/Thread/Futex.zig index b6f37feda4..160d983c71 100644 --- a/lib/std/Thread/Futex.zig +++ b/lib/std/Thread/Futex.zig @@ -40,7 +40,7 @@ pub fn timedWait(ptr: *const atomic.Value(u32), expect: u32, timeout_ns: u64) er // Avoid calling into the OS for no-op timeouts. if (timeout_ns == 0) { - if (ptr.load(.SeqCst) != expect) return; + if (ptr.load(.seq_cst) != expect) return; return error.Timeout; } @@ -783,16 +783,16 @@ const PosixImpl = struct { // - T1: bumps pending waiters (was reordered after the ptr == expect check) // - T1: goes to sleep and misses both the ptr change and T2's wake up // - // SeqCst as Acquire barrier to ensure the announcement happens before the ptr check below. - // SeqCst as shared modification order to form a happens-before edge with the fence(.SeqCst)+load() in wake(). - var pending = bucket.pending.fetchAdd(1, .SeqCst); + // seq_cst as Acquire barrier to ensure the announcement happens before the ptr check below. + // seq_cst as shared modification order to form a happens-before edge with the fence(.seq_cst)+load() in wake(). + var pending = bucket.pending.fetchAdd(1, .seq_cst); assert(pending < std.math.maxInt(usize)); // If the wait gets cancelled, remove the pending count we previously added. // This is done outside the mutex lock to keep the critical section short in case of contention. var cancelled = false; defer if (cancelled) { - pending = bucket.pending.fetchSub(1, .Monotonic); + pending = bucket.pending.fetchSub(1, .monotonic); assert(pending > 0); }; @@ -850,11 +850,11 @@ const PosixImpl = struct { // but the RMW operation unconditionally marks the cache-line as modified for others causing unnecessary fetching/contention. // // Instead we opt to do a full-fence + load instead which avoids taking ownership of the cache-line. - // fence(SeqCst) effectively converts the ptr update to SeqCst and the pending load to SeqCst: creating a Store-Load barrier. + // fence(seq_cst) effectively converts the ptr update to seq_cst and the pending load to seq_cst: creating a Store-Load barrier. // - // The pending count increment in wait() must also now use SeqCst for the update + this pending load - // to be in the same modification order as our load isn't using Release/Acquire to guarantee it. - bucket.pending.fence(.SeqCst); + // The pending count increment in wait() must also now use seq_cst for the update + this pending load + // to be in the same modification order as our load isn't using release/acquire to guarantee it. + bucket.pending.fence(.seq_cst); if (bucket.pending.load(.Monotonic) == 0) { return; } @@ -912,7 +912,7 @@ test "signaling" { current: u32 = 0, fn hit(self: *@This()) void { - _ = self.value.fetchAdd(1, .Release); + _ = self.value.fetchAdd(1, .release); Futex.wake(&self.value, 1); } @@ -921,7 +921,7 @@ test "signaling" { // Wait for the value to change from hit() var new_value: u32 = undefined; while (true) { - new_value = self.value.load(.Acquire); + new_value = self.value.load(.acquire); if (new_value != self.current) break; Futex.wait(&self.value, self.current); } @@ -968,7 +968,7 @@ test "broadcasting" { fn wait(self: *@This()) !void { // Decrement the counter. // Release ensures stuff before this barrier.wait() happens before the last one. - const count = self.count.fetchSub(1, .Release); + const count = self.count.fetchSub(1, .release); try testing.expect(count <= num_threads); try testing.expect(count > 0); @@ -976,15 +976,15 @@ test "broadcasting" { // Acquire for the last counter ensures stuff before previous barrier.wait()s happened before it. // Release on futex update ensures stuff before all barrier.wait()'s happens before they all return. if (count - 1 == 0) { - _ = self.count.load(.Acquire); // TODO: could be fence(Acquire) if not for TSAN - self.futex.store(1, .Release); + _ = self.count.load(.acquire); // TODO: could be fence(acquire) if not for TSAN + self.futex.store(1, .release); Futex.wake(&self.futex, num_threads - 1); return; } // Other threads wait until last counter wakes them up. // Acquire on futex synchronizes with last barrier count to ensure stuff before all barrier.wait()'s happen before us. - while (self.futex.load(.Acquire) == 0) { + while (self.futex.load(.acquire) == 0) { Futex.wait(&self.futex, 0); } } diff --git a/lib/std/Thread/Mutex.zig b/lib/std/Thread/Mutex.zig index 7beb7dd752..67472ffd9c 100644 --- a/lib/std/Thread/Mutex.zig +++ b/lib/std/Thread/Mutex.zig @@ -72,23 +72,23 @@ const DebugImpl = struct { inline fn tryLock(self: *@This()) bool { const locking = self.impl.tryLock(); if (locking) { - self.locking_thread.store(Thread.getCurrentId(), .Unordered); + self.locking_thread.store(Thread.getCurrentId(), .unordered); } return locking; } inline fn lock(self: *@This()) void { const current_id = Thread.getCurrentId(); - if (self.locking_thread.load(.Unordered) == current_id and current_id != 0) { + if (self.locking_thread.load(.unordered) == current_id and current_id != 0) { @panic("Deadlock detected"); } self.impl.lock(); - self.locking_thread.store(current_id, .Unordered); + self.locking_thread.store(current_id, .unordered); } inline fn unlock(self: *@This()) void { - assert(self.locking_thread.load(.Unordered) == Thread.getCurrentId()); - self.locking_thread.store(0, .Unordered); + assert(self.locking_thread.load(.unordered) == Thread.getCurrentId()); + self.locking_thread.store(0, .unordered); self.impl.unlock(); } }; @@ -167,12 +167,12 @@ const FutexImpl = struct { // - `lock bts` is smaller instruction-wise which makes it better for inlining if (comptime builtin.target.cpu.arch.isX86()) { const locked_bit = @ctz(locked); - return self.state.bitSet(locked_bit, .Acquire) == 0; + return self.state.bitSet(locked_bit, .acquire) == 0; } // Acquire barrier ensures grabbing the lock happens before the critical section // and that the previous lock holder's critical section happens before we grab the lock. - return self.state.cmpxchgWeak(unlocked, locked, .Acquire, .Monotonic) == null; + return self.state.cmpxchgWeak(unlocked, locked, .acquire, .monotonic) == null; } fn lockSlow(self: *@This()) void { @@ -180,7 +180,7 @@ const FutexImpl = struct { // Avoid doing an atomic swap below if we already know the state is contended. // An atomic swap unconditionally stores which marks the cache-line as modified unnecessarily. - if (self.state.load(.Monotonic) == contended) { + if (self.state.load(.monotonic) == contended) { Futex.wait(&self.state, contended); } @@ -193,7 +193,7 @@ const FutexImpl = struct { // // Acquire barrier ensures grabbing the lock happens before the critical section // and that the previous lock holder's critical section happens before we grab the lock. - while (self.state.swap(contended, .Acquire) != unlocked) { + while (self.state.swap(contended, .acquire) != unlocked) { Futex.wait(&self.state, contended); } } @@ -206,7 +206,7 @@ const FutexImpl = struct { // // Release barrier ensures the critical section happens before we let go of the lock // and that our critical section happens before the next lock holder grabs the lock. - const state = self.state.swap(unlocked, .Release); + const state = self.state.swap(unlocked, .release); assert(state != unlocked); if (state == contended) { diff --git a/lib/std/Thread/ResetEvent.zig b/lib/std/Thread/ResetEvent.zig index 431d54e852..b7e5758780 100644 --- a/lib/std/Thread/ResetEvent.zig +++ b/lib/std/Thread/ResetEvent.zig @@ -96,7 +96,7 @@ const FutexImpl = struct { fn isSet(self: *const Impl) bool { // Acquire barrier ensures memory accesses before set() happen before we return true. - return self.state.load(.Acquire) == is_set; + return self.state.load(.acquire) == is_set; } fn wait(self: *Impl, timeout: ?u64) error{Timeout}!void { @@ -112,9 +112,9 @@ const FutexImpl = struct { // Try to set the state from `unset` to `waiting` to indicate // to the set() thread that others are blocked on the ResetEvent. // We avoid using any strict barriers until the end when we know the ResetEvent is set. - var state = self.state.load(.Monotonic); + var state = self.state.load(.monotonic); if (state == unset) { - state = self.state.cmpxchgStrong(state, waiting, .Monotonic, .Monotonic) orelse waiting; + state = self.state.cmpxchgStrong(state, waiting, .monotonic, .monotonic) orelse waiting; } // Wait until the ResetEvent is set since the state is waiting. @@ -124,7 +124,7 @@ const FutexImpl = struct { const wait_result = futex_deadline.wait(&self.state, waiting); // Check if the ResetEvent was set before possibly reporting error.Timeout below. - state = self.state.load(.Monotonic); + state = self.state.load(.monotonic); if (state != waiting) { break; } @@ -135,25 +135,25 @@ const FutexImpl = struct { // Acquire barrier ensures memory accesses before set() happen before we return. assert(state == is_set); - self.state.fence(.Acquire); + self.state.fence(.acquire); } fn set(self: *Impl) void { // Quick check if the ResetEvent is already set before doing the atomic swap below. // set() could be getting called quite often and multiple threads calling swap() increases contention unnecessarily. - if (self.state.load(.Monotonic) == is_set) { + if (self.state.load(.monotonic) == is_set) { return; } // Mark the ResetEvent as set and unblock all waiters waiting on it if any. // Release barrier ensures memory accesses before set() happen before the ResetEvent is observed to be "set". - if (self.state.swap(is_set, .Release) == waiting) { + if (self.state.swap(is_set, .release) == waiting) { Futex.wake(&self.state, std.math.maxInt(u32)); } } fn reset(self: *Impl) void { - self.state.store(unset, .Monotonic); + self.state.store(unset, .monotonic); } }; @@ -254,7 +254,7 @@ test "broadcast" { counter: std.atomic.Value(usize) = std.atomic.Value(usize).init(num_threads), fn wait(self: *@This()) void { - if (self.counter.fetchSub(1, .AcqRel) == 1) { + if (self.counter.fetchSub(1, .acq_rel) == 1) { self.event.set(); } } diff --git a/lib/std/Thread/RwLock.zig b/lib/std/Thread/RwLock.zig index 80207dee00..2152c0756c 100644 --- a/lib/std/Thread/RwLock.zig +++ b/lib/std/Thread/RwLock.zig @@ -179,9 +179,9 @@ pub const DefaultRwLock = struct { pub fn tryLock(rwl: *DefaultRwLock) bool { if (rwl.mutex.tryLock()) { - const state = @atomicLoad(usize, &rwl.state, .SeqCst); + const state = @atomicLoad(usize, &rwl.state, .seq_cst); if (state & READER_MASK == 0) { - _ = @atomicRmw(usize, &rwl.state, .Or, IS_WRITING, .SeqCst); + _ = @atomicRmw(usize, &rwl.state, .Or, IS_WRITING, .seq_cst); return true; } @@ -192,34 +192,34 @@ pub const DefaultRwLock = struct { } pub fn lock(rwl: *DefaultRwLock) void { - _ = @atomicRmw(usize, &rwl.state, .Add, WRITER, .SeqCst); + _ = @atomicRmw(usize, &rwl.state, .Add, WRITER, .seq_cst); rwl.mutex.lock(); - const state = @atomicRmw(usize, &rwl.state, .Add, IS_WRITING -% WRITER, .SeqCst); + const state = @atomicRmw(usize, &rwl.state, .Add, IS_WRITING -% WRITER, .seq_cst); if (state & READER_MASK != 0) rwl.semaphore.wait(); } pub fn unlock(rwl: *DefaultRwLock) void { - _ = @atomicRmw(usize, &rwl.state, .And, ~IS_WRITING, .SeqCst); + _ = @atomicRmw(usize, &rwl.state, .And, ~IS_WRITING, .seq_cst); rwl.mutex.unlock(); } pub fn tryLockShared(rwl: *DefaultRwLock) bool { - const state = @atomicLoad(usize, &rwl.state, .SeqCst); + const state = @atomicLoad(usize, &rwl.state, .seq_cst); if (state & (IS_WRITING | WRITER_MASK) == 0) { _ = @cmpxchgStrong( usize, &rwl.state, state, state + READER, - .SeqCst, - .SeqCst, + .seq_cst, + .seq_cst, ) orelse return true; } if (rwl.mutex.tryLock()) { - _ = @atomicRmw(usize, &rwl.state, .Add, READER, .SeqCst); + _ = @atomicRmw(usize, &rwl.state, .Add, READER, .seq_cst); rwl.mutex.unlock(); return true; } @@ -228,25 +228,25 @@ pub const DefaultRwLock = struct { } pub fn lockShared(rwl: *DefaultRwLock) void { - var state = @atomicLoad(usize, &rwl.state, .SeqCst); + var state = @atomicLoad(usize, &rwl.state, .seq_cst); while (state & (IS_WRITING | WRITER_MASK) == 0) { state = @cmpxchgWeak( usize, &rwl.state, state, state + READER, - .SeqCst, - .SeqCst, + .seq_cst, + .seq_cst, ) orelse return; } rwl.mutex.lock(); - _ = @atomicRmw(usize, &rwl.state, .Add, READER, .SeqCst); + _ = @atomicRmw(usize, &rwl.state, .Add, READER, .seq_cst); rwl.mutex.unlock(); } pub fn unlockShared(rwl: *DefaultRwLock) void { - const state = @atomicRmw(usize, &rwl.state, .Sub, READER, .SeqCst); + const state = @atomicRmw(usize, &rwl.state, .Sub, READER, .seq_cst); if ((state & READER_MASK == READER) and (state & IS_WRITING != 0)) rwl.semaphore.post(); @@ -318,12 +318,12 @@ test "concurrent access" { self.rwl.lockShared(); defer self.rwl.unlockShared(); - if (self.writes >= num_writes or self.reads.load(.Unordered) >= num_reads) + if (self.writes >= num_writes or self.reads.load(.unordered) >= num_reads) break; try self.check(); - _ = self.reads.fetchAdd(1, .Monotonic); + _ = self.reads.fetchAdd(1, .monotonic); } } diff --git a/lib/std/Thread/WaitGroup.zig b/lib/std/Thread/WaitGroup.zig index d85188fa78..cbc3ff0c8f 100644 --- a/lib/std/Thread/WaitGroup.zig +++ b/lib/std/Thread/WaitGroup.zig @@ -10,22 +10,22 @@ state: std.atomic.Value(usize) = std.atomic.Value(usize).init(0), event: std.Thread.ResetEvent = .{}, pub fn start(self: *WaitGroup) void { - const state = self.state.fetchAdd(one_pending, .Monotonic); + const state = self.state.fetchAdd(one_pending, .monotonic); assert((state / one_pending) < (std.math.maxInt(usize) / one_pending)); } pub fn finish(self: *WaitGroup) void { - const state = self.state.fetchSub(one_pending, .Release); + const state = self.state.fetchSub(one_pending, .release); assert((state / one_pending) > 0); if (state == (one_pending | is_waiting)) { - self.state.fence(.Acquire); + self.state.fence(.acquire); self.event.set(); } } pub fn wait(self: *WaitGroup) void { - const state = self.state.fetchAdd(is_waiting, .Acquire); + const state = self.state.fetchAdd(is_waiting, .acquire); assert(state & is_waiting == 0); if ((state / one_pending) > 0) { @@ -34,12 +34,12 @@ pub fn wait(self: *WaitGroup) void { } pub fn reset(self: *WaitGroup) void { - self.state.store(0, .Monotonic); + self.state.store(0, .monotonic); self.event.reset(); } pub fn isDone(wg: *WaitGroup) bool { - const state = wg.state.load(.Acquire); + const state = wg.state.load(.acquire); assert(state & is_waiting == 0); return (state / one_pending) == 0; diff --git a/lib/std/atomic.zig b/lib/std/atomic.zig index a185ab72db..bc8b181715 100644 --- a/lib/std/atomic.zig +++ b/lib/std/atomic.zig @@ -23,10 +23,10 @@ pub fn Value(comptime T: type) type { const addr: *anyopaque = self; return switch (order) { - .Unordered, .Monotonic => @compileError(@tagName(order) ++ " only applies to atomic loads and stores"), - .Acquire => tsan.__tsan_acquire(addr), - .Release => tsan.__tsan_release(addr), - .AcqRel, .SeqCst => { + .unordered, .monotonic => @compileError(@tagName(order) ++ " only applies to atomic loads and stores"), + .acquire => tsan.__tsan_acquire(addr), + .release => tsan.__tsan_release(addr), + .acq_rel, .seq_cst => { tsan.__tsan_acquire(addr); tsan.__tsan_release(addr); }, @@ -149,20 +149,20 @@ test Value { fn ref(rc: *RefCount) void { // No ordering necessary; just updating a counter. - _ = rc.count.fetchAdd(1, .Monotonic); + _ = rc.count.fetchAdd(1, .monotonic); } fn unref(rc: *RefCount) void { // Release ensures code before unref() happens-before the // count is decremented as dropFn could be called by then. - if (rc.count.fetchSub(1, .Release) == 1) { - // Acquire ensures count decrement and code before + if (rc.count.fetchSub(1, .release) == 1) { + // acquire ensures count decrement and code before // previous unrefs()s happens-before we call dropFn // below. // Another alternative is to use .AcqRel on the // fetchSub count decrement but it's extra barrier in // possibly hot path. - rc.count.fence(.Acquire); + rc.count.fence(.acquire); (rc.dropFn)(rc); } } @@ -182,118 +182,118 @@ test Value { test "Value.swap" { var x = Value(usize).init(5); - try testing.expectEqual(@as(usize, 5), x.swap(10, .SeqCst)); - try testing.expectEqual(@as(usize, 10), x.load(.SeqCst)); + try testing.expectEqual(@as(usize, 5), x.swap(10, .seq_cst)); + try testing.expectEqual(@as(usize, 10), x.load(.seq_cst)); const E = enum(usize) { a, b, c }; var y = Value(E).init(.c); - try testing.expectEqual(E.c, y.swap(.a, .SeqCst)); - try testing.expectEqual(E.a, y.load(.SeqCst)); + try testing.expectEqual(E.c, y.swap(.a, .seq_cst)); + try testing.expectEqual(E.a, y.load(.seq_cst)); var z = Value(f32).init(5.0); - try testing.expectEqual(@as(f32, 5.0), z.swap(10.0, .SeqCst)); - try testing.expectEqual(@as(f32, 10.0), z.load(.SeqCst)); + try testing.expectEqual(@as(f32, 5.0), z.swap(10.0, .seq_cst)); + try testing.expectEqual(@as(f32, 10.0), z.load(.seq_cst)); var a = Value(bool).init(false); - try testing.expectEqual(false, a.swap(true, .SeqCst)); - try testing.expectEqual(true, a.load(.SeqCst)); + try testing.expectEqual(false, a.swap(true, .seq_cst)); + try testing.expectEqual(true, a.load(.seq_cst)); var b = Value(?*u8).init(null); - try testing.expectEqual(@as(?*u8, null), b.swap(@as(?*u8, @ptrFromInt(@alignOf(u8))), .SeqCst)); - try testing.expectEqual(@as(?*u8, @ptrFromInt(@alignOf(u8))), b.load(.SeqCst)); + try testing.expectEqual(@as(?*u8, null), b.swap(@as(?*u8, @ptrFromInt(@alignOf(u8))), .seq_cst)); + try testing.expectEqual(@as(?*u8, @ptrFromInt(@alignOf(u8))), b.load(.seq_cst)); } test "Value.store" { var x = Value(usize).init(5); - x.store(10, .SeqCst); - try testing.expectEqual(@as(usize, 10), x.load(.SeqCst)); + x.store(10, .seq_cst); + try testing.expectEqual(@as(usize, 10), x.load(.seq_cst)); } test "Value.cmpxchgWeak" { var x = Value(usize).init(0); - try testing.expectEqual(@as(?usize, 0), x.cmpxchgWeak(1, 0, .SeqCst, .SeqCst)); - try testing.expectEqual(@as(usize, 0), x.load(.SeqCst)); + try testing.expectEqual(@as(?usize, 0), x.cmpxchgWeak(1, 0, .seq_cst, .seq_cst)); + try testing.expectEqual(@as(usize, 0), x.load(.seq_cst)); - while (x.cmpxchgWeak(0, 1, .SeqCst, .SeqCst)) |_| {} - try testing.expectEqual(@as(usize, 1), x.load(.SeqCst)); + while (x.cmpxchgWeak(0, 1, .seq_cst, .seq_cst)) |_| {} + try testing.expectEqual(@as(usize, 1), x.load(.seq_cst)); - while (x.cmpxchgWeak(1, 0, .SeqCst, .SeqCst)) |_| {} - try testing.expectEqual(@as(usize, 0), x.load(.SeqCst)); + while (x.cmpxchgWeak(1, 0, .seq_cst, .seq_cst)) |_| {} + try testing.expectEqual(@as(usize, 0), x.load(.seq_cst)); } test "Value.cmpxchgStrong" { var x = Value(usize).init(0); - try testing.expectEqual(@as(?usize, 0), x.cmpxchgStrong(1, 0, .SeqCst, .SeqCst)); - try testing.expectEqual(@as(usize, 0), x.load(.SeqCst)); - try testing.expectEqual(@as(?usize, null), x.cmpxchgStrong(0, 1, .SeqCst, .SeqCst)); - try testing.expectEqual(@as(usize, 1), x.load(.SeqCst)); - try testing.expectEqual(@as(?usize, null), x.cmpxchgStrong(1, 0, .SeqCst, .SeqCst)); - try testing.expectEqual(@as(usize, 0), x.load(.SeqCst)); + try testing.expectEqual(@as(?usize, 0), x.cmpxchgStrong(1, 0, .seq_cst, .seq_cst)); + try testing.expectEqual(@as(usize, 0), x.load(.seq_cst)); + try testing.expectEqual(@as(?usize, null), x.cmpxchgStrong(0, 1, .seq_cst, .seq_cst)); + try testing.expectEqual(@as(usize, 1), x.load(.seq_cst)); + try testing.expectEqual(@as(?usize, null), x.cmpxchgStrong(1, 0, .seq_cst, .seq_cst)); + try testing.expectEqual(@as(usize, 0), x.load(.seq_cst)); } test "Value.fetchAdd" { var x = Value(usize).init(5); - try testing.expectEqual(@as(usize, 5), x.fetchAdd(5, .SeqCst)); - try testing.expectEqual(@as(usize, 10), x.load(.SeqCst)); - try testing.expectEqual(@as(usize, 10), x.fetchAdd(std.math.maxInt(usize), .SeqCst)); - try testing.expectEqual(@as(usize, 9), x.load(.SeqCst)); + try testing.expectEqual(@as(usize, 5), x.fetchAdd(5, .seq_cst)); + try testing.expectEqual(@as(usize, 10), x.load(.seq_cst)); + try testing.expectEqual(@as(usize, 10), x.fetchAdd(std.math.maxInt(usize), .seq_cst)); + try testing.expectEqual(@as(usize, 9), x.load(.seq_cst)); } test "Value.fetchSub" { var x = Value(usize).init(5); - try testing.expectEqual(@as(usize, 5), x.fetchSub(5, .SeqCst)); - try testing.expectEqual(@as(usize, 0), x.load(.SeqCst)); - try testing.expectEqual(@as(usize, 0), x.fetchSub(1, .SeqCst)); - try testing.expectEqual(@as(usize, std.math.maxInt(usize)), x.load(.SeqCst)); + try testing.expectEqual(@as(usize, 5), x.fetchSub(5, .seq_cst)); + try testing.expectEqual(@as(usize, 0), x.load(.seq_cst)); + try testing.expectEqual(@as(usize, 0), x.fetchSub(1, .seq_cst)); + try testing.expectEqual(@as(usize, std.math.maxInt(usize)), x.load(.seq_cst)); } test "Value.fetchMin" { var x = Value(usize).init(5); - try testing.expectEqual(@as(usize, 5), x.fetchMin(0, .SeqCst)); - try testing.expectEqual(@as(usize, 0), x.load(.SeqCst)); - try testing.expectEqual(@as(usize, 0), x.fetchMin(10, .SeqCst)); - try testing.expectEqual(@as(usize, 0), x.load(.SeqCst)); + try testing.expectEqual(@as(usize, 5), x.fetchMin(0, .seq_cst)); + try testing.expectEqual(@as(usize, 0), x.load(.seq_cst)); + try testing.expectEqual(@as(usize, 0), x.fetchMin(10, .seq_cst)); + try testing.expectEqual(@as(usize, 0), x.load(.seq_cst)); } test "Value.fetchMax" { var x = Value(usize).init(5); - try testing.expectEqual(@as(usize, 5), x.fetchMax(10, .SeqCst)); - try testing.expectEqual(@as(usize, 10), x.load(.SeqCst)); - try testing.expectEqual(@as(usize, 10), x.fetchMax(5, .SeqCst)); - try testing.expectEqual(@as(usize, 10), x.load(.SeqCst)); + try testing.expectEqual(@as(usize, 5), x.fetchMax(10, .seq_cst)); + try testing.expectEqual(@as(usize, 10), x.load(.seq_cst)); + try testing.expectEqual(@as(usize, 10), x.fetchMax(5, .seq_cst)); + try testing.expectEqual(@as(usize, 10), x.load(.seq_cst)); } test "Value.fetchAnd" { var x = Value(usize).init(0b11); - try testing.expectEqual(@as(usize, 0b11), x.fetchAnd(0b10, .SeqCst)); - try testing.expectEqual(@as(usize, 0b10), x.load(.SeqCst)); - try testing.expectEqual(@as(usize, 0b10), x.fetchAnd(0b00, .SeqCst)); - try testing.expectEqual(@as(usize, 0b00), x.load(.SeqCst)); + try testing.expectEqual(@as(usize, 0b11), x.fetchAnd(0b10, .seq_cst)); + try testing.expectEqual(@as(usize, 0b10), x.load(.seq_cst)); + try testing.expectEqual(@as(usize, 0b10), x.fetchAnd(0b00, .seq_cst)); + try testing.expectEqual(@as(usize, 0b00), x.load(.seq_cst)); } test "Value.fetchNand" { var x = Value(usize).init(0b11); - try testing.expectEqual(@as(usize, 0b11), x.fetchNand(0b10, .SeqCst)); - try testing.expectEqual(~@as(usize, 0b10), x.load(.SeqCst)); - try testing.expectEqual(~@as(usize, 0b10), x.fetchNand(0b00, .SeqCst)); - try testing.expectEqual(~@as(usize, 0b00), x.load(.SeqCst)); + try testing.expectEqual(@as(usize, 0b11), x.fetchNand(0b10, .seq_cst)); + try testing.expectEqual(~@as(usize, 0b10), x.load(.seq_cst)); + try testing.expectEqual(~@as(usize, 0b10), x.fetchNand(0b00, .seq_cst)); + try testing.expectEqual(~@as(usize, 0b00), x.load(.seq_cst)); } test "Value.fetchOr" { var x = Value(usize).init(0b11); - try testing.expectEqual(@as(usize, 0b11), x.fetchOr(0b100, .SeqCst)); - try testing.expectEqual(@as(usize, 0b111), x.load(.SeqCst)); - try testing.expectEqual(@as(usize, 0b111), x.fetchOr(0b010, .SeqCst)); - try testing.expectEqual(@as(usize, 0b111), x.load(.SeqCst)); + try testing.expectEqual(@as(usize, 0b11), x.fetchOr(0b100, .seq_cst)); + try testing.expectEqual(@as(usize, 0b111), x.load(.seq_cst)); + try testing.expectEqual(@as(usize, 0b111), x.fetchOr(0b010, .seq_cst)); + try testing.expectEqual(@as(usize, 0b111), x.load(.seq_cst)); } test "Value.fetchXor" { var x = Value(usize).init(0b11); - try testing.expectEqual(@as(usize, 0b11), x.fetchXor(0b10, .SeqCst)); - try testing.expectEqual(@as(usize, 0b01), x.load(.SeqCst)); - try testing.expectEqual(@as(usize, 0b01), x.fetchXor(0b01, .SeqCst)); - try testing.expectEqual(@as(usize, 0b00), x.load(.SeqCst)); + try testing.expectEqual(@as(usize, 0b11), x.fetchXor(0b10, .seq_cst)); + try testing.expectEqual(@as(usize, 0b01), x.load(.seq_cst)); + try testing.expectEqual(@as(usize, 0b01), x.fetchXor(0b01, .seq_cst)); + try testing.expectEqual(@as(usize, 0b00), x.load(.seq_cst)); } test "Value.bitSet" { @@ -304,19 +304,19 @@ test "Value.bitSet" { const mask = @as(usize, 1) << bit; // setting the bit should change the bit - try testing.expect(x.load(.SeqCst) & mask == 0); - try testing.expectEqual(@as(u1, 0), x.bitSet(bit, .SeqCst)); - try testing.expect(x.load(.SeqCst) & mask != 0); + try testing.expect(x.load(.seq_cst) & mask == 0); + try testing.expectEqual(@as(u1, 0), x.bitSet(bit, .seq_cst)); + try testing.expect(x.load(.seq_cst) & mask != 0); // setting it again shouldn't change the bit - try testing.expectEqual(@as(u1, 1), x.bitSet(bit, .SeqCst)); - try testing.expect(x.load(.SeqCst) & mask != 0); + try testing.expectEqual(@as(u1, 1), x.bitSet(bit, .seq_cst)); + try testing.expect(x.load(.seq_cst) & mask != 0); // all the previous bits should have not changed (still be set) for (0..bit_index) |prev_bit_index| { const prev_bit = @as(std.math.Log2Int(usize), @intCast(prev_bit_index)); const prev_mask = @as(usize, 1) << prev_bit; - try testing.expect(x.load(.SeqCst) & prev_mask != 0); + try testing.expect(x.load(.seq_cst) & prev_mask != 0); } } } @@ -330,19 +330,19 @@ test "Value.bitReset" { x.raw |= mask; // unsetting the bit should change the bit - try testing.expect(x.load(.SeqCst) & mask != 0); - try testing.expectEqual(@as(u1, 1), x.bitReset(bit, .SeqCst)); - try testing.expect(x.load(.SeqCst) & mask == 0); + try testing.expect(x.load(.seq_cst) & mask != 0); + try testing.expectEqual(@as(u1, 1), x.bitReset(bit, .seq_cst)); + try testing.expect(x.load(.seq_cst) & mask == 0); // unsetting it again shouldn't change the bit - try testing.expectEqual(@as(u1, 0), x.bitReset(bit, .SeqCst)); - try testing.expect(x.load(.SeqCst) & mask == 0); + try testing.expectEqual(@as(u1, 0), x.bitReset(bit, .seq_cst)); + try testing.expect(x.load(.seq_cst) & mask == 0); // all the previous bits should have not changed (still be reset) for (0..bit_index) |prev_bit_index| { const prev_bit = @as(std.math.Log2Int(usize), @intCast(prev_bit_index)); const prev_mask = @as(usize, 1) << prev_bit; - try testing.expect(x.load(.SeqCst) & prev_mask == 0); + try testing.expect(x.load(.seq_cst) & prev_mask == 0); } } } @@ -355,19 +355,19 @@ test "Value.bitToggle" { const mask = @as(usize, 1) << bit; // toggling the bit should change the bit - try testing.expect(x.load(.SeqCst) & mask == 0); - try testing.expectEqual(@as(u1, 0), x.bitToggle(bit, .SeqCst)); - try testing.expect(x.load(.SeqCst) & mask != 0); + try testing.expect(x.load(.seq_cst) & mask == 0); + try testing.expectEqual(@as(u1, 0), x.bitToggle(bit, .seq_cst)); + try testing.expect(x.load(.seq_cst) & mask != 0); // toggling it again *should* change the bit - try testing.expectEqual(@as(u1, 1), x.bitToggle(bit, .SeqCst)); - try testing.expect(x.load(.SeqCst) & mask == 0); + try testing.expectEqual(@as(u1, 1), x.bitToggle(bit, .seq_cst)); + try testing.expect(x.load(.seq_cst) & mask == 0); // all the previous bits should have not changed (still be toggled back) for (0..bit_index) |prev_bit_index| { const prev_bit = @as(std.math.Log2Int(usize), @intCast(prev_bit_index)); const prev_mask = @as(usize, 1) << prev_bit; - try testing.expect(x.load(.SeqCst) & prev_mask == 0); + try testing.expect(x.load(.seq_cst) & prev_mask == 0); } } } diff --git a/lib/std/builtin.zig b/lib/std/builtin.zig index 3339a5337e..d9e72f2019 100644 --- a/lib/std/builtin.zig +++ b/lib/std/builtin.zig @@ -64,10 +64,10 @@ pub const StackTrace = struct { /// This data structure is used by the Zig language code generation and /// therefore must be kept in sync with the compiler implementation. pub const GlobalLinkage = enum { - Internal, - Strong, - Weak, - LinkOnce, + internal, + strong, + weak, + link_once, }; /// This data structure is used by the Zig language code generation and @@ -81,12 +81,12 @@ pub const SymbolVisibility = enum { /// This data structure is used by the Zig language code generation and /// therefore must be kept in sync with the compiler implementation. pub const AtomicOrder = enum { - Unordered, - Monotonic, - Acquire, - Release, - AcqRel, - SeqCst, + unordered, + monotonic, + acquire, + release, + acq_rel, + seq_cst, }; /// This data structure is used by the Zig language code generation and @@ -334,9 +334,9 @@ pub const Type = union(enum) { /// This data structure is used by the Zig language code generation and /// therefore must be kept in sync with the compiler implementation. pub const ContainerLayout = enum(u2) { - Auto, - Extern, - Packed, + auto, + @"extern", + @"packed", }; /// This data structure is used by the Zig language code generation and @@ -353,7 +353,7 @@ pub const Type = union(enum) { /// therefore must be kept in sync with the compiler implementation. pub const Struct = struct { layout: ContainerLayout, - /// Only valid if layout is .Packed + /// Only valid if layout is .@"packed" backing_integer: ?type = null, fields: []const StructField, decls: []const Declaration, @@ -471,8 +471,8 @@ pub const Type = union(enum) { /// This data structure is used by the Zig language code generation and /// therefore must be kept in sync with the compiler implementation. pub const FloatMode = enum { - Strict, - Optimized, + strict, + optimized, }; /// This data structure is used by the Zig language code generation and @@ -500,8 +500,8 @@ pub const OutputMode = enum { /// This data structure is used by the Zig language code generation and /// therefore must be kept in sync with the compiler implementation. pub const LinkMode = enum { - Static, - Dynamic, + static, + dynamic, }; /// This data structure is used by the Zig language code generation and @@ -659,7 +659,7 @@ pub const PrefetchOptions = struct { /// therefore must be kept in sync with the compiler implementation. pub const ExportOptions = struct { name: []const u8, - linkage: GlobalLinkage = .Strong, + linkage: GlobalLinkage = .strong, section: ?[]const u8 = null, visibility: SymbolVisibility = .default, }; @@ -669,7 +669,7 @@ pub const ExportOptions = struct { pub const ExternOptions = struct { name: []const u8, library_name: ?[]const u8 = null, - linkage: GlobalLinkage = .Strong, + linkage: GlobalLinkage = .strong, is_thread_local: bool = false, }; diff --git a/lib/std/c/darwin.zig b/lib/std/c/darwin.zig index 947abe58c9..a58ce6e2dd 100644 --- a/lib/std/c/darwin.zig +++ b/lib/std/c/darwin.zig @@ -202,7 +202,7 @@ var dummy_execute_header: mach_hdr = undefined; pub extern var _mh_execute_header: mach_hdr; comptime { if (builtin.target.isDarwin()) { - @export(dummy_execute_header, .{ .name = "_mh_execute_header", .linkage = .Weak }); + @export(dummy_execute_header, .{ .name = "_mh_execute_header", .linkage = .weak }); } } diff --git a/lib/std/child_process.zig b/lib/std/child_process.zig index 23653710eb..edc97c2c3e 100644 --- a/lib/std/child_process.zig +++ b/lib/std/child_process.zig @@ -1420,7 +1420,7 @@ fn windowsMakeAsyncPipe(rd: *?windows.HANDLE, wr: *?windows.HANDLE, sattr: *cons const pipe_path = std.fmt.bufPrintZ( &tmp_buf, "\\\\.\\pipe\\zig-childprocess-{d}-{d}", - .{ windows.kernel32.GetCurrentProcessId(), pipe_name_counter.fetchAdd(1, .Monotonic) }, + .{ windows.kernel32.GetCurrentProcessId(), pipe_name_counter.fetchAdd(1, .monotonic) }, ) catch unreachable; const len = std.unicode.wtf8ToWtf16Le(&tmp_bufw, pipe_path) catch unreachable; tmp_bufw[len] = 0; diff --git a/lib/std/debug.zig b/lib/std/debug.zig index 97a0c6912b..046adadb46 100644 --- a/lib/std/debug.zig +++ b/lib/std/debug.zig @@ -461,7 +461,7 @@ pub fn panicImpl(trace: ?*const std.builtin.StackTrace, first_trace_addr: ?usize 0 => { panic_stage = 1; - _ = panicking.fetchAdd(1, .SeqCst); + _ = panicking.fetchAdd(1, .seq_cst); // Make sure to release the mutex when done { @@ -503,7 +503,7 @@ pub fn panicImpl(trace: ?*const std.builtin.StackTrace, first_trace_addr: ?usize /// Must be called only after adding 1 to `panicking`. There are three callsites. fn waitForOtherThreadToFinishPanicking() void { - if (panicking.fetchSub(1, .SeqCst) != 1) { + if (panicking.fetchSub(1, .seq_cst) != 1) { // Another thread is panicking, wait for the last one to finish // and call abort() if (builtin.single_threaded) unreachable; @@ -2587,7 +2587,7 @@ fn handleSegfaultPosix(sig: i32, info: *const os.siginfo_t, ctx_ptr: ?*const any nosuspend switch (panic_stage) { 0 => { panic_stage = 1; - _ = panicking.fetchAdd(1, .SeqCst); + _ = panicking.fetchAdd(1, .seq_cst); { panic_mutex.lock(); @@ -2663,7 +2663,7 @@ fn handleSegfaultWindowsExtra( nosuspend switch (panic_stage) { 0 => { panic_stage = 1; - _ = panicking.fetchAdd(1, .SeqCst); + _ = panicking.fetchAdd(1, .seq_cst); { panic_mutex.lock(); diff --git a/lib/std/dynamic_library.zig b/lib/std/dynamic_library.zig index ebfe8fe0ee..f2a7bdc93b 100644 --- a/lib/std/dynamic_library.zig +++ b/lib/std/dynamic_library.zig @@ -8,7 +8,7 @@ const windows = std.os.windows; const system = std.os.system; pub const DynLib = switch (builtin.os.tag) { - .linux => if (!builtin.link_libc or builtin.abi == .musl and builtin.link_mode == .Static) + .linux => if (!builtin.link_libc or builtin.abi == .musl and builtin.link_mode == .static) ElfDynLib else DlDynLib, @@ -56,7 +56,7 @@ const RDebug = extern struct { /// TODO make it possible to reference this same external symbol 2x so we don't need this /// helper function. pub fn get_DYNAMIC() ?[*]elf.Dyn { - return @extern([*]elf.Dyn, .{ .name = "_DYNAMIC", .linkage = .Weak }); + return @extern([*]elf.Dyn, .{ .name = "_DYNAMIC", .linkage = .weak }); } pub fn linkmap_iterator(phdrs: []elf.Phdr) !LinkMap.Iterator { diff --git a/lib/std/enums.zig b/lib/std/enums.zig index 0da3fb1871..40a2566cbe 100644 --- a/lib/std/enums.zig +++ b/lib/std/enums.zig @@ -22,7 +22,7 @@ pub fn EnumFieldStruct(comptime E: type, comptime Data: type, comptime field_def }}; } return @Type(.{ .Struct = .{ - .layout = .Auto, + .layout = .auto, .fields = fields, .decls = &.{}, .is_tuple = false, diff --git a/lib/std/heap.zig b/lib/std/heap.zig index 8f5ee684a7..e49b3c1e5c 100644 --- a/lib/std/heap.zig +++ b/lib/std/heap.zig @@ -303,11 +303,11 @@ pub const HeapAllocator = switch (builtin.os.tag) { const ptr_align = @as(usize, 1) << @as(Allocator.Log2Align, @intCast(log2_ptr_align)); const amt = n + ptr_align - 1 + @sizeOf(usize); - const optional_heap_handle = @atomicLoad(?HeapHandle, &self.heap_handle, .SeqCst); + const optional_heap_handle = @atomicLoad(?HeapHandle, &self.heap_handle, .seq_cst); const heap_handle = optional_heap_handle orelse blk: { const options = if (builtin.single_threaded) os.windows.HEAP_NO_SERIALIZE else 0; const hh = os.windows.kernel32.HeapCreate(options, amt, 0) orelse return null; - const other_hh = @cmpxchgStrong(?HeapHandle, &self.heap_handle, null, hh, .SeqCst, .SeqCst) orelse break :blk hh; + const other_hh = @cmpxchgStrong(?HeapHandle, &self.heap_handle, null, hh, .seq_cst, .seq_cst) orelse break :blk hh; os.windows.HeapDestroy(hh); break :blk other_hh.?; // can't be null because of the cmpxchg }; @@ -482,13 +482,13 @@ pub const FixedBufferAllocator = struct { const self: *FixedBufferAllocator = @ptrCast(@alignCast(ctx)); _ = ra; const ptr_align = @as(usize, 1) << @as(Allocator.Log2Align, @intCast(log2_ptr_align)); - var end_index = @atomicLoad(usize, &self.end_index, .SeqCst); + var end_index = @atomicLoad(usize, &self.end_index, .seq_cst); while (true) { const adjust_off = mem.alignPointerOffset(self.buffer.ptr + end_index, ptr_align) orelse return null; const adjusted_index = end_index + adjust_off; const new_end_index = adjusted_index + n; if (new_end_index > self.buffer.len) return null; - end_index = @cmpxchgWeak(usize, &self.end_index, end_index, new_end_index, .SeqCst, .SeqCst) orelse + end_index = @cmpxchgWeak(usize, &self.end_index, end_index, new_end_index, .seq_cst, .seq_cst) orelse return self.buffer[adjusted_index..new_end_index].ptr; } } diff --git a/lib/std/heap/PageAllocator.zig b/lib/std/heap/PageAllocator.zig index 822a4c2c34..5f8c506f24 100644 --- a/lib/std/heap/PageAllocator.zig +++ b/lib/std/heap/PageAllocator.zig @@ -30,7 +30,7 @@ fn alloc(_: *anyopaque, n: usize, log2_align: u8, ra: usize) ?[*]u8 { return @ptrCast(addr); } - const hint = @atomicLoad(@TypeOf(std.heap.next_mmap_addr_hint), &std.heap.next_mmap_addr_hint, .Unordered); + const hint = @atomicLoad(@TypeOf(std.heap.next_mmap_addr_hint), &std.heap.next_mmap_addr_hint, .unordered); const slice = os.mmap( hint, aligned_len, @@ -41,7 +41,7 @@ fn alloc(_: *anyopaque, n: usize, log2_align: u8, ra: usize) ?[*]u8 { ) catch return null; assert(mem.isAligned(@intFromPtr(slice.ptr), mem.page_size)); const new_hint: [*]align(mem.page_size) u8 = @alignCast(slice.ptr + aligned_len); - _ = @cmpxchgStrong(@TypeOf(std.heap.next_mmap_addr_hint), &std.heap.next_mmap_addr_hint, hint, new_hint, .Monotonic, .Monotonic); + _ = @cmpxchgStrong(@TypeOf(std.heap.next_mmap_addr_hint), &std.heap.next_mmap_addr_hint, hint, new_hint, .monotonic, .monotonic); return slice.ptr; } diff --git a/lib/std/http/Client.zig b/lib/std/http/Client.zig index 10088e7627..339afdb96e 100644 --- a/lib/std/http/Client.zig +++ b/lib/std/http/Client.zig @@ -1642,7 +1642,7 @@ pub fn open( const host = uri.host orelse return error.UriMissingHost; - if (protocol == .tls and @atomicLoad(bool, &client.next_https_rescan_certs, .Acquire)) { + if (protocol == .tls and @atomicLoad(bool, &client.next_https_rescan_certs, .acquire)) { if (disable_tls) unreachable; client.ca_bundle_mutex.lock(); @@ -1650,7 +1650,7 @@ pub fn open( if (client.next_https_rescan_certs) { client.ca_bundle.rescan(client.allocator) catch return error.CertificateBundleLoadFailure; - @atomicStore(bool, &client.next_https_rescan_certs, false, .Release); + @atomicStore(bool, &client.next_https_rescan_certs, false, .release); } } diff --git a/lib/std/io.zig b/lib/std/io.zig index 75693b8b1e..64560c6fe3 100644 --- a/lib/std/io.zig +++ b/lib/std/io.zig @@ -688,7 +688,7 @@ pub fn PollFiles(comptime StreamEnum: type) type { }; } return @Type(.{ .Struct = .{ - .layout = .Auto, + .layout = .auto, .fields = &struct_fields, .decls = &.{}, .is_tuple = false, diff --git a/lib/std/io/Reader.zig b/lib/std/io/Reader.zig index 9569d8d565..a769fe4c04 100644 --- a/lib/std/io/Reader.zig +++ b/lib/std/io/Reader.zig @@ -326,7 +326,7 @@ pub fn isBytes(self: Self, slice: []const u8) anyerror!bool { pub fn readStruct(self: Self, comptime T: type) anyerror!T { // Only extern and packed structs have defined in-memory layout. - comptime assert(@typeInfo(T).Struct.layout != .Auto); + comptime assert(@typeInfo(T).Struct.layout != .auto); var res: [1]T = undefined; try self.readNoEof(mem.sliceAsBytes(res[0..])); return res[0]; diff --git a/lib/std/io/Writer.zig b/lib/std/io/Writer.zig index 95a7bd5d6a..dfcae48b1e 100644 --- a/lib/std/io/Writer.zig +++ b/lib/std/io/Writer.zig @@ -55,7 +55,7 @@ pub inline fn writeInt(self: Self, comptime T: type, value: T, endian: std.built pub fn writeStruct(self: Self, value: anytype) anyerror!void { // Only extern and packed structs have defined in-memory layout. - comptime assert(@typeInfo(@TypeOf(value)).Struct.layout != .Auto); + comptime assert(@typeInfo(@TypeOf(value)).Struct.layout != .auto); return self.writeAll(mem.asBytes(&value)); } diff --git a/lib/std/mem.zig b/lib/std/mem.zig index fc0c226894..b3e3cce593 100644 --- a/lib/std/mem.zig +++ b/lib/std/mem.zig @@ -238,7 +238,7 @@ pub fn zeroes(comptime T: type) T { }, .Struct => |struct_info| { if (@sizeOf(T) == 0) return undefined; - if (struct_info.layout == .Extern) { + if (struct_info.layout == .@"extern") { var item: T = undefined; @memset(asBytes(&item), 0); return item; @@ -284,7 +284,7 @@ pub fn zeroes(comptime T: type) T { return @splat(zeroes(info.child)); }, .Union => |info| { - if (info.layout == .Extern) { + if (info.layout == .@"extern") { var item: T = undefined; @memset(asBytes(&item), 0); return item; @@ -429,7 +429,7 @@ pub fn zeroInit(comptime T: type, init: anytype) T { } } - var value: T = if (struct_info.layout == .Extern) zeroes(T) else undefined; + var value: T = if (struct_info.layout == .@"extern") zeroes(T) else undefined; inline for (struct_info.fields, 0..) |field, i| { if (field.is_comptime) { diff --git a/lib/std/meta.zig b/lib/std/meta.zig index 66388aebf6..f7b418d71d 100644 --- a/lib/std/meta.zig +++ b/lib/std/meta.zig @@ -269,12 +269,12 @@ test containerLayout { a: u8, }; - try testing.expect(containerLayout(S1) == .Auto); - try testing.expect(containerLayout(S2) == .Packed); - try testing.expect(containerLayout(S3) == .Extern); - try testing.expect(containerLayout(U1) == .Auto); - try testing.expect(containerLayout(U2) == .Packed); - try testing.expect(containerLayout(U3) == .Extern); + try testing.expect(containerLayout(S1) == .auto); + try testing.expect(containerLayout(S2) == .@"packed"); + try testing.expect(containerLayout(S3) == .@"extern"); + try testing.expect(containerLayout(U1) == .auto); + try testing.expect(containerLayout(U2) == .@"packed"); + try testing.expect(containerLayout(U3) == .@"extern"); } /// Instead of this function, prefer to use e.g. `@typeInfo(foo).Struct.decls` @@ -1025,7 +1025,7 @@ fn CreateUniqueTuple(comptime N: comptime_int, comptime types: [N]type) type { return @Type(.{ .Struct = .{ .is_tuple = true, - .layout = .Auto, + .layout = .auto, .decls = &.{}, .fields = &tuple_fields, }, diff --git a/lib/std/meta/trailer_flags.zig b/lib/std/meta/trailer_flags.zig index ab046f9a40..396eaa8f71 100644 --- a/lib/std/meta/trailer_flags.zig +++ b/lib/std/meta/trailer_flags.zig @@ -32,7 +32,7 @@ pub fn TrailerFlags(comptime Fields: type) type { } break :blk @Type(.{ .Struct = .{ - .layout = .Auto, + .layout = .auto, .fields = &fields, .decls = &.{}, .is_tuple = false, diff --git a/lib/std/multi_array_list.zig b/lib/std/multi_array_list.zig index 8dfaca34ba..d7327f8bee 100644 --- a/lib/std/multi_array_list.zig +++ b/lib/std/multi_array_list.zig @@ -558,7 +558,7 @@ pub fn MultiArrayList(comptime T: type) type { .alignment = fields[i].alignment, }; break :entry @Type(.{ .Struct = .{ - .layout = .Extern, + .layout = .@"extern", .fields = &entry_fields, .decls = &.{}, .is_tuple = false, diff --git a/lib/std/once.zig b/lib/std/once.zig index f012e017dd..2f6ee709e2 100644 --- a/lib/std/once.zig +++ b/lib/std/once.zig @@ -17,7 +17,7 @@ pub fn Once(comptime f: fn () void) type { /// first time. /// The invocations are thread-safe. pub fn call(self: *@This()) void { - if (@atomicLoad(bool, &self.done, .Acquire)) + if (@atomicLoad(bool, &self.done, .acquire)) return; return self.callSlow(); @@ -32,7 +32,7 @@ pub fn Once(comptime f: fn () void) type { // The first thread to acquire the mutex gets to run the initializer if (!self.done) { f(); - @atomicStore(bool, &self.done, true, .Release); + @atomicStore(bool, &self.done, true, .release); } } }; diff --git a/lib/std/os.zig b/lib/std/os.zig index 541d70e3fc..417e571145 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -436,7 +436,7 @@ fn fchmodat1(dirfd: fd_t, path: []const u8, mode: mode_t, flags: u32) FChmodAtEr fn fchmodat2(dirfd: fd_t, path: []const u8, mode: mode_t, flags: u32) FChmodAtError!void { const path_c = try toPosixPath(path); const use_fchmodat2 = (builtin.os.isAtLeast(.linux, .{ .major = 6, .minor = 6, .patch = 0 }) orelse false) and - has_fchmodat2_syscall.load(.Monotonic); + has_fchmodat2_syscall.load(.monotonic); while (use_fchmodat2) { // Later on this should be changed to `system.fchmodat2` // when the musl/glibc add a wrapper. @@ -458,7 +458,7 @@ fn fchmodat2(dirfd: fd_t, path: []const u8, mode: mode_t, flags: u32) FChmodAtEr .ROFS => return error.ReadOnlyFileSystem, .NOSYS => { // Use fallback. - has_fchmodat2_syscall.store(false, .Monotonic); + has_fchmodat2_syscall.store(false, .monotonic); break; }, else => |err| return unexpectedErrno(err), @@ -729,7 +729,7 @@ pub fn abort() noreturn { const global = struct { var abort_entered: bool = false; }; - while (@cmpxchgWeak(bool, &global.abort_entered, false, true, .SeqCst, .SeqCst)) |_| {} + while (@cmpxchgWeak(bool, &global.abort_entered, false, true, .seq_cst, .seq_cst)) |_| {} } // Install default handler so that the tkill below will terminate. @@ -6809,7 +6809,7 @@ pub fn copy_file_range(fd_in: fd_t, off_in: u64, fd_out: fd_t, off_out: u64, len if ((comptime builtin.os.isAtLeast(.freebsd, .{ .major = 13, .minor = 0, .patch = 0 }) orelse false) or ((comptime builtin.os.isAtLeast(.linux, .{ .major = 4, .minor = 5, .patch = 0 }) orelse false and std.c.versionCheck(.{ .major = 2, .minor = 27, .patch = 0 })) and - has_copy_file_range_syscall.load(.Monotonic))) + has_copy_file_range_syscall.load(.monotonic))) { var off_in_copy: i64 = @bitCast(off_in); var off_out_copy: i64 = @bitCast(off_out); @@ -6844,7 +6844,7 @@ pub fn copy_file_range(fd_in: fd_t, off_in: u64, fd_out: fd_t, off_out: u64, len .TXTBSY => return error.SwapFile, .XDEV => break, // support for cross-filesystem copy added in Linux 5.3, use fallback .NOSYS => { // syscall added in Linux 4.5, use fallback - has_copy_file_range_syscall.store(false, .Monotonic); + has_copy_file_range_syscall.store(false, .monotonic); break; }, else => |err| return unexpectedErrno(err), diff --git a/lib/std/os/linux.zig b/lib/std/os/linux.zig index 6ec92cce4e..9e05cced8a 100644 --- a/lib/std/os/linux.zig +++ b/lib/std/os/linux.zig @@ -394,7 +394,7 @@ const extern_getauxval = switch (builtin.zig_backend) { comptime { if (extern_getauxval) { - @export(getauxvalImpl, .{ .name = "getauxval", .linkage = .Weak }); + @export(getauxvalImpl, .{ .name = "getauxval", .linkage = .weak }); } } @@ -1334,7 +1334,7 @@ const vdso_clock_gettime_ty = *align(1) const fn (i32, *timespec) callconv(.C) u pub fn clock_gettime(clk_id: i32, tp: *timespec) usize { if (@hasDecl(VDSO, "CGT_SYM")) { - const ptr = @atomicLoad(?*const anyopaque, &vdso_clock_gettime, .Unordered); + const ptr = @atomicLoad(?*const anyopaque, &vdso_clock_gettime, .unordered); if (ptr) |fn_ptr| { const f = @as(vdso_clock_gettime_ty, @ptrCast(fn_ptr)); const rc = f(clk_id, tp); @@ -1351,7 +1351,7 @@ fn init_vdso_clock_gettime(clk: i32, ts: *timespec) callconv(.C) usize { const ptr = @as(?*const anyopaque, @ptrFromInt(vdso.lookup(VDSO.CGT_VER, VDSO.CGT_SYM))); // Note that we may not have a VDSO at all, update the stub address anyway // so that clock_gettime will fall back on the good old (and slow) syscall - @atomicStore(?*const anyopaque, &vdso_clock_gettime, ptr, .Monotonic); + @atomicStore(?*const anyopaque, &vdso_clock_gettime, ptr, .monotonic); // Call into the VDSO if available if (ptr) |fn_ptr| { const f = @as(vdso_clock_gettime_ty, @ptrCast(fn_ptr)); diff --git a/lib/std/os/linux/IoUring.zig b/lib/std/os/linux/IoUring.zig index cd584d1ae9..ecdc9ae138 100644 --- a/lib/std/os/linux/IoUring.zig +++ b/lib/std/os/linux/IoUring.zig @@ -133,7 +133,7 @@ pub fn deinit(self: *IoUring) void { /// alternative. In Zig, we have first-class error handling... so let's use it. /// Matches the implementation of io_uring_get_sqe() in liburing. pub fn get_sqe(self: *IoUring) !*linux.io_uring_sqe { - const head = @atomicLoad(u32, self.sq.head, .Acquire); + const head = @atomicLoad(u32, self.sq.head, .acquire); // Remember that these head and tail offsets wrap around every four billion operations. // We must therefore use wrapping addition and subtraction to avoid a runtime crash. const next = self.sq.sqe_tail +% 1; @@ -222,7 +222,7 @@ pub fn flush_sq(self: *IoUring) u32 { self.sq.sqe_head +%= 1; } // Ensure that the kernel can actually see the SQE updates when it sees the tail update. - @atomicStore(u32, self.sq.tail, tail, .Release); + @atomicStore(u32, self.sq.tail, tail, .release); } return self.sq_ready(); } @@ -234,7 +234,7 @@ pub fn flush_sq(self: *IoUring) u32 { pub fn sq_ring_needs_enter(self: *IoUring, flags: *u32) bool { assert(flags.* == 0); if ((self.flags & linux.IORING_SETUP_SQPOLL) == 0) return true; - if ((@atomicLoad(u32, self.sq.flags, .Unordered) & linux.IORING_SQ_NEED_WAKEUP) != 0) { + if ((@atomicLoad(u32, self.sq.flags, .unordered) & linux.IORING_SQ_NEED_WAKEUP) != 0) { flags.* |= linux.IORING_ENTER_SQ_WAKEUP; return true; } @@ -248,14 +248,14 @@ pub fn sq_ring_needs_enter(self: *IoUring, flags: *u32) bool { pub fn sq_ready(self: *IoUring) u32 { // Always use the shared ring state (i.e. head and not sqe_head) to avoid going out of sync, // see https://github.com/axboe/liburing/issues/92. - return self.sq.sqe_tail -% @atomicLoad(u32, self.sq.head, .Acquire); + return self.sq.sqe_tail -% @atomicLoad(u32, self.sq.head, .acquire); } /// Returns the number of CQEs in the completion queue, i.e. its length. /// These are CQEs that the application is yet to consume. /// Matches the implementation of io_uring_cq_ready in liburing. pub fn cq_ready(self: *IoUring) u32 { - return @atomicLoad(u32, self.cq.tail, .Acquire) -% self.cq.head.*; + return @atomicLoad(u32, self.cq.tail, .acquire) -% self.cq.head.*; } /// Copies as many CQEs as are ready, and that can fit into the destination `cqes` slice. @@ -313,7 +313,7 @@ pub fn copy_cqe(ring: *IoUring) !linux.io_uring_cqe { /// Matches the implementation of cq_ring_needs_flush() in liburing. pub fn cq_ring_needs_flush(self: *IoUring) bool { - return (@atomicLoad(u32, self.sq.flags, .Unordered) & linux.IORING_SQ_CQ_OVERFLOW) != 0; + return (@atomicLoad(u32, self.sq.flags, .unordered) & linux.IORING_SQ_CQ_OVERFLOW) != 0; } /// For advanced use cases only that implement custom completion queue methods. @@ -331,7 +331,7 @@ pub fn cqe_seen(self: *IoUring, cqe: *linux.io_uring_cqe) void { pub fn cq_advance(self: *IoUring, count: u32) void { if (count > 0) { // Ensure the kernel only sees the new head value after the CQEs have been read. - @atomicStore(u32, self.cq.head, self.cq.head.* +% count, .Release); + @atomicStore(u32, self.cq.head, self.cq.head.* +% count, .release); } } diff --git a/lib/std/os/test.zig b/lib/std/os/test.zig index a006e6f1bc..d9f05d94ef 100644 --- a/lib/std/os/test.zig +++ b/lib/std/os/test.zig @@ -425,7 +425,7 @@ fn start1() u8 { } fn start2(ctx: *i32) u8 { - _ = @atomicRmw(i32, ctx, AtomicRmwOp.Add, 1, AtomicOrder.SeqCst); + _ = @atomicRmw(i32, ctx, AtomicRmwOp.Add, 1, AtomicOrder.seq_cst); return 0; } diff --git a/lib/std/start.zig b/lib/std/start.zig index 9e9872fe93..49695a3a25 100644 --- a/lib/std/start.zig +++ b/lib/std/start.zig @@ -50,7 +50,7 @@ comptime { } } } else { - if (builtin.output_mode == .Lib and builtin.link_mode == .Dynamic) { + if (builtin.output_mode == .Lib and builtin.link_mode == .dynamic) { if (native_os == .windows and !@hasDecl(root, "_DllMainCRTStartup")) { @export(_DllMainCRTStartup, .{ .name = "_DllMainCRTStartup" }); } diff --git a/lib/std/zig.zig b/lib/std/zig.zig index c887030ae6..ce446e59b6 100644 --- a/lib/std/zig.zig +++ b/lib/std/zig.zig @@ -155,9 +155,9 @@ pub fn binNameAlloc(allocator: Allocator, options: BinNameOptions) error{OutOfMe .coff => switch (options.output_mode) { .Exe => return std.fmt.allocPrint(allocator, "{s}{s}", .{ root_name, t.exeFileExt() }), .Lib => { - const suffix = switch (options.link_mode orelse .Static) { - .Static => ".lib", - .Dynamic => ".dll", + const suffix = switch (options.link_mode orelse .static) { + .static => ".lib", + .dynamic => ".dll", }; return std.fmt.allocPrint(allocator, "{s}{s}", .{ root_name, suffix }); }, @@ -166,11 +166,11 @@ pub fn binNameAlloc(allocator: Allocator, options: BinNameOptions) error{OutOfMe .elf => switch (options.output_mode) { .Exe => return allocator.dupe(u8, root_name), .Lib => { - switch (options.link_mode orelse .Static) { - .Static => return std.fmt.allocPrint(allocator, "{s}{s}.a", .{ + switch (options.link_mode orelse .static) { + .static => return std.fmt.allocPrint(allocator, "{s}{s}.a", .{ t.libPrefix(), root_name, }), - .Dynamic => { + .dynamic => { if (options.version) |ver| { return std.fmt.allocPrint(allocator, "{s}{s}.so.{d}.{d}.{d}", .{ t.libPrefix(), root_name, ver.major, ver.minor, ver.patch, @@ -188,11 +188,11 @@ pub fn binNameAlloc(allocator: Allocator, options: BinNameOptions) error{OutOfMe .macho => switch (options.output_mode) { .Exe => return allocator.dupe(u8, root_name), .Lib => { - switch (options.link_mode orelse .Static) { - .Static => return std.fmt.allocPrint(allocator, "{s}{s}.a", .{ + switch (options.link_mode orelse .static) { + .static => return std.fmt.allocPrint(allocator, "{s}{s}.a", .{ t.libPrefix(), root_name, }), - .Dynamic => { + .dynamic => { if (options.version) |ver| { return std.fmt.allocPrint(allocator, "{s}{s}.{d}.{d}.{d}.dylib", .{ t.libPrefix(), root_name, ver.major, ver.minor, ver.patch, @@ -210,11 +210,11 @@ pub fn binNameAlloc(allocator: Allocator, options: BinNameOptions) error{OutOfMe .wasm => switch (options.output_mode) { .Exe => return std.fmt.allocPrint(allocator, "{s}{s}", .{ root_name, t.exeFileExt() }), .Lib => { - switch (options.link_mode orelse .Static) { - .Static => return std.fmt.allocPrint(allocator, "{s}{s}.a", .{ + switch (options.link_mode orelse .static) { + .static => return std.fmt.allocPrint(allocator, "{s}{s}.a", .{ t.libPrefix(), root_name, }), - .Dynamic => return std.fmt.allocPrint(allocator, "{s}.wasm", .{root_name}), + .dynamic => return std.fmt.allocPrint(allocator, "{s}.wasm", .{root_name}), } }, .Obj => return std.fmt.allocPrint(allocator, "{s}.o", .{root_name}), diff --git a/lib/std/zig/AstGen.zig b/lib/std/zig/AstGen.zig index 8535b16806..e20925adbc 100644 --- a/lib/std/zig/AstGen.zig +++ b/lib/std/zig/AstGen.zig @@ -175,7 +175,7 @@ pub fn generate(gpa: Allocator, tree: Ast) Allocator.Error!Zir { &gen_scope.base, 0, tree.containerDeclRoot(), - .Auto, + .auto, 0, )) |struct_decl_ref| { assert(struct_decl_ref.toIndex().? == .main_struct_inst); @@ -4907,7 +4907,7 @@ fn structDeclInner( var backing_int_body_len: usize = 0; const backing_int_ref: Zir.Inst.Ref = blk: { if (backing_int_node != 0) { - if (layout != .Packed) { + if (layout != .@"packed") { return astgen.failNode(backing_int_node, "non-packed struct does not support backing integer type", .{}); } else { const backing_int_ref = try typeExpr(&block_scope, &namespace.base, backing_int_node); @@ -4958,9 +4958,9 @@ fn structDeclInner( } else false; if (is_tuple) switch (layout) { - .Auto => {}, - .Extern => return astgen.failNode(node, "extern tuples are not supported", .{}), - .Packed => return astgen.failNode(node, "packed tuples are not supported", .{}), + .auto => {}, + .@"extern" => return astgen.failNode(node, "extern tuples are not supported", .{}), + .@"packed" => return astgen.failNode(node, "packed tuples are not supported", .{}), }; if (is_tuple) for (container_decl.ast.members) |member_node| { @@ -5055,9 +5055,9 @@ fn structDeclInner( if (is_comptime) { switch (layout) { - .Packed => return astgen.failTok(member.comptime_token.?, "packed struct fields cannot be marked comptime", .{}), - .Extern => return astgen.failTok(member.comptime_token.?, "extern struct fields cannot be marked comptime", .{}), - .Auto => any_comptime_fields = true, + .@"packed" => return astgen.failTok(member.comptime_token.?, "packed struct fields cannot be marked comptime", .{}), + .@"extern" => return astgen.failTok(member.comptime_token.?, "extern struct fields cannot be marked comptime", .{}), + .auto => any_comptime_fields = true, } } else { known_non_opv = known_non_opv or @@ -5082,7 +5082,7 @@ fn structDeclInner( } if (have_align) { - if (layout == .Packed) { + if (layout == .@"packed") { try astgen.appendErrorNode(member.ast.align_expr, "unable to override alignment of packed struct fields", .{}); } any_aligned_fields = true; @@ -5229,12 +5229,11 @@ fn unionDeclInner( const decl_count = try astgen.scanDecls(&namespace, members); const field_count: u32 = @intCast(members.len - decl_count); - if (layout != .Auto and (auto_enum_tok != null or arg_node != 0)) { - const layout_str = if (layout == .Extern) "extern" else "packed"; + if (layout != .auto and (auto_enum_tok != null or arg_node != 0)) { if (arg_node != 0) { - return astgen.failNode(arg_node, "{s} union does not support enum tag type", .{layout_str}); + return astgen.failNode(arg_node, "{s} union does not support enum tag type", .{@tagName(layout)}); } else { - return astgen.failTok(auto_enum_tok.?, "{s} union does not support enum tag type", .{layout_str}); + return astgen.failTok(auto_enum_tok.?, "{s} union does not support enum tag type", .{@tagName(layout)}); } } @@ -5429,21 +5428,21 @@ fn containerDecl( switch (token_tags[container_decl.ast.main_token]) { .keyword_struct => { - const layout = if (container_decl.layout_token) |t| switch (token_tags[t]) { - .keyword_packed => std.builtin.Type.ContainerLayout.Packed, - .keyword_extern => std.builtin.Type.ContainerLayout.Extern, + const layout: std.builtin.Type.ContainerLayout = if (container_decl.layout_token) |t| switch (token_tags[t]) { + .keyword_packed => .@"packed", + .keyword_extern => .@"extern", else => unreachable, - } else std.builtin.Type.ContainerLayout.Auto; + } else .auto; const result = try structDeclInner(gz, scope, node, container_decl, layout, container_decl.ast.arg); return rvalue(gz, ri, result, node); }, .keyword_union => { - const layout = if (container_decl.layout_token) |t| switch (token_tags[t]) { - .keyword_packed => std.builtin.Type.ContainerLayout.Packed, - .keyword_extern => std.builtin.Type.ContainerLayout.Extern, + const layout: std.builtin.Type.ContainerLayout = if (container_decl.layout_token) |t| switch (token_tags[t]) { + .keyword_packed => .@"packed", + .keyword_extern => .@"extern", else => unreachable, - } else std.builtin.Type.ContainerLayout.Auto; + } else .auto; const result = try unionDeclInner(gz, scope, node, container_decl.ast.members, layout, container_decl.ast.arg, container_decl.ast.enum_token); return rvalue(gz, ri, result, node); @@ -8588,7 +8587,7 @@ fn numberLiteral(gz: *GenZir, ri: ResultInfo, node: Ast.Node.Index, source_node: .positive => unsigned_float_number, }; // If the value fits into a f64 without losing any precision, store it that way. - @setFloatMode(.Strict); + @setFloatMode(.strict); const smaller_float: f64 = @floatCast(float_number); const bigger_again: f128 = smaller_float; if (bigger_again == float_number) { diff --git a/lib/std/zig/Server.zig b/lib/std/zig/Server.zig index 915450c50a..d112adf45f 100644 --- a/lib/std/zig/Server.zig +++ b/lib/std/zig/Server.zig @@ -250,18 +250,18 @@ fn bswap(x: anytype) @TypeOf(x) { .Enum => return @as(T, @enumFromInt(@byteSwap(@intFromEnum(x)))), .Int => return @byteSwap(x), .Struct => |info| switch (info.layout) { - .Extern => { + .@"extern" => { var result: T = undefined; inline for (info.fields) |field| { @field(result, field.name) = bswap(@field(x, field.name)); } return result; }, - .Packed => { + .@"packed" => { const I = info.backing_integer.?; return @as(T, @bitCast(@byteSwap(@as(I, @bitCast(x))))); }, - .Auto => @compileError("auto layout struct"), + .auto => @compileError("auto layout struct"), }, else => @compileError("bswap on type " ++ @typeName(T)), } diff --git a/src/Compilation.zig b/src/Compilation.zig index 13fb672042..0fdfb6038f 100644 --- a/src/Compilation.zig +++ b/src/Compilation.zig @@ -1201,7 +1201,7 @@ pub fn create(gpa: Allocator, arena: Allocator, options: CreateOptions) !*Compil const output_mode = options.config.output_mode; const is_dyn_lib = switch (output_mode) { .Obj, .Exe => false, - .Lib => options.config.link_mode == .Dynamic, + .Lib => options.config.link_mode == .dynamic, }; const is_exe_or_dyn_lib = switch (output_mode) { .Obj => false, @@ -1806,8 +1806,8 @@ pub fn create(gpa: Allocator, arena: Allocator, options: CreateOptions) !*Compil .{ .musl_crt_file = .scrt1_o }, .{ .musl_crt_file = .rcrt1_o }, switch (comp.config.link_mode) { - .Static => .{ .musl_crt_file = .libc_a }, - .Dynamic => .{ .musl_crt_file = .libc_so }, + .static => .{ .musl_crt_file = .libc_a }, + .dynamic => .{ .musl_crt_file = .libc_so }, }, }); } @@ -6087,7 +6087,7 @@ pub fn get_libc_crt_file(comp: *Compilation, arena: Allocator, basename: []const fn wantBuildLibCFromSource(comp: Compilation) bool { const is_exe_or_dyn_lib = switch (comp.config.output_mode) { .Obj => false, - .Lib => comp.config.link_mode == .Dynamic, + .Lib => comp.config.link_mode == .dynamic, .Exe => true, }; const ofmt = comp.root_mod.resolved_target.result.ofmt; @@ -6116,7 +6116,7 @@ fn wantBuildMinGWFromSource(comp: Compilation) bool { fn wantBuildLibUnwindFromSource(comp: *Compilation) bool { const is_exe_or_dyn_lib = switch (comp.config.output_mode) { .Obj => false, - .Lib => comp.config.link_mode == .Dynamic, + .Lib => comp.config.link_mode == .dynamic, .Exe => true, }; const ofmt = comp.root_mod.resolved_target.result.ofmt; @@ -6310,7 +6310,7 @@ fn buildOutputFromZig( const config = try Config.resolve(.{ .output_mode = output_mode, - .link_mode = .Static, + .link_mode = .static, .resolved_target = comp.root_mod.resolved_target, .is_test = false, .have_zcu = true, diff --git a/src/Compilation/Config.zig b/src/Compilation/Config.zig index 2f6422b28a..d692fe5623 100644 --- a/src/Compilation/Config.zig +++ b/src/Compilation/Config.zig @@ -348,26 +348,26 @@ pub fn resolve(options: Options) ResolveError!Config { const link_mode = b: { const explicitly_exe_or_dyn_lib = switch (options.output_mode) { .Obj => false, - .Lib => (options.link_mode orelse .Static) == .Dynamic, + .Lib => (options.link_mode orelse .static) == .dynamic, .Exe => true, }; if (target_util.cannotDynamicLink(target)) { - if (options.link_mode == .Dynamic) return error.TargetCannotDynamicLink; - break :b .Static; + if (options.link_mode == .dynamic) return error.TargetCannotDynamicLink; + break :b .static; } if (explicitly_exe_or_dyn_lib and link_libc and (target.isGnuLibC() or target_util.osRequiresLibC(target))) { - if (options.link_mode == .Static) return error.LibCRequiresDynamicLinking; - break :b .Dynamic; + if (options.link_mode == .static) return error.LibCRequiresDynamicLinking; + break :b .dynamic; } // When creating a executable that links to system libraries, we // require dynamic linking, but we must not link static libraries // or object files dynamically! if (options.any_dyn_libs and options.output_mode == .Exe) { - if (options.link_mode == .Static) return error.SharedLibrariesRequireDynamicLinking; - break :b .Dynamic; + if (options.link_mode == .static) return error.SharedLibrariesRequireDynamicLinking; + break :b .dynamic; } if (options.link_mode) |link_mode| break :b link_mode; @@ -377,16 +377,16 @@ pub fn resolve(options: Options) ResolveError!Config { { // If targeting the system's native ABI and the system's libc is // musl, link dynamically by default. - break :b .Dynamic; + break :b .dynamic; } // Static is generally a better default. Fight me. - break :b .Static; + break :b .static; }; const import_memory = options.import_memory orelse (options.output_mode == .Obj); const export_memory = b: { - if (link_mode == .Dynamic) { + if (link_mode == .dynamic) { if (options.export_memory == true) return error.ExportMemoryAndDynamicIncompatible; break :b false; } @@ -397,7 +397,7 @@ pub fn resolve(options: Options) ResolveError!Config { const pie: bool = b: { switch (options.output_mode) { .Obj, .Exe => {}, - .Lib => if (link_mode == .Dynamic) { + .Lib => if (link_mode == .dynamic) { if (options.pie == true) return error.DynamicLibraryPrecludesPie; break :b false; }, @@ -467,7 +467,7 @@ pub fn resolve(options: Options) ResolveError!Config { if (rdynamic) break :b true; break :b switch (options.output_mode) { .Obj, .Exe => false, - .Lib => link_mode == .Dynamic, + .Lib => link_mode == .dynamic, }; }; diff --git a/src/InternPool.zig b/src/InternPool.zig index 6a82abedce..64da7fc043 100644 --- a/src/InternPool.zig +++ b/src/InternPool.zig @@ -2025,15 +2025,15 @@ pub const LoadedStructType = struct { /// complicated logic. pub fn knownNonOpv(s: @This(), ip: *InternPool) bool { return switch (s.layout) { - .Packed => false, - .Auto, .Extern => s.flagsPtr(ip).known_non_opv, + .@"packed" => false, + .auto, .@"extern" => s.flagsPtr(ip).known_non_opv, }; } /// The returned pointer expires with any addition to the `InternPool`. /// Asserts the struct is not packed. pub fn flagsPtr(self: @This(), ip: *const InternPool) *Tag.TypeStruct.Flags { - assert(self.layout != .Packed); + assert(self.layout != .@"packed"); const flags_field_index = std.meta.fieldIndex(Tag.TypeStruct, "flags").?; return @ptrCast(&ip.extra.items[self.extra_index + flags_field_index]); } @@ -2041,13 +2041,13 @@ pub const LoadedStructType = struct { /// The returned pointer expires with any addition to the `InternPool`. /// Asserts that the struct is packed. pub fn packedFlagsPtr(self: @This(), ip: *const InternPool) *Tag.TypeStructPacked.Flags { - assert(self.layout == .Packed); + assert(self.layout == .@"packed"); const flags_field_index = std.meta.fieldIndex(Tag.TypeStructPacked, "flags").?; return @ptrCast(&ip.extra.items[self.extra_index + flags_field_index]); } pub fn assumeRuntimeBitsIfFieldTypesWip(s: @This(), ip: *InternPool) bool { - if (s.layout == .Packed) return false; + if (s.layout == .@"packed") return false; const flags_ptr = s.flagsPtr(ip); if (flags_ptr.field_types_wip) { flags_ptr.assumed_runtime_bits = true; @@ -2057,7 +2057,7 @@ pub const LoadedStructType = struct { } pub fn setTypesWip(s: @This(), ip: *InternPool) bool { - if (s.layout == .Packed) return false; + if (s.layout == .@"packed") return false; const flags_ptr = s.flagsPtr(ip); if (flags_ptr.field_types_wip) return true; flags_ptr.field_types_wip = true; @@ -2065,12 +2065,12 @@ pub const LoadedStructType = struct { } pub fn clearTypesWip(s: @This(), ip: *InternPool) void { - if (s.layout == .Packed) return; + if (s.layout == .@"packed") return; s.flagsPtr(ip).field_types_wip = false; } pub fn setLayoutWip(s: @This(), ip: *InternPool) bool { - if (s.layout == .Packed) return false; + if (s.layout == .@"packed") return false; const flags_ptr = s.flagsPtr(ip); if (flags_ptr.layout_wip) return true; flags_ptr.layout_wip = true; @@ -2078,12 +2078,12 @@ pub const LoadedStructType = struct { } pub fn clearLayoutWip(s: @This(), ip: *InternPool) void { - if (s.layout == .Packed) return; + if (s.layout == .@"packed") return; s.flagsPtr(ip).layout_wip = false; } pub fn setAlignmentWip(s: @This(), ip: *InternPool) bool { - if (s.layout == .Packed) return false; + if (s.layout == .@"packed") return false; const flags_ptr = s.flagsPtr(ip); if (flags_ptr.alignment_wip) return true; flags_ptr.alignment_wip = true; @@ -2091,19 +2091,19 @@ pub const LoadedStructType = struct { } pub fn clearAlignmentWip(s: @This(), ip: *InternPool) void { - if (s.layout == .Packed) return; + if (s.layout == .@"packed") return; s.flagsPtr(ip).alignment_wip = false; } pub fn setInitsWip(s: @This(), ip: *InternPool) bool { switch (s.layout) { - .Packed => { + .@"packed" => { const flag = &s.packedFlagsPtr(ip).field_inits_wip; if (flag.*) return true; flag.* = true; return false; }, - .Auto, .Extern => { + .auto, .@"extern" => { const flag = &s.flagsPtr(ip).field_inits_wip; if (flag.*) return true; flag.* = true; @@ -2114,13 +2114,13 @@ pub const LoadedStructType = struct { pub fn clearInitsWip(s: @This(), ip: *InternPool) void { switch (s.layout) { - .Packed => s.packedFlagsPtr(ip).field_inits_wip = false, - .Auto, .Extern => s.flagsPtr(ip).field_inits_wip = false, + .@"packed" => s.packedFlagsPtr(ip).field_inits_wip = false, + .auto, .@"extern" => s.flagsPtr(ip).field_inits_wip = false, } } pub fn setFullyResolved(s: @This(), ip: *InternPool) bool { - if (s.layout == .Packed) return true; + if (s.layout == .@"packed") return true; const flags_ptr = s.flagsPtr(ip); if (flags_ptr.fully_resolved) return true; flags_ptr.fully_resolved = true; @@ -2134,7 +2134,7 @@ pub const LoadedStructType = struct { /// The returned pointer expires with any addition to the `InternPool`. /// Asserts the struct is not packed. pub fn size(self: @This(), ip: *InternPool) *u32 { - assert(self.layout != .Packed); + assert(self.layout != .@"packed"); const size_field_index = std.meta.fieldIndex(Tag.TypeStruct, "size").?; return @ptrCast(&ip.extra.items[self.extra_index + size_field_index]); } @@ -2144,14 +2144,14 @@ pub const LoadedStructType = struct { /// set to `none` until the layout is resolved. /// Asserts the struct is packed. pub fn backingIntType(s: @This(), ip: *const InternPool) *Index { - assert(s.layout == .Packed); + assert(s.layout == .@"packed"); const field_index = std.meta.fieldIndex(Tag.TypeStructPacked, "backing_int_ty").?; return @ptrCast(&ip.extra.items[s.extra_index + field_index]); } /// Asserts the struct is not packed. pub fn setZirIndex(s: @This(), ip: *InternPool, new_zir_index: TrackedInst.Index.Optional) void { - assert(s.layout != .Packed); + assert(s.layout != .@"packed"); const field_index = std.meta.fieldIndex(Tag.TypeStruct, "zir_index").?; ip.extra.items[s.extra_index + field_index] = @intFromEnum(new_zir_index); } @@ -2163,31 +2163,31 @@ pub const LoadedStructType = struct { pub fn haveFieldInits(s: @This(), ip: *const InternPool) bool { return switch (s.layout) { - .Packed => s.packedFlagsPtr(ip).inits_resolved, - .Auto, .Extern => s.flagsPtr(ip).inits_resolved, + .@"packed" => s.packedFlagsPtr(ip).inits_resolved, + .auto, .@"extern" => s.flagsPtr(ip).inits_resolved, }; } pub fn setHaveFieldInits(s: @This(), ip: *InternPool) void { switch (s.layout) { - .Packed => s.packedFlagsPtr(ip).inits_resolved = true, - .Auto, .Extern => s.flagsPtr(ip).inits_resolved = true, + .@"packed" => s.packedFlagsPtr(ip).inits_resolved = true, + .auto, .@"extern" => s.flagsPtr(ip).inits_resolved = true, } } pub fn haveLayout(s: @This(), ip: *InternPool) bool { return switch (s.layout) { - .Packed => s.backingIntType(ip).* != .none, - .Auto, .Extern => s.flagsPtr(ip).layout_resolved, + .@"packed" => s.backingIntType(ip).* != .none, + .auto, .@"extern" => s.flagsPtr(ip).layout_resolved, }; } pub fn isTuple(s: @This(), ip: *InternPool) bool { - return s.layout != .Packed and s.flagsPtr(ip).is_tuple; + return s.layout != .@"packed" and s.flagsPtr(ip).is_tuple; } pub fn hasReorderedFields(s: @This()) bool { - return s.layout == .Auto; + return s.layout == .auto; } pub const RuntimeOrderIterator = struct { @@ -2221,7 +2221,7 @@ pub const LoadedStructType = struct { /// May or may not include zero-bit fields. /// Asserts the struct is not packed. pub fn iterateRuntimeOrder(s: @This(), ip: *InternPool) RuntimeOrderIterator { - assert(s.layout != .Packed); + assert(s.layout != .@"packed"); return .{ .ip = ip, .field_index = 0, @@ -2239,7 +2239,7 @@ pub fn loadStructType(ip: *const InternPool, index: Index) LoadedStructType { .decl = .none, .namespace = .none, .zir_index = .none, - .layout = .Auto, + .layout = .auto, .field_names = .{ .start = 0, .len = 0 }, .field_types = .{ .start = 0, .len = 0 }, .field_inits = .{ .start = 0, .len = 0 }, @@ -2314,7 +2314,7 @@ pub fn loadStructType(ip: *const InternPool, index: Index) LoadedStructType { .decl = extra.data.decl.toOptional(), .namespace = namespace, .zir_index = extra.data.zir_index.toOptional(), - .layout = if (extra.data.flags.is_extern) .Extern else .Auto, + .layout = if (extra.data.flags.is_extern) .@"extern" else .auto, .field_names = names, .field_types = field_types, .field_inits = inits, @@ -2367,7 +2367,7 @@ pub fn loadStructType(ip: *const InternPool, index: Index) LoadedStructType { .decl = extra.data.decl.toOptional(), .namespace = extra.data.namespace, .zir_index = extra.data.zir_index.toOptional(), - .layout = .Packed, + .layout = .@"packed", .field_names = field_names, .field_types = field_types, .field_inits = field_inits, @@ -4455,7 +4455,6 @@ pub fn indexToKey(ip: *const InternPool, index: Index) Key { } else .{ .start = 0, .len = 0 } }, } }; } }, - .type_struct_anon => .{ .anon_struct_type = extraTypeStructAnon(ip, data) }, .type_tuple_anon => .{ .anon_struct_type = extraTypeTupleAnon(ip, data) }, .type_union => .{ .union_type = ns: { @@ -6009,9 +6008,9 @@ pub fn getStructType( }; const is_extern = switch (ini.layout) { - .Auto => false, - .Extern => true, - .Packed => { + .auto => false, + .@"extern" => true, + .@"packed" => { try ip.extra.ensureUnusedCapacity(gpa, @typeInfo(Tag.TypeStructPacked).Struct.fields.len + // TODO: fmt bug // zig fmt: off @@ -6140,7 +6139,7 @@ pub fn getStructType( if (ini.any_comptime_fields) { ip.extra.appendNTimesAssumeCapacity(0, comptime_elements_len); } - if (ini.layout == .Auto) { + if (ini.layout == .auto) { ip.extra.appendNTimesAssumeCapacity(@intFromEnum(LoadedStructType.RuntimeOrder.unresolved), ini.fields_len); } ip.extra.appendNTimesAssumeCapacity(std.math.maxInt(u32), ini.fields_len); diff --git a/src/Module.zig b/src/Module.zig index 4ad760063b..7d20c0f023 100644 --- a/src/Module.zig +++ b/src/Module.zig @@ -279,7 +279,7 @@ pub const Export = struct { pub const Options = struct { name: InternPool.NullTerminatedString, - linkage: std.builtin.GlobalLinkage = .Strong, + linkage: std.builtin.GlobalLinkage = .strong, section: InternPool.OptionalNullTerminatedString = .none, visibility: std.builtin.SymbolVisibility = .default, }; @@ -3310,7 +3310,7 @@ fn getFileRootStruct(zcu: *Zcu, decl_index: Decl.Index, namespace_index: Namespa const small: Zir.Inst.StructDecl.Small = @bitCast(extended.small); assert(!small.has_captures_len); assert(!small.has_backing_int); - assert(small.layout == .Auto); + assert(small.layout == .auto); var extra_index: usize = extended.operand + @typeInfo(Zir.Inst.StructDecl).Struct.fields.len; const fields_len = if (small.has_fields_len) blk: { const fields_len = file.zir.extra[extra_index]; @@ -3327,7 +3327,7 @@ fn getFileRootStruct(zcu: *Zcu, decl_index: Decl.Index, namespace_index: Namespa const tracked_inst = try ip.trackZir(gpa, file, .main_struct_inst); const wip_ty = switch (try ip.getStructType(gpa, .{ - .layout = .Auto, + .layout = .auto, .fields_len = fields_len, .known_non_opv = small.known_non_opv, .requires_comptime = if (small.known_comptime_only) .yes else .unknown, @@ -5969,7 +5969,7 @@ pub fn typeToStruct(mod: *Module, ty: Type) ?InternPool.LoadedStructType { pub fn typeToPackedStruct(mod: *Module, ty: Type) ?InternPool.LoadedStructType { const s = mod.typeToStruct(ty) orelse return null; - if (s.layout != .Packed) return null; + if (s.layout != .@"packed") return null; return s; } @@ -6185,18 +6185,18 @@ pub fn structFieldAlignment( field_ty: Type, layout: std.builtin.Type.ContainerLayout, ) Alignment { - assert(layout != .Packed); + assert(layout != .@"packed"); if (explicit_alignment != .none) return explicit_alignment; switch (layout) { - .Packed => unreachable, - .Auto => { + .@"packed" => unreachable, + .auto => { if (mod.getTarget().ofmt == .c) { return structFieldAlignmentExtern(mod, field_ty); } else { return field_ty.abiAlignment(mod); } }, - .Extern => return structFieldAlignmentExtern(mod, field_ty), + .@"extern" => return structFieldAlignmentExtern(mod, field_ty), } } @@ -6224,7 +6224,7 @@ pub fn structPackedFieldBitOffset( field_index: u32, ) u16 { const ip = &mod.intern_pool; - assert(struct_type.layout == .Packed); + assert(struct_type.layout == .@"packed"); assert(struct_type.haveLayout(ip)); var bit_sum: u64 = 0; for (0..struct_type.field_types.len) |i| { diff --git a/src/Package/Module.zig b/src/Package/Module.zig index c6eb1e8c90..d6b89efb41 100644 --- a/src/Package/Module.zig +++ b/src/Package/Module.zig @@ -178,7 +178,7 @@ pub fn create(arena: Allocator, options: CreateOptions) !*Package.Module { return error.PieRequiresPic; break :b true; } - if (options.global.link_mode == .Dynamic) { + if (options.global.link_mode == .dynamic) { if (options.inherited.pic == false) return error.DynamicLinkingRequiresPic; break :b true; diff --git a/src/Sema.zig b/src/Sema.zig index 1ac6d28bf0..35adfdb25b 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -357,7 +357,7 @@ pub const Block = struct { want_safety: ?bool = null, /// What mode to generate float operations in, set by @setFloatMode - float_mode: std.builtin.FloatMode = .Strict, + float_mode: std.builtin.FloatMode = .strict, c_import_buf: ?*std.ArrayList(u8) = null, @@ -686,7 +686,7 @@ pub const Block = struct { const sema = block.sema; const mod = sema.mod; return block.addInst(.{ - .tag = if (block.float_mode == .Optimized) .cmp_vector_optimized else .cmp_vector, + .tag = if (block.float_mode == .optimized) .cmp_vector_optimized else .cmp_vector, .data = .{ .ty_pl = .{ .ty = Air.internedToRef((try mod.vectorType(.{ .len = sema.typeOf(lhs).vectorLen(mod), @@ -1020,10 +1020,10 @@ fn analyzeBodyInner( .field_call => try sema.zirCall(block, inst, .field), .cmp_lt => try sema.zirCmp(block, inst, .lt), .cmp_lte => try sema.zirCmp(block, inst, .lte), - .cmp_eq => try sema.zirCmpEq(block, inst, .eq, Air.Inst.Tag.fromCmpOp(.eq, block.float_mode == .Optimized)), + .cmp_eq => try sema.zirCmpEq(block, inst, .eq, Air.Inst.Tag.fromCmpOp(.eq, block.float_mode == .optimized)), .cmp_gte => try sema.zirCmp(block, inst, .gte), .cmp_gt => try sema.zirCmp(block, inst, .gt), - .cmp_neq => try sema.zirCmpEq(block, inst, .neq, Air.Inst.Tag.fromCmpOp(.neq, block.float_mode == .Optimized)), + .cmp_neq => try sema.zirCmpEq(block, inst, .neq, Air.Inst.Tag.fromCmpOp(.neq, block.float_mode == .optimized)), .decl_ref => try sema.zirDeclRef(block, inst), .decl_val => try sema.zirDeclVal(block, inst), .load => try sema.zirLoad(block, inst), @@ -3236,7 +3236,7 @@ fn zirUnionDecl( .status = .none, .runtime_tag = if (small.has_tag_type or small.auto_enum_tag) .tagged - else if (small.layout != .Auto) + else if (small.layout != .auto) .none else switch (block.wantSafety()) { true => .safety, @@ -6274,7 +6274,7 @@ fn zirExportValue(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError .needed_comptime_reason = "export target must be comptime-known", }); const options = try sema.resolveExportOptions(block, options_src, extra.options); - if (options.linkage == .Internal) + if (options.linkage == .internal) return; if (operand.val.getFunction(mod)) |function| { const decl_index = function.owner_decl; @@ -6301,7 +6301,7 @@ pub fn analyzeExport( const gpa = sema.gpa; const mod = sema.mod; - if (options.linkage == .Internal) + if (options.linkage == .internal) return; try mod.ensureDeclAnalyzed(exported_decl_index); @@ -6450,8 +6450,8 @@ fn zirFence(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstData) Co .needed_comptime_reason = "atomic order of @fence must be comptime-known", }); - if (@intFromEnum(order) < @intFromEnum(std.builtin.AtomicOrder.Acquire)) { - return sema.fail(block, order_src, "atomic ordering must be Acquire or stricter", .{}); + if (@intFromEnum(order) < @intFromEnum(std.builtin.AtomicOrder.acquire)) { + return sema.fail(block, order_src, "atomic ordering must be acquire or stricter", .{}); } _ = try block.addInst(.{ @@ -10264,7 +10264,7 @@ fn intCast( const ok = if (is_vector) ok: { const is_in_range = try block.addCmpVector(diff_unsigned, dest_range, .lte); const all_in_range = try block.addInst(.{ - .tag = if (block.float_mode == .Optimized) .reduce_optimized else .reduce, + .tag = if (block.float_mode == .optimized) .reduce_optimized else .reduce, .data = .{ .reduce = .{ .operand = is_in_range, .operation = .And, @@ -10281,7 +10281,7 @@ fn intCast( const ok = if (is_vector) ok: { const is_in_range = try block.addCmpVector(diff, dest_max, .lte); const all_in_range = try block.addInst(.{ - .tag = if (block.float_mode == .Optimized) .reduce_optimized else .reduce, + .tag = if (block.float_mode == .optimized) .reduce_optimized else .reduce, .data = .{ .reduce = .{ .operand = is_in_range, .operation = .And, @@ -10303,7 +10303,7 @@ fn intCast( const zero_inst = Air.internedToRef(zero_val.toIntern()); const is_in_range = try block.addCmpVector(operand, zero_inst, .gte); const all_in_range = try block.addInst(.{ - .tag = if (block.float_mode == .Optimized) .reduce_optimized else .reduce, + .tag = if (block.float_mode == .optimized) .reduce_optimized else .reduce, .data = .{ .reduce = .{ .operand = is_in_range, .operation = .And, @@ -10380,7 +10380,7 @@ fn zirBitcast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air }; return sema.failWithOwnedErrorMsg(block, msg); }, - .Struct, .Union => if (dest_ty.containerLayout(mod) == .Auto) { + .Struct, .Union => if (dest_ty.containerLayout(mod) == .auto) { const container = switch (dest_ty.zigTypeTag(mod)) { .Struct => "struct", .Union => "union", @@ -10443,7 +10443,7 @@ fn zirBitcast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air }; return sema.failWithOwnedErrorMsg(block, msg); }, - .Struct, .Union => if (operand_ty.containerLayout(mod) == .Auto) { + .Struct, .Union => if (operand_ty.containerLayout(mod) == .auto) { const container = switch (operand_ty.zigTypeTag(mod)) { .Struct => "struct", .Union => "union", @@ -12530,7 +12530,7 @@ fn analyzeSwitchRuntimeBlock( cases_extra.appendSliceAssumeCapacity(@ptrCast(case_block.instructions.items)); } else { for (items) |item| { - const cmp_ok = try case_block.addBinOp(if (case_block.float_mode == .Optimized) .cmp_eq_optimized else .cmp_eq, operand, item); + const cmp_ok = try case_block.addBinOp(if (case_block.float_mode == .optimized) .cmp_eq_optimized else .cmp_eq, operand, item); if (any_ok != .none) { any_ok = try case_block.addBinOp(.bool_or, any_ok, cmp_ok); } else { @@ -12549,12 +12549,12 @@ fn analyzeSwitchRuntimeBlock( // operand >= first and operand <= last const range_first_ok = try case_block.addBinOp( - if (case_block.float_mode == .Optimized) .cmp_gte_optimized else .cmp_gte, + if (case_block.float_mode == .optimized) .cmp_gte_optimized else .cmp_gte, operand, item_first, ); const range_last_ok = try case_block.addBinOp( - if (case_block.float_mode == .Optimized) .cmp_lte_optimized else .cmp_lte, + if (case_block.float_mode == .optimized) .cmp_lte_optimized else .cmp_lte, operand, item_last, ); @@ -13904,7 +13904,7 @@ fn zirShl( const ov_bit = try sema.tupleFieldValByIndex(block, src, op_ov, 1, op_ov_tuple_ty); const any_ov_bit = if (lhs_ty.zigTypeTag(mod) == .Vector) try block.addInst(.{ - .tag = if (block.float_mode == .Optimized) .reduce_optimized else .reduce, + .tag = if (block.float_mode == .optimized) .reduce_optimized else .reduce, .data = .{ .reduce = .{ .operand = ov_bit, .operation = .Or, @@ -14044,7 +14044,7 @@ fn zirShr( const ok = if (rhs_ty.zigTypeTag(mod) == .Vector) ok: { const eql = try block.addCmpVector(lhs, back, .eq); break :ok try block.addInst(.{ - .tag = if (block.float_mode == .Optimized) .reduce_optimized else .reduce, + .tag = if (block.float_mode == .optimized) .reduce_optimized else .reduce, .data = .{ .reduce = .{ .operand = eql, .operation = .And, @@ -14811,7 +14811,7 @@ fn zirNegate(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air. return Air.internedToRef((try rhs_val.floatNeg(rhs_ty, sema.arena, mod)).toIntern()); } try sema.requireRuntimeBlock(block, src, null); - return block.addUnOp(if (block.float_mode == .Optimized) .neg_optimized else .neg, rhs); + return block.addUnOp(if (block.float_mode == .optimized) .neg_optimized else .neg, rhs); } const lhs = Air.internedToRef((try sema.splat(rhs_ty, try mod.intValue(rhs_scalar_ty, 0))).toIntern()); @@ -15018,8 +15018,8 @@ fn zirDiv(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.Ins } break :blk Air.Inst.Tag.div_trunc; } else switch (block.float_mode) { - .Optimized => Air.Inst.Tag.div_float_optimized, - .Strict => Air.Inst.Tag.div_float, + .optimized => Air.Inst.Tag.div_float_optimized, + .strict => Air.Inst.Tag.div_float, }; return block.addBinOp(air_tag, casted_lhs, casted_rhs); } @@ -15142,8 +15142,8 @@ fn zirDivExact(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai const eql = try block.addCmpVector(result, floored, .eq); break :ok try block.addInst(.{ .tag = switch (block.float_mode) { - .Strict => .reduce, - .Optimized => .reduce_optimized, + .strict => .reduce, + .optimized => .reduce_optimized, }, .data = .{ .reduce = .{ .operand = eql, @@ -15152,8 +15152,8 @@ fn zirDivExact(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai }); } else { const is_in_range = try block.addBinOp(switch (block.float_mode) { - .Strict => .cmp_eq, - .Optimized => .cmp_eq_optimized, + .strict => .cmp_eq, + .optimized => .cmp_eq_optimized, }, result, floored); break :ok is_in_range; } @@ -15503,7 +15503,7 @@ fn addDivByZeroSafety( is_int: bool, ) CompileError!void { // Strict IEEE floats have well-defined division by zero. - if (!is_int and block.float_mode == .Strict) return; + if (!is_int and block.float_mode == .strict) return; // If rhs was comptime-known to be zero a compile error would have been // emitted above. @@ -15535,8 +15535,8 @@ fn addDivByZeroSafety( fn airTag(block: *Block, is_int: bool, normal: Air.Inst.Tag, optimized: Air.Inst.Tag) Air.Inst.Tag { if (is_int) return normal; return switch (block.float_mode) { - .Strict => normal, - .Optimized => optimized, + .strict => normal, + .optimized => optimized, }; } @@ -16228,7 +16228,7 @@ fn analyzeArithmetic( return casted_lhs; } } - const air_tag: Air.Inst.Tag = if (block.float_mode == .Optimized) .add_optimized else .add; + const air_tag: Air.Inst.Tag = if (block.float_mode == .optimized) .add_optimized else .add; if (maybe_lhs_val) |lhs_val| { if (lhs_val.isUndef(mod)) { if (is_int) { @@ -16330,7 +16330,7 @@ fn analyzeArithmetic( return casted_lhs; } } - const air_tag: Air.Inst.Tag = if (block.float_mode == .Optimized) .sub_optimized else .sub; + const air_tag: Air.Inst.Tag = if (block.float_mode == .optimized) .sub_optimized else .sub; if (maybe_lhs_val) |lhs_val| { if (lhs_val.isUndef(mod)) { if (is_int) { @@ -16448,7 +16448,7 @@ fn analyzeArithmetic( } } } - const air_tag: Air.Inst.Tag = if (block.float_mode == .Optimized) .mul_optimized else .mul; + const air_tag: Air.Inst.Tag = if (block.float_mode == .optimized) .mul_optimized else .mul; if (maybe_rhs_val) |rhs_val| { if (rhs_val.isUndef(mod)) { if (is_int) { @@ -16625,7 +16625,7 @@ fn analyzeArithmetic( const ov_bit = try sema.tupleFieldValByIndex(block, src, op_ov, 1, op_ov_tuple_ty); const any_ov_bit = if (resolved_type.zigTypeTag(mod) == .Vector) try block.addInst(.{ - .tag = if (block.float_mode == .Optimized) .reduce_optimized else .reduce, + .tag = if (block.float_mode == .optimized) .reduce_optimized else .reduce, .data = .{ .reduce = .{ .operand = ov_bit, .operation = .Or, @@ -17168,7 +17168,7 @@ fn cmpSelf( if (resolved_type.zigTypeTag(mod) == .Vector) { return block.addCmpVector(casted_lhs, casted_rhs, op); } - const tag = Air.Inst.Tag.fromCmpOp(op, block.float_mode == .Optimized); + const tag = Air.Inst.Tag.fromCmpOp(op, block.float_mode == .optimized); return block.addBinOp(tag, casted_lhs, casted_rhs); } @@ -18131,8 +18131,8 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai }; const alignment = switch (layout) { - .Auto, .Extern => try sema.unionFieldAlignment(union_obj, @intCast(i)), - .Packed => .none, + .auto, .@"extern" => try sema.unionFieldAlignment(union_obj, @intCast(i)), + .@"packed" => .none, }; const field_ty = union_obj.field_types.get(ip)[i]; @@ -18350,7 +18350,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai const opt_default_val = if (field_init == .none) null else Value.fromInterned(field_init); const default_val_ptr = try sema.optRefValue(opt_default_val); const alignment = switch (struct_type.layout) { - .Packed => .none, + .@"packed" => .none, else => try sema.structFieldAlignment( struct_type.fieldAlign(ip, i), field_ty, @@ -19906,7 +19906,7 @@ fn zirStructInit( var field_i: u32 = 0; var extra_index = extra.end; - const is_packed = resolved_ty.containerLayout(mod) == .Packed; + const is_packed = resolved_ty.containerLayout(mod) == .@"packed"; while (field_i < extra.data.fields_len) : (field_i += 1) { const item = sema.code.extraData(Zir.Inst.StructInit.Item, extra_index); extra_index = item.end; @@ -21302,7 +21302,7 @@ fn zirReify( return sema.fail(block, src, "reified structs must have no decls", .{}); } - if (layout != .Packed and !backing_integer_val.isNull(mod)) { + if (layout != .@"packed" and !backing_integer_val.isNull(mod)) { return sema.fail(block, src, "non-packed struct does not support backing integer type", .{}); } @@ -21665,7 +21665,7 @@ fn reifyUnion( .status = .none, .runtime_tag = if (opt_tag_type_val.optionalValue(mod) != null) .tagged - else if (layout != .Auto) + else if (layout != .auto) .none else switch (block.wantSafety()) { true => .safety, @@ -21804,7 +21804,7 @@ fn reifyUnion( break :msg msg; }); } - if (layout == .Extern and !try sema.validateExternType(field_ty, .union_field)) { + if (layout == .@"extern" and !try sema.validateExternType(field_ty, .union_field)) { return sema.failWithOwnedErrorMsg(block, msg: { const msg = try sema.errMsg(block, src, "extern unions cannot contain fields of type '{}'", .{field_ty.fmt(mod)}); errdefer msg.destroy(gpa); @@ -21815,7 +21815,7 @@ fn reifyUnion( try sema.addDeclaredHereNote(msg, field_ty); break :msg msg; }); - } else if (layout == .Packed and !try sema.validatePackedType(field_ty)) { + } else if (layout == .@"packed" and !try sema.validatePackedType(field_ty)) { return sema.failWithOwnedErrorMsg(block, msg: { const msg = try sema.errMsg(block, src, "packed unions cannot contain fields of type '{}'", .{field_ty.fmt(mod)}); errdefer msg.destroy(gpa); @@ -21938,9 +21938,9 @@ fn reifyStruct( errdefer wip_ty.cancel(ip); if (is_tuple) switch (layout) { - .Extern => return sema.fail(block, src, "extern tuples are not supported", .{}), - .Packed => return sema.fail(block, src, "packed tuples are not supported", .{}), - .Auto => {}, + .@"extern" => return sema.fail(block, src, "extern tuples are not supported", .{}), + .@"packed" => return sema.fail(block, src, "packed tuples are not supported", .{}), + .auto => {}, }; const new_decl_index = try sema.createAnonymousDeclTypeNamed(block, src, .{ @@ -21990,11 +21990,11 @@ fn reifyStruct( const byte_align = try field_alignment_val.toUnsignedIntAdvanced(sema); if (byte_align == 0) { - if (layout != .Packed) { + if (layout != .@"packed") { struct_type.field_aligns.get(ip)[field_idx] = .none; } } else { - if (layout == .Packed) return sema.fail(block, src, "alignment in a packed struct field must be set to 0", .{}); + if (layout == .@"packed") return sema.fail(block, src, "alignment in a packed struct field must be set to 0", .{}); if (!math.isPowerOfTwo(byte_align)) return sema.fail(block, src, "alignment value '{d}' is not a power of two or zero", .{byte_align}); struct_type.field_aligns.get(ip)[field_idx] = Alignment.fromNonzeroByteUnits(byte_align); } @@ -22004,9 +22004,9 @@ fn reifyStruct( if (field_is_comptime) { assert(any_comptime_fields); switch (layout) { - .Extern => return sema.fail(block, src, "extern struct fields cannot be marked comptime", .{}), - .Packed => return sema.fail(block, src, "packed struct fields cannot be marked comptime", .{}), - .Auto => struct_type.setFieldComptime(ip, field_idx), + .@"extern" => return sema.fail(block, src, "extern struct fields cannot be marked comptime", .{}), + .@"packed" => return sema.fail(block, src, "packed struct fields cannot be marked comptime", .{}), + .auto => struct_type.setFieldComptime(ip, field_idx), } } @@ -22047,7 +22047,7 @@ fn reifyStruct( break :msg msg; }); } - if (layout == .Extern and !try sema.validateExternType(field_ty, .struct_field)) { + if (layout == .@"extern" and !try sema.validateExternType(field_ty, .struct_field)) { return sema.failWithOwnedErrorMsg(block, msg: { const msg = try sema.errMsg(block, src, "extern structs cannot contain fields of type '{}'", .{field_ty.fmt(sema.mod)}); errdefer msg.destroy(gpa); @@ -22058,7 +22058,7 @@ fn reifyStruct( try sema.addDeclaredHereNote(msg, field_ty); break :msg msg; }); - } else if (layout == .Packed and !try sema.validatePackedType(field_ty)) { + } else if (layout == .@"packed" and !try sema.validatePackedType(field_ty)) { return sema.failWithOwnedErrorMsg(block, msg: { const msg = try sema.errMsg(block, src, "packed structs cannot contain fields of type '{}'", .{field_ty.fmt(sema.mod)}); errdefer msg.destroy(gpa); @@ -22072,7 +22072,7 @@ fn reifyStruct( } } - if (layout == .Packed) { + if (layout == .@"packed") { var fields_bit_sum: u64 = 0; for (0..struct_type.field_types.len) |field_idx| { const field_ty = Type.fromInterned(struct_type.field_types.get(ip)[field_idx]); @@ -22226,7 +22226,7 @@ fn zirIntFromFloat(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileErro if (dest_scalar_ty.intInfo(mod).bits == 0) { if (!is_vector) { if (block.wantSafety()) { - const ok = try block.addBinOp(if (block.float_mode == .Optimized) .cmp_eq_optimized else .cmp_eq, operand, Air.internedToRef((try mod.floatValue(operand_ty, 0.0)).toIntern())); + const ok = try block.addBinOp(if (block.float_mode == .optimized) .cmp_eq_optimized else .cmp_eq, operand, Air.internedToRef((try mod.floatValue(operand_ty, 0.0)).toIntern())); try sema.addSafetyCheck(block, src, ok, .integer_part_out_of_bounds); } return Air.internedToRef((try mod.intValue(dest_ty, 0)).toIntern()); @@ -22236,7 +22236,7 @@ fn zirIntFromFloat(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileErro for (0..len) |i| { const idx_ref = try mod.intRef(Type.usize, i); const elem_ref = try block.addBinOp(.array_elem_val, operand, idx_ref); - const ok = try block.addBinOp(if (block.float_mode == .Optimized) .cmp_eq_optimized else .cmp_eq, elem_ref, Air.internedToRef((try mod.floatValue(operand_scalar_ty, 0.0)).toIntern())); + const ok = try block.addBinOp(if (block.float_mode == .optimized) .cmp_eq_optimized else .cmp_eq, elem_ref, Air.internedToRef((try mod.floatValue(operand_scalar_ty, 0.0)).toIntern())); try sema.addSafetyCheck(block, src, ok, .integer_part_out_of_bounds); } } @@ -22246,12 +22246,12 @@ fn zirIntFromFloat(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileErro } })); } if (!is_vector) { - const result = try block.addTyOp(if (block.float_mode == .Optimized) .int_from_float_optimized else .int_from_float, dest_ty, operand); + const result = try block.addTyOp(if (block.float_mode == .optimized) .int_from_float_optimized else .int_from_float, dest_ty, operand); if (block.wantSafety()) { const back = try block.addTyOp(.float_from_int, operand_ty, result); const diff = try block.addBinOp(.sub, operand, back); - const ok_pos = try block.addBinOp(if (block.float_mode == .Optimized) .cmp_lt_optimized else .cmp_lt, diff, Air.internedToRef((try mod.floatValue(operand_ty, 1.0)).toIntern())); - const ok_neg = try block.addBinOp(if (block.float_mode == .Optimized) .cmp_gt_optimized else .cmp_gt, diff, Air.internedToRef((try mod.floatValue(operand_ty, -1.0)).toIntern())); + const ok_pos = try block.addBinOp(if (block.float_mode == .optimized) .cmp_lt_optimized else .cmp_lt, diff, Air.internedToRef((try mod.floatValue(operand_ty, 1.0)).toIntern())); + const ok_neg = try block.addBinOp(if (block.float_mode == .optimized) .cmp_gt_optimized else .cmp_gt, diff, Air.internedToRef((try mod.floatValue(operand_ty, -1.0)).toIntern())); const ok = try block.addBinOp(.bool_and, ok_pos, ok_neg); try sema.addSafetyCheck(block, src, ok, .integer_part_out_of_bounds); } @@ -22262,12 +22262,12 @@ fn zirIntFromFloat(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileErro for (new_elems, 0..) |*new_elem, i| { const idx_ref = try mod.intRef(Type.usize, i); const old_elem = try block.addBinOp(.array_elem_val, operand, idx_ref); - const result = try block.addTyOp(if (block.float_mode == .Optimized) .int_from_float_optimized else .int_from_float, dest_scalar_ty, old_elem); + const result = try block.addTyOp(if (block.float_mode == .optimized) .int_from_float_optimized else .int_from_float, dest_scalar_ty, old_elem); if (block.wantSafety()) { const back = try block.addTyOp(.float_from_int, operand_scalar_ty, result); const diff = try block.addBinOp(.sub, old_elem, back); - const ok_pos = try block.addBinOp(if (block.float_mode == .Optimized) .cmp_lt_optimized else .cmp_lt, diff, Air.internedToRef((try mod.floatValue(operand_scalar_ty, 1.0)).toIntern())); - const ok_neg = try block.addBinOp(if (block.float_mode == .Optimized) .cmp_gt_optimized else .cmp_gt, diff, Air.internedToRef((try mod.floatValue(operand_scalar_ty, -1.0)).toIntern())); + const ok_pos = try block.addBinOp(if (block.float_mode == .optimized) .cmp_lt_optimized else .cmp_lt, diff, Air.internedToRef((try mod.floatValue(operand_scalar_ty, 1.0)).toIntern())); + const ok_neg = try block.addBinOp(if (block.float_mode == .optimized) .cmp_gt_optimized else .cmp_gt, diff, Air.internedToRef((try mod.floatValue(operand_scalar_ty, -1.0)).toIntern())); const ok = try block.addBinOp(.bool_and, ok_pos, ok_neg); try sema.addSafetyCheck(block, src, ok, .integer_part_out_of_bounds); } @@ -23311,7 +23311,7 @@ fn bitOffsetOf(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!u6 } switch (ty.containerLayout(mod)) { - .Packed => { + .@"packed" => { var bit_sum: u64 = 0; const struct_type = ip.loadStructType(ty.toIntern()); for (0..struct_type.field_types.len) |i| { @@ -23802,7 +23802,7 @@ fn resolveExportOptions( return sema.fail(block, name_src, "exported symbol name cannot be empty", .{}); } - if (visibility != .default and linkage == .Internal) { + if (visibility != .default and linkage == .internal) { return sema.fail(block, visibility_src, "symbol '{s}' exported with internal linkage has non-default visibility {s}", .{ name, @tagName(visibility), }); @@ -23894,17 +23894,17 @@ fn zirCmpxchg( .needed_comptime_reason = "atomic order of cmpxchg failure must be comptime-known", }); - if (@intFromEnum(success_order) < @intFromEnum(std.builtin.AtomicOrder.Monotonic)) { - return sema.fail(block, success_order_src, "success atomic ordering must be Monotonic or stricter", .{}); + if (@intFromEnum(success_order) < @intFromEnum(std.builtin.AtomicOrder.monotonic)) { + return sema.fail(block, success_order_src, "success atomic ordering must be monotonic or stricter", .{}); } - if (@intFromEnum(failure_order) < @intFromEnum(std.builtin.AtomicOrder.Monotonic)) { - return sema.fail(block, failure_order_src, "failure atomic ordering must be Monotonic or stricter", .{}); + if (@intFromEnum(failure_order) < @intFromEnum(std.builtin.AtomicOrder.monotonic)) { + return sema.fail(block, failure_order_src, "failure atomic ordering must be monotonic or stricter", .{}); } if (@intFromEnum(failure_order) > @intFromEnum(success_order)) { return sema.fail(block, failure_order_src, "failure atomic ordering must be no stricter than success", .{}); } - if (failure_order == .Release or failure_order == .AcqRel) { - return sema.fail(block, failure_order_src, "failure atomic ordering must not be Release or AcqRel", .{}); + if (failure_order == .release or failure_order == .acq_rel) { + return sema.fail(block, failure_order_src, "failure atomic ordering must not be release or acq_rel", .{}); } const result_ty = try mod.optionalType(elem_ty.toIntern()); @@ -24042,7 +24042,7 @@ fn zirReduce(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air. try sema.requireRuntimeBlock(block, inst_data.src(), operand_src); return block.addInst(.{ - .tag = if (block.float_mode == .Optimized) .reduce_optimized else .reduce, + .tag = if (block.float_mode == .optimized) .reduce_optimized else .reduce, .data = .{ .reduce = .{ .operand = operand, .operation = operation, @@ -24346,11 +24346,11 @@ fn zirAtomicLoad(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError! }); switch (order) { - .Release, .AcqRel => { + .release, .acq_rel => { return sema.fail( block, order_src, - "@atomicLoad atomic ordering must not be Release or AcqRel", + "@atomicLoad atomic ordering must not be release or acq_rel", .{}, ); }, @@ -24412,8 +24412,8 @@ fn zirAtomicRmw(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!A .needed_comptime_reason = "atomic order of @atomicRmW must be comptime-known", }); - if (order == .Unordered) { - return sema.fail(block, order_src, "@atomicRmw atomic ordering must not be Unordered", .{}); + if (order == .unordered) { + return sema.fail(block, order_src, "@atomicRmw atomic ordering must not be unordered", .{}); } // special case zero bit types @@ -24482,18 +24482,18 @@ fn zirAtomicStore(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError }); const air_tag: Air.Inst.Tag = switch (order) { - .Acquire, .AcqRel => { + .acquire, .acq_rel => { return sema.fail( block, order_src, - "@atomicStore atomic ordering must not be Acquire or AcqRel", + "@atomicStore atomic ordering must not be acquire or acq_rel", .{}, ); }, - .Unordered => .atomic_store_unordered, - .Monotonic => .atomic_store_monotonic, - .Release => .atomic_store_release, - .SeqCst => .atomic_store_seq_cst, + .unordered => .atomic_store_unordered, + .monotonic => .atomic_store_monotonic, + .release => .atomic_store_release, + .seq_cst => .atomic_store_seq_cst, }; return sema.storePtr2(block, src, ptr, ptr_src, operand, operand_src, air_tag); @@ -24710,7 +24710,7 @@ fn zirFieldParentPtr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileEr }, }; - if (parent_ty.containerLayout(mod) == .Packed) { + if (parent_ty.containerLayout(mod) == .@"packed") { return sema.fail(block, src, "TODO handle packed structs/unions with @fieldParentPtr", .{}); } else { ptr_ty_data.flags.alignment = blk: { @@ -25888,7 +25888,7 @@ fn resolveExternOptions( ) CompileError!struct { name: InternPool.NullTerminatedString, library_name: InternPool.OptionalNullTerminatedString = .none, - linkage: std.builtin.GlobalLinkage = .Strong, + linkage: std.builtin.GlobalLinkage = .strong, is_thread_local: bool = false, } { const mod = sema.mod; @@ -25938,7 +25938,7 @@ fn resolveExternOptions( return sema.fail(block, name_src, "extern symbol name cannot be empty", .{}); } - if (linkage != .Weak and linkage != .Strong) { + if (linkage != .weak and linkage != .strong) { return sema.fail(block, linkage_src, "extern symbol must use strong or weak linkage", .{}); } @@ -25984,7 +25984,7 @@ fn zirBuiltinExtern( else => |e| return e, }; - if (options.linkage == .Weak and !ty.ptrAllowsZero(mod)) { + if (options.linkage == .weak and !ty.ptrAllowsZero(mod)) { ty = try mod.optionalType(ty.toIntern()); } const ptr_info = ty.ptrInfo(mod); @@ -26010,7 +26010,7 @@ fn zirBuiltinExtern( .is_extern = true, .is_const = ptr_info.flags.is_const, .is_threadlocal = options.is_thread_local, - .is_weak_linkage = options.linkage == .Weak, + .is_weak_linkage = options.linkage == .weak, } }), ), }, options.name); @@ -26328,15 +26328,15 @@ fn validateExternType( return sema.validateExternType(ty.intTagType(mod), position); }, .Struct, .Union => switch (ty.containerLayout(mod)) { - .Extern => return true, - .Packed => { + .@"extern" => return true, + .@"packed" => { const bit_size = try ty.bitSizeAdvanced(mod, sema); switch (bit_size) { 0, 8, 16, 32, 64, 128 => return true, else => return false, } }, - .Auto => return !(try sema.typeHasRuntimeBits(ty)), + .auto => return !(try sema.typeHasRuntimeBits(ty)), }, .Array => { if (position == .ret_ty or position == .param_ty) return false; @@ -26456,7 +26456,7 @@ fn validatePackedType(sema: *Sema, ty: Type) !bool { .Enum, => return true, .Pointer => return !ty.isSlice(mod) and !try sema.typeRequiresComptime(ty), - .Struct, .Union => return ty.containerLayout(mod) == .Packed, + .Struct, .Union => return ty.containerLayout(mod) == .@"packed", } } @@ -27596,7 +27596,7 @@ fn structFieldPtrByIndex( else try sema.typeAbiAlignment(Type.fromInterned(struct_ptr_ty_info.child)); - if (struct_type.layout == .Packed) { + if (struct_type.layout == .@"packed") { comptime assert(Type.packed_struct_layout_version == 2); var running_bits: u16 = 0; @@ -27641,7 +27641,7 @@ fn structFieldPtrByIndex( ptr_ty_data.packed_offset = .{ .host_size = 0, .bit_offset = 0 }; } } - } else if (struct_type.layout == .Extern) { + } else if (struct_type.layout == .@"extern") { // For extern structs, field alignment might be bigger than type's // natural alignment. Eg, in `extern struct { x: u32, y: u16 }` the // second field is aligned as u32. @@ -27846,7 +27846,7 @@ fn unionFieldPtr( .is_const = union_ptr_info.flags.is_const, .is_volatile = union_ptr_info.flags.is_volatile, .address_space = union_ptr_info.flags.address_space, - .alignment = if (union_obj.getLayout(ip) == .Auto) blk: { + .alignment = if (union_obj.getLayout(ip) == .auto) blk: { const union_align = if (union_ptr_info.flags.alignment != .none) union_ptr_info.flags.alignment else @@ -27875,7 +27875,7 @@ fn unionFieldPtr( if (try sema.resolveDefinedValue(block, src, union_ptr)) |union_ptr_val| ct: { switch (union_obj.getLayout(ip)) { - .Auto => if (!initializing) { + .auto => if (!initializing) { const union_val = (try sema.pointerDeref(block, src, union_ptr_val, union_ptr_ty)) orelse break :ct; if (union_val.isUndef(mod)) { @@ -27899,7 +27899,7 @@ fn unionFieldPtr( return sema.failWithOwnedErrorMsg(block, msg); } }, - .Packed, .Extern => {}, + .@"packed", .@"extern" => {}, } return Air.internedToRef((try mod.intern(.{ .ptr = .{ .ty = ptr_field_ty.toIntern(), @@ -27911,7 +27911,7 @@ fn unionFieldPtr( } try sema.requireRuntimeBlock(block, src, null); - if (!initializing and union_obj.getLayout(ip) == .Auto and block.wantSafety() and + if (!initializing and union_obj.getLayout(ip) == .auto and block.wantSafety() and union_ty.unionTagTypeSafety(mod) != null and union_obj.field_types.len > 1) { const wanted_tag_val = try mod.enumValueFieldIndex(Type.fromInterned(union_obj.enum_tag_ty), enum_field_index); @@ -27954,7 +27954,7 @@ fn unionFieldVal( const field_tag = try mod.enumValueFieldIndex(Type.fromInterned(union_obj.enum_tag_ty), enum_field_index); const tag_matches = un.tag == field_tag.toIntern(); switch (union_obj.getLayout(ip)) { - .Auto => { + .auto => { if (tag_matches) { return Air.internedToRef(un.val); } else { @@ -27971,7 +27971,7 @@ fn unionFieldVal( return sema.failWithOwnedErrorMsg(block, msg); } }, - .Packed, .Extern => |layout| { + .@"packed", .@"extern" => |layout| { if (tag_matches) { return Air.internedToRef(un.val); } else { @@ -27989,7 +27989,7 @@ fn unionFieldVal( } try sema.requireRuntimeBlock(block, src, null); - if (union_obj.getLayout(ip) == .Auto and block.wantSafety() and + if (union_obj.getLayout(ip) == .auto and block.wantSafety() and union_ty.unionTagTypeSafety(mod) != null and union_obj.field_types.len > 1) { const wanted_tag_val = try mod.enumValueFieldIndex(Type.fromInterned(union_obj.enum_tag_ty), enum_field_index); @@ -30961,7 +30961,7 @@ fn beginComptimePtrMutation( const tag_type = base_child_ty.unionTagTypeHypothetical(mod); const hypothetical_tag = try mod.enumValueFieldIndex(tag_type, field_index); - if (layout == .Auto or (payload.tag != null and hypothetical_tag.eql(payload.tag.?, tag_type, mod))) { + if (layout == .auto or (payload.tag != null and hypothetical_tag.eql(payload.tag.?, tag_type, mod))) { // We need to set the active field of the union. payload.tag = hypothetical_tag; @@ -30988,7 +30988,7 @@ fn beginComptimePtrMutation( .pointee = .{ .reinterpret = .{ .val_ptr = val_ptr, .byte_offset = 0, - .write_packed = layout == .Packed, + .write_packed = layout == .@"packed", } }, .ty = parent.ty, }; @@ -31395,7 +31395,7 @@ fn beginComptimePtrLoad( if (container_ty.hasWellDefinedLayout(mod)) { const struct_obj = mod.typeToStruct(container_ty); - if (struct_obj != null and struct_obj.?.layout == .Packed) { + if (struct_obj != null and struct_obj.?.layout == .@"packed") { // packed structs are not byte addressable deref.parent = null; } else if (deref.parent) |*parent| { @@ -31551,7 +31551,7 @@ fn bitCastUnionFieldVal( // Reading a larger value means we need to reinterpret from undefined bytes. const offset = switch (layout) { - .Extern => offset: { + .@"extern" => offset: { if (field_size > old_size) @memset(buffer[old_size..], 0xaa); val.writeToMemory(old_ty, mod, buffer) catch |err| switch (err) { error.OutOfMemory => return error.OutOfMemory, @@ -31561,7 +31561,7 @@ fn bitCastUnionFieldVal( }; break :offset 0; }, - .Packed => offset: { + .@"packed" => offset: { if (field_size > old_size) { const min_size = @max(old_size, 1); switch (endian) { @@ -31577,7 +31577,7 @@ fn bitCastUnionFieldVal( break :offset if (endian == .big) buffer.len - field_size else 0; }, - .Auto => unreachable, + .auto => unreachable, }; return Value.readFromMemory(field_ty, mod, buffer[offset..], sema.arena) catch |err| switch (err) { @@ -33506,7 +33506,7 @@ fn cmpNumeric( }; const casted_lhs = try sema.coerce(block, dest_ty, lhs, lhs_src); const casted_rhs = try sema.coerce(block, dest_ty, rhs, rhs_src); - return block.addBinOp(Air.Inst.Tag.fromCmpOp(op, block.float_mode == .Optimized), casted_lhs, casted_rhs); + return block.addBinOp(Air.Inst.Tag.fromCmpOp(op, block.float_mode == .optimized), casted_lhs, casted_rhs); } // For mixed unsigned integer sizes, implicit cast both operands to the larger integer. // For mixed signed and unsigned integers, implicit cast both operands to a signed @@ -33651,7 +33651,7 @@ fn cmpNumeric( const casted_lhs = try sema.coerce(block, dest_ty, lhs, lhs_src); const casted_rhs = try sema.coerce(block, dest_ty, rhs, rhs_src); - return block.addBinOp(Air.Inst.Tag.fromCmpOp(op, block.float_mode == .Optimized), casted_lhs, casted_rhs); + return block.addBinOp(Air.Inst.Tag.fromCmpOp(op, block.float_mode == .optimized), casted_lhs, casted_rhs); } /// Asserts that LHS value is an int or comptime int and not undefined, and @@ -35608,7 +35608,7 @@ pub fn resolveStructAlignment( const target = mod.getTarget(); assert(struct_type.flagsPtr(ip).alignment == .none); - assert(struct_type.layout != .Packed); + assert(struct_type.layout != .@"packed"); if (struct_type.flagsPtr(ip).field_types_wip) { // We'll guess "pointer-aligned", if the struct has an @@ -35661,7 +35661,7 @@ fn resolveStructLayout(sema: *Sema, ty: Type) CompileError!void { try sema.resolveTypeFields(ty); - if (struct_type.layout == .Packed) { + if (struct_type.layout == .@"packed") { try semaBackingIntType(mod, struct_type); return; } @@ -36625,11 +36625,11 @@ fn semaStructFields( const fields_len, const small, var extra_index = structZirInfo(zir, zir_index); if (fields_len == 0) switch (struct_type.layout) { - .Packed => { + .@"packed" => { try semaBackingIntType(mod, struct_type); return; }, - .Auto, .Extern => { + .auto, .@"extern" => { struct_type.size(ip).* = 0; struct_type.flagsPtr(ip).layout_resolved = true; return; @@ -36810,7 +36810,7 @@ fn semaStructFields( return sema.failWithOwnedErrorMsg(&block_scope, msg); } switch (struct_type.layout) { - .Extern => if (!try sema.validateExternType(field_ty, .struct_field)) { + .@"extern" => if (!try sema.validateExternType(field_ty, .struct_field)) { const msg = msg: { const ty_src = mod.fieldSrcLoc(decl_index, .{ .index = field_i, @@ -36826,7 +36826,7 @@ fn semaStructFields( }; return sema.failWithOwnedErrorMsg(&block_scope, msg); }, - .Packed => if (!try sema.validatePackedType(field_ty)) { + .@"packed" => if (!try sema.validatePackedType(field_ty)) { const msg = msg: { const ty_src = mod.fieldSrcLoc(decl_index, .{ .index = field_i, @@ -37350,7 +37350,7 @@ fn semaUnionFields(mod: *Module, arena: Allocator, union_type: InternPool.Loaded return sema.failWithOwnedErrorMsg(&block_scope, msg); } const layout = union_type.getLayout(ip); - if (layout == .Extern and + if (layout == .@"extern" and !try sema.validateExternType(field_ty, .union_field)) { const msg = msg: { @@ -37367,7 +37367,7 @@ fn semaUnionFields(mod: *Module, arena: Allocator, union_type: InternPool.Loaded break :msg msg; }; return sema.failWithOwnedErrorMsg(&block_scope, msg); - } else if (layout == .Packed and !try sema.validatePackedType(field_ty)) { + } else if (layout == .@"packed" and !try sema.validatePackedType(field_ty)) { const msg = msg: { const ty_src = mod.fieldSrcLoc(union_type.decl, .{ .index = field_i, @@ -38286,9 +38286,9 @@ fn structFieldAlignment( return explicit_alignment; const mod = sema.mod; switch (layout) { - .Packed => return .none, - .Auto => if (mod.getTarget().ofmt != .c) return sema.typeAbiAlignment(field_ty), - .Extern => {}, + .@"packed" => return .none, + .auto => if (mod.getTarget().ofmt != .c) return sema.typeAbiAlignment(field_ty), + .@"extern" => {}, } // extern const ty_abi_align = try sema.typeAbiAlignment(field_ty); diff --git a/src/Value.zig b/src/Value.zig index 3468ae4f10..a9f80635c7 100644 --- a/src/Value.zig +++ b/src/Value.zig @@ -676,8 +676,8 @@ pub fn writeToMemory(val: Value, ty: Type, mod: *Module, buffer: []u8) error{ .Struct => { const struct_type = mod.typeToStruct(ty) orelse return error.IllDefinedMemoryLayout; switch (struct_type.layout) { - .Auto => return error.IllDefinedMemoryLayout, - .Extern => for (0..struct_type.field_types.len) |i| { + .auto => return error.IllDefinedMemoryLayout, + .@"extern" => for (0..struct_type.field_types.len) |i| { const off: usize = @intCast(ty.structFieldOffset(i, mod)); const field_val = switch (val.ip_index) { .none => switch (val.tag()) { @@ -701,7 +701,7 @@ pub fn writeToMemory(val: Value, ty: Type, mod: *Module, buffer: []u8) error{ const field_ty = Type.fromInterned(struct_type.field_types.get(ip)[i]); try writeToMemory(field_val, field_ty, mod, buffer[off..]); }, - .Packed => { + .@"packed" => { const byte_count = (@as(usize, @intCast(ty.bitSize(mod))) + 7) / 8; return writeToPackedMemory(val, ty, mod, buffer[0..byte_count], 0); }, @@ -724,8 +724,8 @@ pub fn writeToMemory(val: Value, ty: Type, mod: *Module, buffer: []u8) error{ bigint.writeTwosComplement(buffer[0..byte_count], endian); }, .Union => switch (ty.containerLayout(mod)) { - .Auto => return error.IllDefinedMemoryLayout, // Sema is supposed to have emitted a compile error already - .Extern => { + .auto => return error.IllDefinedMemoryLayout, // Sema is supposed to have emitted a compile error already + .@"extern" => { if (val.unionTag(mod)) |union_tag| { const union_obj = mod.typeToUnion(ty).?; const field_index = mod.unionTagFieldIndex(union_obj, union_tag).?; @@ -739,7 +739,7 @@ pub fn writeToMemory(val: Value, ty: Type, mod: *Module, buffer: []u8) error{ return writeToMemory(val.unionValue(mod), backing_ty, mod, buffer[0..byte_count]); } }, - .Packed => { + .@"packed" => { const backing_ty = try ty.unionBackingType(mod); const byte_count: usize = @intCast(backing_ty.abiSize(mod)); return writeToPackedMemory(val, ty, mod, buffer[0..byte_count], 0); @@ -841,7 +841,7 @@ pub fn writeToPackedMemory( const struct_type = ip.loadStructType(ty.toIntern()); // Sema is supposed to have emitted a compile error already in the case of Auto, // and Extern is handled in non-packed writeToMemory. - assert(struct_type.layout == .Packed); + assert(struct_type.layout == .@"packed"); var bits: u16 = 0; for (0..struct_type.field_types.len) |i| { const field_val = switch (val.ip_index) { @@ -866,8 +866,8 @@ pub fn writeToPackedMemory( .Union => { const union_obj = mod.typeToUnion(ty).?; switch (union_obj.getLayout(ip)) { - .Auto, .Extern => unreachable, // Handled in non-packed writeToMemory - .Packed => { + .auto, .@"extern" => unreachable, // Handled in non-packed writeToMemory + .@"packed" => { if (val.unionTag(mod)) |union_tag| { const field_index = mod.unionTagFieldIndex(union_obj, union_tag).?; const field_type = Type.fromInterned(union_obj.field_types.get(ip)[field_index]); @@ -991,8 +991,8 @@ pub fn readFromMemory( .Struct => { const struct_type = mod.typeToStruct(ty).?; switch (struct_type.layout) { - .Auto => unreachable, // Sema is supposed to have emitted a compile error already - .Extern => { + .auto => unreachable, // Sema is supposed to have emitted a compile error already + .@"extern" => { const field_types = struct_type.field_types; const field_vals = try arena.alloc(InternPool.Index, field_types.len); for (field_vals, 0..) |*field_val, i| { @@ -1006,7 +1006,7 @@ pub fn readFromMemory( .storage = .{ .elems = field_vals }, } }))); }, - .Packed => { + .@"packed" => { const byte_count = (@as(usize, @intCast(ty.bitSize(mod))) + 7) / 8; return readFromPackedMemory(ty, mod, buffer[0..byte_count], 0, arena); }, @@ -1025,8 +1025,8 @@ pub fn readFromMemory( } }))); }, .Union => switch (ty.containerLayout(mod)) { - .Auto => return error.IllDefinedMemoryLayout, - .Extern => { + .auto => return error.IllDefinedMemoryLayout, + .@"extern" => { const union_size = ty.abiSize(mod); const array_ty = try mod.arrayType(.{ .len = union_size, .child = .u8_type }); const val = try (try readFromMemory(array_ty, mod, buffer, arena)).intern(array_ty, mod); @@ -1036,7 +1036,7 @@ pub fn readFromMemory( .val = val, } }))); }, - .Packed => { + .@"packed" => { const byte_count = (@as(usize, @intCast(ty.bitSize(mod))) + 7) / 8; return readFromPackedMemory(ty, mod, buffer[0..byte_count], 0, arena); }, @@ -1177,8 +1177,8 @@ pub fn readFromPackedMemory( } }))); }, .Union => switch (ty.containerLayout(mod)) { - .Auto, .Extern => unreachable, // Handled by non-packed readFromMemory - .Packed => { + .auto, .@"extern" => unreachable, // Handled by non-packed readFromMemory + .@"packed" => { const backing_ty = try ty.unionBackingType(mod); const val = (try readFromPackedMemory(backing_ty, mod, buffer, bit_offset, arena)).toIntern(); return Value.fromInterned((try mod.intern(.{ .un = .{ @@ -4064,7 +4064,7 @@ fn dbHelper(self: *Value, tag_to_payload_map: *map: { .alignment = 0, }; break :map @Type(.{ .Struct = .{ - .layout = .Extern, + .layout = .@"extern", .fields = &fields, .decls = &.{}, .is_tuple = false, diff --git a/src/arch/aarch64/CodeGen.zig b/src/arch/aarch64/CodeGen.zig index 4cd065d61a..59a9fb31aa 100644 --- a/src/arch/aarch64/CodeGen.zig +++ b/src/arch/aarch64/CodeGen.zig @@ -815,10 +815,10 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void { .call_never_tail => try self.airCall(inst, .never_tail), .call_never_inline => try self.airCall(inst, .never_inline), - .atomic_store_unordered => try self.airAtomicStore(inst, .Unordered), - .atomic_store_monotonic => try self.airAtomicStore(inst, .Monotonic), - .atomic_store_release => try self.airAtomicStore(inst, .Release), - .atomic_store_seq_cst => try self.airAtomicStore(inst, .SeqCst), + .atomic_store_unordered => try self.airAtomicStore(inst, .unordered), + .atomic_store_monotonic => try self.airAtomicStore(inst, .monotonic), + .atomic_store_release => try self.airAtomicStore(inst, .release), + .atomic_store_seq_cst => try self.airAtomicStore(inst, .seq_cst), .struct_field_ptr_index_0 => try self.airStructFieldPtrIndex(inst, 0), .struct_field_ptr_index_1 => try self.airStructFieldPtrIndex(inst, 1), diff --git a/src/arch/aarch64/abi.zig b/src/arch/aarch64/abi.zig index d85f67aaa9..5bc452a493 100644 --- a/src/arch/aarch64/abi.zig +++ b/src/arch/aarch64/abi.zig @@ -21,7 +21,7 @@ pub fn classifyType(ty: Type, mod: *Module) Class { var maybe_float_bits: ?u16 = null; switch (ty.zigTypeTag(mod)) { .Struct => { - if (ty.containerLayout(mod) == .Packed) return .byval; + if (ty.containerLayout(mod) == .@"packed") return .byval; const float_count = countFloats(ty, mod, &maybe_float_bits); if (float_count <= sret_float_count) return .{ .float_array = float_count }; @@ -31,7 +31,7 @@ pub fn classifyType(ty: Type, mod: *Module) Class { return .integer; }, .Union => { - if (ty.containerLayout(mod) == .Packed) return .byval; + if (ty.containerLayout(mod) == .@"packed") return .byval; const float_count = countFloats(ty, mod, &maybe_float_bits); if (float_count <= sret_float_count) return .{ .float_array = float_count }; diff --git a/src/arch/arm/CodeGen.zig b/src/arch/arm/CodeGen.zig index 638a8543fb..43ffd11097 100644 --- a/src/arch/arm/CodeGen.zig +++ b/src/arch/arm/CodeGen.zig @@ -801,10 +801,10 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void { .call_never_tail => try self.airCall(inst, .never_tail), .call_never_inline => try self.airCall(inst, .never_inline), - .atomic_store_unordered => try self.airAtomicStore(inst, .Unordered), - .atomic_store_monotonic => try self.airAtomicStore(inst, .Monotonic), - .atomic_store_release => try self.airAtomicStore(inst, .Release), - .atomic_store_seq_cst => try self.airAtomicStore(inst, .SeqCst), + .atomic_store_unordered => try self.airAtomicStore(inst, .unordered), + .atomic_store_monotonic => try self.airAtomicStore(inst, .monotonic), + .atomic_store_release => try self.airAtomicStore(inst, .release), + .atomic_store_seq_cst => try self.airAtomicStore(inst, .seq_cst), .struct_field_ptr_index_0 => try self.airStructFieldPtrIndex(inst, 0), .struct_field_ptr_index_1 => try self.airStructFieldPtrIndex(inst, 1), diff --git a/src/arch/arm/abi.zig b/src/arch/arm/abi.zig index ffb5c7ae3a..a6581c8dd8 100644 --- a/src/arch/arm/abi.zig +++ b/src/arch/arm/abi.zig @@ -33,7 +33,7 @@ pub fn classifyType(ty: Type, mod: *Module, ctx: Context) Class { switch (ty.zigTypeTag(mod)) { .Struct => { const bit_size = ty.bitSize(mod); - if (ty.containerLayout(mod) == .Packed) { + if (ty.containerLayout(mod) == .@"packed") { if (bit_size > 64) return .memory; return .byval; } @@ -56,7 +56,7 @@ pub fn classifyType(ty: Type, mod: *Module, ctx: Context) Class { .Union => { const bit_size = ty.bitSize(mod); const union_obj = mod.typeToUnion(ty).?; - if (union_obj.getLayout(ip) == .Packed) { + if (union_obj.getLayout(ip) == .@"packed") { if (bit_size > 64) return .memory; return .byval; } diff --git a/src/arch/riscv64/CodeGen.zig b/src/arch/riscv64/CodeGen.zig index 78a3638e19..9e4870222d 100644 --- a/src/arch/riscv64/CodeGen.zig +++ b/src/arch/riscv64/CodeGen.zig @@ -634,10 +634,10 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void { .call_never_tail => try self.airCall(inst, .never_tail), .call_never_inline => try self.airCall(inst, .never_inline), - .atomic_store_unordered => try self.airAtomicStore(inst, .Unordered), - .atomic_store_monotonic => try self.airAtomicStore(inst, .Monotonic), - .atomic_store_release => try self.airAtomicStore(inst, .Release), - .atomic_store_seq_cst => try self.airAtomicStore(inst, .SeqCst), + .atomic_store_unordered => try self.airAtomicStore(inst, .unordered), + .atomic_store_monotonic => try self.airAtomicStore(inst, .monotonic), + .atomic_store_release => try self.airAtomicStore(inst, .release), + .atomic_store_seq_cst => try self.airAtomicStore(inst, .seq_cst), .struct_field_ptr_index_0 => try self.airStructFieldPtrIndex(inst, 0), .struct_field_ptr_index_1 => try self.airStructFieldPtrIndex(inst, 1), diff --git a/src/arch/riscv64/abi.zig b/src/arch/riscv64/abi.zig index da74734de4..be3ac590a2 100644 --- a/src/arch/riscv64/abi.zig +++ b/src/arch/riscv64/abi.zig @@ -15,7 +15,7 @@ pub fn classifyType(ty: Type, mod: *Module) Class { switch (ty.zigTypeTag(mod)) { .Struct => { const bit_size = ty.bitSize(mod); - if (ty.containerLayout(mod) == .Packed) { + if (ty.containerLayout(mod) == .@"packed") { if (bit_size > max_byval_size) return .memory; return .byval; } @@ -44,7 +44,7 @@ pub fn classifyType(ty: Type, mod: *Module) Class { }, .Union => { const bit_size = ty.bitSize(mod); - if (ty.containerLayout(mod) == .Packed) { + if (ty.containerLayout(mod) == .@"packed") { if (bit_size > max_byval_size) return .memory; return .byval; } diff --git a/src/arch/wasm/CodeGen.zig b/src/arch/wasm/CodeGen.zig index e940e37619..a2bcb1cf6a 100644 --- a/src/arch/wasm/CodeGen.zig +++ b/src/arch/wasm/CodeGen.zig @@ -1018,7 +1018,7 @@ fn typeToValtype(ty: Type, mod: *Module) wasm.Valtype { .unrolled => wasm.Valtype.i32, }, .Union => switch (ty.containerLayout(mod)) { - .Packed => { + .@"packed" => { const int_ty = mod.intType(.unsigned, @as(u16, @intCast(ty.bitSize(mod)))) catch @panic("out of memory"); return typeToValtype(int_ty, mod); }, @@ -1737,7 +1737,7 @@ fn isByRef(ty: Type, mod: *Module) bool { => return ty.hasRuntimeBitsIgnoreComptime(mod), .Union => { if (mod.typeToUnion(ty)) |union_obj| { - if (union_obj.getLayout(ip) == .Packed) { + if (union_obj.getLayout(ip) == .@"packed") { return ty.abiSize(mod) > 8; } } @@ -3097,7 +3097,7 @@ fn lowerParentPtr(func: *CodeGen, ptr_val: Value, offset: u32) InnerError!WValue break :blk parent_ty.structFieldOffset(field_index, mod); }, .Union => switch (parent_ty.containerLayout(mod)) { - .Packed => 0, + .@"packed" => 0, else => blk: { const layout: Module.UnionLayout = parent_ty.unionGetLayout(mod); if (layout.payload_size == 0) break :blk 0; @@ -3358,7 +3358,7 @@ fn lowerConstant(func: *CodeGen, val: Value, ty: Type) InnerError!WValue { const struct_type = ip.loadStructType(ty.toIntern()); // non-packed structs are not handled in this function because they // are by-ref types. - assert(struct_type.layout == .Packed); + assert(struct_type.layout == .@"packed"); var buf: [8]u8 = .{0} ** 8; // zero the buffer so we do not read 0xaa as integer val.writeToPackedMemory(ty, mod, &buf, 0) catch unreachable; const backing_int_ty = Type.fromInterned(struct_type.backingIntType(ip).*); @@ -3890,7 +3890,7 @@ fn structFieldPtr( const struct_ptr_ty_info = struct_ptr_ty.ptrInfo(mod); const offset = switch (struct_ty.containerLayout(mod)) { - .Packed => switch (struct_ty.zigTypeTag(mod)) { + .@"packed" => switch (struct_ty.zigTypeTag(mod)) { .Struct => offset: { if (result_ty.ptrInfo(mod).packed_offset.host_size != 0) { break :offset @as(u32, 0); @@ -3928,7 +3928,7 @@ fn airStructFieldVal(func: *CodeGen, inst: Air.Inst.Index) InnerError!void { if (!field_ty.hasRuntimeBitsIgnoreComptime(mod)) return func.finishAir(inst, .none, &.{struct_field.struct_operand}); const result = switch (struct_ty.containerLayout(mod)) { - .Packed => switch (struct_ty.zigTypeTag(mod)) { + .@"packed" => switch (struct_ty.zigTypeTag(mod)) { .Struct => result: { const packed_struct = mod.typeToPackedStruct(struct_ty).?; const offset = mod.structPackedFieldBitOffset(packed_struct, field_index); @@ -5321,7 +5321,7 @@ fn airAggregateInit(func: *CodeGen, inst: Air.Inst.Index) InnerError!void { break :result_value result; }, .Struct => switch (result_ty.containerLayout(mod)) { - .Packed => { + .@"packed" => { if (isByRef(result_ty, mod)) { return func.fail("TODO: airAggregateInit for packed structs larger than 64 bits", .{}); } diff --git a/src/arch/wasm/abi.zig b/src/arch/wasm/abi.zig index 9c3fd8260d..7ca0f9f245 100644 --- a/src/arch/wasm/abi.zig +++ b/src/arch/wasm/abi.zig @@ -29,7 +29,7 @@ pub fn classifyType(ty: Type, mod: *Module) [2]Class { switch (ty.zigTypeTag(mod)) { .Struct => { const struct_type = mod.typeToStruct(ty).?; - if (struct_type.layout == .Packed) { + if (struct_type.layout == .@"packed") { if (ty.bitSize(mod) <= 64) return direct; return .{ .direct, .direct }; } @@ -70,7 +70,7 @@ pub fn classifyType(ty: Type, mod: *Module) [2]Class { }, .Union => { const union_obj = mod.typeToUnion(ty).?; - if (union_obj.getLayout(ip) == .Packed) { + if (union_obj.getLayout(ip) == .@"packed") { if (ty.bitSize(mod) <= 64) return direct; return .{ .direct, .direct }; } @@ -113,7 +113,7 @@ pub fn scalarType(ty: Type, mod: *Module) Type { }, .Union => { const union_obj = mod.typeToUnion(ty).?; - if (union_obj.getLayout(ip) != .Packed) { + if (union_obj.getLayout(ip) != .@"packed") { const layout = mod.getUnionLayout(union_obj); if (layout.payload_size == 0 and layout.tag_size != 0) { return scalarType(ty.unionTagTypeSafety(mod).?, mod); diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig index 397dd3ab5f..7db294a37b 100644 --- a/src/arch/x86_64/CodeGen.zig +++ b/src/arch/x86_64/CodeGen.zig @@ -2111,10 +2111,10 @@ fn genBody(self: *Self, body: []const Air.Inst.Index) InnerError!void { .call_never_tail => try self.airCall(inst, .never_tail), .call_never_inline => try self.airCall(inst, .never_inline), - .atomic_store_unordered => try self.airAtomicStore(inst, .Unordered), - .atomic_store_monotonic => try self.airAtomicStore(inst, .Monotonic), - .atomic_store_release => try self.airAtomicStore(inst, .Release), - .atomic_store_seq_cst => try self.airAtomicStore(inst, .SeqCst), + .atomic_store_unordered => try self.airAtomicStore(inst, .unordered), + .atomic_store_monotonic => try self.airAtomicStore(inst, .monotonic), + .atomic_store_release => try self.airAtomicStore(inst, .release), + .atomic_store_seq_cst => try self.airAtomicStore(inst, .seq_cst), .struct_field_ptr_index_0 => try self.airStructFieldPtrIndex(inst, 0), .struct_field_ptr_index_1 => try self.airStructFieldPtrIndex(inst, 1), @@ -7962,8 +7962,8 @@ fn airStructFieldVal(self: *Self, inst: Air.Inst.Index) !void { const src_mcv = try self.resolveInst(operand); const field_off: u32 = switch (container_ty.containerLayout(mod)) { - .Auto, .Extern => @intCast(container_ty.structFieldOffset(index, mod) * 8), - .Packed => if (mod.typeToStruct(container_ty)) |struct_type| + .auto, .@"extern" => @intCast(container_ty.structFieldOffset(index, mod) * 8), + .@"packed" => if (mod.typeToStruct(container_ty)) |struct_type| mod.structPackedFieldBitOffset(struct_type, index) else 0, @@ -11977,9 +11977,9 @@ fn airFrameAddress(self: *Self, inst: Air.Inst.Index) !void { fn airFence(self: *Self, inst: Air.Inst.Index) !void { const order = self.air.instructions.items(.data)[@intFromEnum(inst)].fence; switch (order) { - .Unordered, .Monotonic => unreachable, - .Acquire, .Release, .AcqRel => {}, - .SeqCst => try self.asmOpOnly(.{ ._, .mfence }), + .unordered, .monotonic => unreachable, + .acquire, .release, .acq_rel => {}, + .seq_cst => try self.asmOpOnly(.{ ._, .mfence }), } self.finishAirBookkeeping(); } @@ -15747,9 +15747,9 @@ fn atomicOp( .Xor => .xor, else => unreachable, } else switch (order) { - .Unordered, .Monotonic, .Release, .AcqRel => .mov, - .Acquire => unreachable, - .SeqCst => .xchg, + .unordered, .monotonic, .release, .acq_rel => .mov, + .acquire => unreachable, + .seq_cst => .xchg, }; const dst_reg = try self.register_manager.allocReg(null, abi.RegisterClass.gp); @@ -17979,7 +17979,7 @@ fn airAggregateInit(self: *Self, inst: Air.Inst.Index) !void { switch (result_ty.zigTypeTag(mod)) { .Struct => { const frame_index = try self.allocFrameIndex(FrameAlloc.initSpill(result_ty, mod)); - if (result_ty.containerLayout(mod) == .Packed) { + if (result_ty.containerLayout(mod) == .@"packed") { const struct_type = mod.typeToStruct(result_ty).?; try self.genInlineMemset( .{ .lea_frame = .{ .index = frame_index } }, diff --git a/src/arch/x86_64/Emit.zig b/src/arch/x86_64/Emit.zig index 0975104db3..ae54904aaf 100644 --- a/src/arch/x86_64/Emit.zig +++ b/src/arch/x86_64/Emit.zig @@ -110,7 +110,7 @@ pub fn emitMir(emit: *Emit) Error!void { const is_obj_or_static_lib = switch (emit.lower.output_mode) { .Exe => false, .Obj => true, - .Lib => emit.lower.link_mode == .Static, + .Lib => emit.lower.link_mode == .static, }; const atom = elf_file.symbol(data.atom_index).atom(elf_file).?; const sym_index = elf_file.zigObjectPtr().?.symbol(data.sym_index); @@ -158,7 +158,7 @@ pub fn emitMir(emit: *Emit) Error!void { const is_obj_or_static_lib = switch (emit.lower.output_mode) { .Exe => false, .Obj => true, - .Lib => emit.lower.link_mode == .Static, + .Lib => emit.lower.link_mode == .static, }; const atom = macho_file.getSymbol(data.atom_index).getAtom(macho_file).?; const sym_index = macho_file.getZigObject().?.symbols.items[data.sym_index]; diff --git a/src/arch/x86_64/Lower.zig b/src/arch/x86_64/Lower.zig index 13b97b551a..578fc022a0 100644 --- a/src/arch/x86_64/Lower.zig +++ b/src/arch/x86_64/Lower.zig @@ -329,7 +329,7 @@ fn emit(lower: *Lower, prefix: Prefix, mnemonic: Mnemonic, ops: []const Operand) const is_obj_or_static_lib = switch (lower.output_mode) { .Exe => false, .Obj => true, - .Lib => lower.link_mode == .Static, + .Lib => lower.link_mode == .static, }; const emit_prefix = prefix; diff --git a/src/arch/x86_64/abi.zig b/src/arch/x86_64/abi.zig index 601fc1933e..f54a98e08f 100644 --- a/src/arch/x86_64/abi.zig +++ b/src/arch/x86_64/abi.zig @@ -42,7 +42,7 @@ pub fn classifyWindows(ty: Type, mod: *Module) Class { 1, 2, 4, 8 => return .integer, else => switch (ty.zigTypeTag(mod)) { .Int => return .win_i128, - .Struct, .Union => if (ty.containerLayout(mod) == .Packed) { + .Struct, .Union => if (ty.containerLayout(mod) == .@"packed") { return .win_i128; } else { return .memory; @@ -238,7 +238,7 @@ pub fn classifySystemV(ty: Type, mod: *Module, ctx: Context) [8]Class { // separately.". const struct_type = mod.typeToStruct(ty).?; const ty_size = ty.abiSize(mod); - if (struct_type.layout == .Packed) { + if (struct_type.layout == .@"packed") { assert(ty_size <= 16); result[0] = .integer; if (ty_size > 8) result[1] = .integer; @@ -356,7 +356,7 @@ pub fn classifySystemV(ty: Type, mod: *Module, ctx: Context) [8]Class { // separately.". const union_obj = mod.typeToUnion(ty).?; const ty_size = mod.unionAbiSize(union_obj); - if (union_obj.getLayout(ip) == .Packed) { + if (union_obj.getLayout(ip) == .@"packed") { assert(ty_size <= 16); result[0] = .integer; if (ty_size > 8) result[1] = .integer; diff --git a/src/codegen.zig b/src/codegen.zig index 2412b50cc1..c18bdca433 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -513,7 +513,7 @@ pub fn generateSymbol( .struct_type => { const struct_type = ip.loadStructType(typed_value.ty.toIntern()); switch (struct_type.layout) { - .Packed => { + .@"packed" => { const abi_size = math.cast(usize, typed_value.ty.abiSize(mod)) orelse return error.Overflow; const current_pos = code.items.len; @@ -550,7 +550,7 @@ pub fn generateSymbol( bits += @as(u16, @intCast(Type.fromInterned(field_ty).bitSize(mod))); } }, - .Auto, .Extern => { + .auto, .@"extern" => { const struct_begin = code.items.len; const field_types = struct_type.field_types.get(ip); const offsets = struct_type.offsets.get(ip); @@ -736,11 +736,11 @@ fn lowerParentPtr( .anon_struct_type, .union_type, => switch (Type.fromInterned(base_ty).containerLayout(mod)) { - .Auto, .Extern => @intCast(Type.fromInterned(base_ty).structFieldOffset( + .auto, .@"extern" => @intCast(Type.fromInterned(base_ty).structFieldOffset( @intCast(field.index), mod, )), - .Packed => if (mod.typeToStruct(Type.fromInterned(base_ty))) |struct_obj| + .@"packed" => if (mod.typeToStruct(Type.fromInterned(base_ty))) |struct_obj| if (Type.fromInterned(ptr.ty).ptrInfo(mod).packed_offset.host_size == 0) @divExact(Type.fromInterned(base_ptr_ty).ptrInfo(mod) .packed_offset.bit_offset + mod.structPackedFieldBitOffset( diff --git a/src/codegen/c.zig b/src/codegen/c.zig index abbf7501fc..8d630480e2 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -890,7 +890,7 @@ pub const DeclGen = struct { return writer.writeAll(" }"); }, .Struct => switch (ty.containerLayout(mod)) { - .Auto, .Extern => { + .auto, .@"extern" => { if (!location.isInitializer()) { try writer.writeByte('('); try dg.renderType(writer, ty); @@ -912,7 +912,7 @@ pub const DeclGen = struct { return writer.writeByte('}'); }, - .Packed => return writer.print("{x}", .{try dg.fmtIntLiteral(ty, Value.undef, .Other)}), + .@"packed" => return writer.print("{x}", .{try dg.fmtIntLiteral(ty, Value.undef, .Other)}), }, .Union => { if (!location.isInitializer()) { @@ -1379,7 +1379,7 @@ pub const DeclGen = struct { .struct_type => { const struct_type = ip.loadStructType(ty.toIntern()); switch (struct_type.layout) { - .Auto, .Extern => { + .auto, .@"extern" => { if (!location.isInitializer()) { try writer.writeByte('('); try dg.renderType(writer, ty); @@ -1408,7 +1408,7 @@ pub const DeclGen = struct { } try writer.writeByte('}'); }, - .Packed => { + .@"packed" => { const int_info = ty.intInfo(mod); const bits = Type.smallestUnsignedBits(int_info.bits - 1); @@ -1517,7 +1517,7 @@ pub const DeclGen = struct { if (un.tag == .none) { const backing_ty = try ty.unionBackingType(mod); switch (union_obj.getLayout(ip)) { - .Packed => { + .@"packed" => { if (!location.isInitializer()) { try writer.writeByte('('); try dg.renderType(writer, backing_ty); @@ -1525,7 +1525,7 @@ pub const DeclGen = struct { } try dg.renderValue(writer, backing_ty, Value.fromInterned(un.val), initializer_type); }, - .Extern => { + .@"extern" => { if (location == .StaticInitializer) { return dg.fail("TODO: C backend: implement extern union backing type rendering in static initializers", .{}); } @@ -1551,7 +1551,7 @@ pub const DeclGen = struct { const field_index = mod.unionTagFieldIndex(union_obj, Value.fromInterned(un.tag)).?; const field_ty = Type.fromInterned(union_obj.field_types.get(ip)[field_index]); const field_name = union_obj.loadTagType(ip).names.get(ip)[field_index]; - if (union_obj.getLayout(ip) == .Packed) { + if (union_obj.getLayout(ip) == .@"packed") { if (field_ty.hasRuntimeBits(mod)) { if (field_ty.isPtrAtRuntime(mod)) { try writer.writeByte('('); @@ -1999,7 +1999,7 @@ pub const DeclGen = struct { try fwd.writeAll(if (is_global) "zig_extern " else "static "); const maybe_exports = dg.module.decl_exports.get(decl_index); const export_weak_linkage = if (maybe_exports) |exports| - exports.items[0].opts.linkage == .Weak + exports.items[0].opts.linkage == .weak else false; if (variable.is_weak_linkage or export_weak_linkage) try fwd.writeAll("zig_weak_linkage "); @@ -2689,7 +2689,7 @@ fn genExports(o: *Object) !void { const is_variable_const = switch (ip.indexToKey(tv.val.toIntern())) { .func => return for (exports.items[1..], 1..) |@"export", i| { try fwd.writeAll("zig_extern "); - if (@"export".opts.linkage == .Weak) try fwd.writeAll("zig_weak_linkage_fn "); + if (@"export".opts.linkage == .weak) try fwd.writeAll("zig_weak_linkage_fn "); try o.dg.renderFunctionSignature( fwd, decl_index, @@ -2707,7 +2707,7 @@ fn genExports(o: *Object) !void { }; for (exports.items[1..]) |@"export"| { try fwd.writeAll("zig_extern "); - if (@"export".opts.linkage == .Weak) try fwd.writeAll("zig_weak_linkage "); + if (@"export".opts.linkage == .weak) try fwd.writeAll("zig_weak_linkage "); const export_name = ip.stringToSlice(@"export".opts.name); try o.dg.renderTypeAndName( fwd, @@ -2842,7 +2842,7 @@ pub fn genFunc(f: *Function) !void { try fwd_decl_writer.writeAll(if (is_global) "zig_extern " else "static "); if (mod.decl_exports.get(decl_index)) |exports| - if (exports.items[0].opts.linkage == .Weak) try fwd_decl_writer.writeAll("zig_weak_linkage_fn "); + if (exports.items[0].opts.linkage == .weak) try fwd_decl_writer.writeAll("zig_weak_linkage_fn "); try o.dg.renderFunctionSignature(fwd_decl_writer, decl_index, .forward, .{ .export_index = 0 }); try fwd_decl_writer.writeAll(";\n"); try genExports(o); @@ -3278,10 +3278,10 @@ fn genBodyInner(f: *Function, body: []const Air.Inst.Index) error{ AnalysisFail, .int_from_ptr => try airIntFromPtr(f, inst), - .atomic_store_unordered => try airAtomicStore(f, inst, toMemoryOrder(.Unordered)), - .atomic_store_monotonic => try airAtomicStore(f, inst, toMemoryOrder(.Monotonic)), - .atomic_store_release => try airAtomicStore(f, inst, toMemoryOrder(.Release)), - .atomic_store_seq_cst => try airAtomicStore(f, inst, toMemoryOrder(.SeqCst)), + .atomic_store_unordered => try airAtomicStore(f, inst, toMemoryOrder(.unordered)), + .atomic_store_monotonic => try airAtomicStore(f, inst, toMemoryOrder(.monotonic)), + .atomic_store_release => try airAtomicStore(f, inst, toMemoryOrder(.release)), + .atomic_store_seq_cst => try airAtomicStore(f, inst, toMemoryOrder(.seq_cst)), .struct_field_ptr_index_0 => try airStructFieldPtrIndex(f, inst, 0), .struct_field_ptr_index_1 => try airStructFieldPtrIndex(f, inst, 1), @@ -5497,7 +5497,7 @@ fn fieldLocation( .Union => { const union_obj = mod.typeToUnion(container_ty).?; return switch (union_obj.getLayout(ip)) { - .Auto, .Extern => { + .auto, .@"extern" => { const field_ty = Type.fromInterned(union_obj.field_types.get(ip)[field_index]); if (!field_ty.hasRuntimeBitsIgnoreComptime(mod)) return if (container_ty.unionTagTypeSafety(mod) != null and @@ -5511,7 +5511,7 @@ fn fieldLocation( else .{ .identifier = ip.stringToSlice(field_name) } }; }, - .Packed => .begin, + .@"packed" => .begin, }; }, .Pointer => switch (container_ty.ptrSize(mod)) { @@ -5671,11 +5671,11 @@ fn airStructFieldVal(f: *Function, inst: Air.Inst.Index) !CValue { const field_name: CValue = switch (mod.intern_pool.indexToKey(struct_ty.ip_index)) { .struct_type => switch (struct_ty.containerLayout(mod)) { - .Auto, .Extern => if (struct_ty.isSimpleTuple(mod)) + .auto, .@"extern" => if (struct_ty.isSimpleTuple(mod)) .{ .field = extra.field_index } else .{ .identifier = ip.stringToSlice(struct_ty.legacyStructFieldName(extra.field_index, mod)) }, - .Packed => { + .@"packed" => { const struct_type = mod.typeToStruct(struct_ty).?; const int_info = struct_ty.intInfo(mod); @@ -5740,7 +5740,7 @@ fn airStructFieldVal(f: *Function, inst: Air.Inst.Index) !CValue { .union_type => field_name: { const union_obj = ip.loadUnionType(struct_ty.toIntern()); - if (union_obj.flagsPtr(ip).layout == .Packed) { + if (union_obj.flagsPtr(ip).layout == .@"packed") { const operand_lval = if (struct_byval == .constant) blk: { const operand_local = try f.allocLocal(inst, struct_ty); try f.writeCValue(writer, operand_local, .Other); @@ -7081,7 +7081,7 @@ fn airAggregateInit(f: *Function, inst: Air.Inst.Index) !CValue { } }, .Struct => switch (inst_ty.containerLayout(mod)) { - .Auto, .Extern => for (resolved_elements, 0..) |element, field_index| { + .auto, .@"extern" => for (resolved_elements, 0..) |element, field_index| { if (inst_ty.structFieldIsComptime(field_index, mod)) continue; const field_ty = inst_ty.structFieldType(field_index, mod); if (!field_ty.hasRuntimeBitsIgnoreComptime(mod)) continue; @@ -7095,7 +7095,7 @@ fn airAggregateInit(f: *Function, inst: Air.Inst.Index) !CValue { try f.writeCValue(writer, element, .Other); try a.end(f, writer); }, - .Packed => { + .@"packed" => { try f.writeCValue(writer, local, .Other); try writer.writeAll(" = "); const int_info = inst_ty.intInfo(mod); @@ -7181,7 +7181,7 @@ fn airUnionInit(f: *Function, inst: Air.Inst.Index) !CValue { const writer = f.object.writer(); const local = try f.allocLocal(inst, union_ty); - if (union_obj.getLayout(ip) == .Packed) { + if (union_obj.getLayout(ip) == .@"packed") { try f.writeCValue(writer, local, .Other); try writer.writeAll(" = "); try f.writeCValue(writer, payload, .Initializer); @@ -7482,11 +7482,11 @@ fn airCVaCopy(f: *Function, inst: Air.Inst.Index) !CValue { fn toMemoryOrder(order: std.builtin.AtomicOrder) [:0]const u8 { return switch (order) { // Note: unordered is actually even less atomic than relaxed - .Unordered, .Monotonic => "zig_memory_order_relaxed", - .Acquire => "zig_memory_order_acquire", - .Release => "zig_memory_order_release", - .AcqRel => "zig_memory_order_acq_rel", - .SeqCst => "zig_memory_order_seq_cst", + .unordered, .monotonic => "zig_memory_order_relaxed", + .acquire => "zig_memory_order_acquire", + .release => "zig_memory_order_release", + .acq_rel => "zig_memory_order_acq_rel", + .seq_cst => "zig_memory_order_seq_cst", }; } diff --git a/src/codegen/c/type.zig b/src/codegen/c/type.zig index b85daddbda..66f92c930d 100644 --- a/src/codegen/c/type.zig +++ b/src/codegen/c/type.zig @@ -1495,7 +1495,7 @@ pub const CType = extern union { } }, - .Struct, .Union => |zig_ty_tag| if (ty.containerLayout(mod) == .Packed) { + .Struct, .Union => |zig_ty_tag| if (ty.containerLayout(mod) == .@"packed") { if (mod.typeToPackedStruct(ty)) |packed_struct| { try self.initType(Type.fromInterned(packed_struct.backingIntType(ip).*), kind, lookup); } else { diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig index 8f69dbc7e9..2a5a187e0d 100644 --- a/src/codegen/llvm.zig +++ b/src/codegen/llvm.zig @@ -1278,7 +1278,7 @@ pub const Object = struct { const reloc_mode: llvm.RelocMode = if (pic) .PIC - else if (self.module.comp.config.link_mode == .Dynamic) + else if (self.module.comp.config.link_mode == .dynamic) llvm.RelocMode.DynamicNoPIC else .Static; @@ -1873,10 +1873,10 @@ pub const Object = struct { if (comp.config.dll_export_fns) global_index.setDllStorageClass(.dllexport, &o.builder); global_index.setLinkage(switch (exports[0].opts.linkage) { - .Internal => unreachable, - .Strong => .external, - .Weak => .weak_odr, - .LinkOnce => .linkonce_odr, + .internal => unreachable, + .strong => .external, + .weak => .weak_odr, + .link_once => .linkonce_odr, }, &o.builder); global_index.setVisibility(switch (exports[0].opts.visibility) { .default => .default, @@ -3327,7 +3327,7 @@ pub const Object = struct { const struct_type = ip.loadStructType(t.toIntern()); - if (struct_type.layout == .Packed) { + if (struct_type.layout == .@"packed") { const int_ty = try o.lowerType(Type.fromInterned(struct_type.backingIntType(ip).*)); try o.type_map.put(o.gpa, t.toIntern(), int_ty); return int_ty; @@ -3477,7 +3477,7 @@ pub const Object = struct { const union_obj = ip.loadUnionType(t.toIntern()); const layout = mod.getUnionLayout(union_obj); - if (union_obj.flagsPtr(ip).layout == .Packed) { + if (union_obj.flagsPtr(ip).layout == .@"packed") { const int_ty = try o.builder.intType(@intCast(t.bitSize(mod))); try o.type_map.put(o.gpa, t.toIntern(), int_ty); return int_ty; @@ -4038,7 +4038,7 @@ pub const Object = struct { const struct_type = ip.loadStructType(ty.toIntern()); assert(struct_type.haveLayout(ip)); const struct_ty = try o.lowerType(ty); - if (struct_type.layout == .Packed) { + if (struct_type.layout == .@"packed") { comptime assert(Type.packed_struct_layout_version == 2); var running_int = try o.builder.intConst(struct_ty, 0); var running_bits: u16 = 0; @@ -4154,7 +4154,7 @@ pub const Object = struct { const payload = if (un.tag != .none) p: { const field_index = mod.unionTagFieldIndex(union_obj, Value.fromInterned(un.tag)).?; const field_ty = Type.fromInterned(union_obj.field_types.get(ip)[field_index]); - if (container_layout == .Packed) { + if (container_layout == .@"packed") { if (!field_ty.hasRuntimeBits(mod)) return o.builder.intConst(union_ty, 0); const small_int_val = try o.builder.castConst( if (field_ty.isPtrAtRuntime(mod)) .ptrtoint else .bitcast, @@ -4190,7 +4190,7 @@ pub const Object = struct { } else p: { assert(layout.tag_size == 0); const union_val = try o.lowerValue(un.val); - if (container_layout == .Packed) { + if (container_layout == .@"packed") { const bitcast_val = try o.builder.castConst( .bitcast, union_val, @@ -4324,7 +4324,7 @@ pub const Object = struct { const field_index: u32 = @intCast(field_ptr.index); switch (parent_ty.zigTypeTag(mod)) { .Union => { - if (parent_ty.containerLayout(mod) == .Packed) { + if (parent_ty.containerLayout(mod) == .@"packed") { return parent_ptr; } @@ -6531,7 +6531,7 @@ pub const FuncGen = struct { assert(!isByRef(field_ty, mod)); switch (struct_ty.zigTypeTag(mod)) { .Struct => switch (struct_ty.containerLayout(mod)) { - .Packed => { + .@"packed" => { const struct_type = mod.typeToStruct(struct_ty).?; const bit_offset = mod.structPackedFieldBitOffset(struct_type, field_index); const containing_int = struct_llvm_val; @@ -6558,7 +6558,7 @@ pub const FuncGen = struct { }, }, .Union => { - assert(struct_ty.containerLayout(mod) == .Packed); + assert(struct_ty.containerLayout(mod) == .@"packed"); const containing_int = struct_llvm_val; const elem_llvm_ty = try o.lowerType(field_ty); if (field_ty.zigTypeTag(mod) == .Float or field_ty.zigTypeTag(mod) == .Vector) { @@ -6581,7 +6581,7 @@ pub const FuncGen = struct { switch (struct_ty.zigTypeTag(mod)) { .Struct => { const layout = struct_ty.containerLayout(mod); - assert(layout != .Packed); + assert(layout != .@"packed"); const struct_llvm_ty = try o.lowerType(struct_ty); const llvm_field_index = o.llvmFieldIndex(struct_ty, field_index).?; const field_ptr = @@ -9995,7 +9995,7 @@ pub const FuncGen = struct { return running_int; } - assert(result_ty.containerLayout(mod) != .Packed); + assert(result_ty.containerLayout(mod) != .@"packed"); if (isByRef(result_ty, mod)) { // TODO in debug builds init to undef so that the padding will be 0xaa @@ -10080,7 +10080,7 @@ pub const FuncGen = struct { const layout = union_ty.unionGetLayout(mod); const union_obj = mod.typeToUnion(union_ty).?; - if (union_obj.getLayout(ip) == .Packed) { + if (union_obj.getLayout(ip) == .@"packed") { const big_bits = union_ty.bitSize(mod); const int_llvm_ty = try o.builder.intType(@intCast(big_bits)); const field_ty = Type.fromInterned(union_obj.field_types.get(ip)[extra.field_index]); @@ -10420,7 +10420,7 @@ pub const FuncGen = struct { const struct_ty = struct_ptr_ty.childType(mod); switch (struct_ty.zigTypeTag(mod)) { .Struct => switch (struct_ty.containerLayout(mod)) { - .Packed => { + .@"packed" => { const result_ty = self.typeOfIndex(inst); const result_ty_info = result_ty.ptrInfo(mod); const struct_ptr_ty_info = struct_ptr_ty.ptrInfo(mod); @@ -10462,7 +10462,7 @@ pub const FuncGen = struct { }, .Union => { const layout = struct_ty.unionGetLayout(mod); - if (layout.payload_size == 0 or struct_ty.containerLayout(mod) == .Packed) return struct_ptr; + if (layout.payload_size == 0 or struct_ty.containerLayout(mod) == .@"packed") return struct_ptr; const payload_index = @intFromBool(layout.tag_align.compare(.gte, layout.payload_align)); const union_llvm_ty = try o.lowerType(struct_ty); return self.wip.gepStruct(union_llvm_ty, struct_ptr, payload_index, ""); @@ -10801,12 +10801,12 @@ pub const FuncGen = struct { fn toLlvmAtomicOrdering(atomic_order: std.builtin.AtomicOrder) Builder.AtomicOrdering { return switch (atomic_order) { - .Unordered => .unordered, - .Monotonic => .monotonic, - .Acquire => .acquire, - .Release => .release, - .AcqRel => .acq_rel, - .SeqCst => .seq_cst, + .unordered => .unordered, + .monotonic => .monotonic, + .acquire => .acquire, + .release => .release, + .acq_rel => .acq_rel, + .seq_cst => .seq_cst, }; } @@ -11572,7 +11572,7 @@ fn isByRef(ty: Type, mod: *Module) bool { }; // Packed structs are represented to LLVM as integers. - if (struct_type.layout == .Packed) return false; + if (struct_type.layout == .@"packed") return false; const field_types = struct_type.field_types.get(ip); var it = struct_type.iterateRuntimeOrder(ip); @@ -11586,7 +11586,7 @@ fn isByRef(ty: Type, mod: *Module) bool { return false; }, .Union => switch (ty.containerLayout(mod)) { - .Packed => return false, + .@"packed" => return false, else => return ty.hasRuntimeBits(mod), }, .ErrorUnion => { @@ -11624,8 +11624,8 @@ fn isScalar(mod: *Module, ty: Type) bool { .Vector, => true, - .Struct => ty.containerLayout(mod) == .Packed, - .Union => ty.containerLayout(mod) == .Packed, + .Struct => ty.containerLayout(mod) == .@"packed", + .Union => ty.containerLayout(mod) == .@"packed", else => false, }; } diff --git a/src/codegen/llvm/Builder.zig b/src/codegen/llvm/Builder.zig index 859d02ce2e..c885261a24 100644 --- a/src/codegen/llvm/Builder.zig +++ b/src/codegen/llvm/Builder.zig @@ -8398,7 +8398,7 @@ pub const Metadata = enum(u32) { fmt_str = fmt_str ++ ")\n"; var fmt_args: @Type(.{ .Struct = .{ - .layout = .Auto, + .layout = .auto, .fields = &fields, .decls = &.{}, .is_tuple = false, diff --git a/src/codegen/llvm/bitcode_writer.zig b/src/codegen/llvm/bitcode_writer.zig index 414cdea682..0b821a32e7 100644 --- a/src/codegen/llvm/bitcode_writer.zig +++ b/src/codegen/llvm/bitcode_writer.zig @@ -415,8 +415,8 @@ fn BufType(comptime T: type, comptime min_len: usize) type { .Enum => |info| info.tag_type, .Bool => u1, .Struct => |info| switch (info.layout) { - .Auto, .Extern => @compileError("Unsupported type: " ++ @typeName(T)), - .Packed => std.meta.Int(.unsigned, @bitSizeOf(T)), + .auto, .@"extern" => @compileError("Unsupported type: " ++ @typeName(T)), + .@"packed" => std.meta.Int(.unsigned, @bitSizeOf(T)), }, else => @compileError("Unsupported type: " ++ @typeName(T)), }))); diff --git a/src/codegen/spirv.zig b/src/codegen/spirv.zig index e95ffee5c1..0b6951ab4f 100644 --- a/src/codegen/spirv.zig +++ b/src/codegen/spirv.zig @@ -979,7 +979,7 @@ const DeclGen = struct { }, .struct_type => { const struct_type = mod.typeToStruct(ty).?; - if (struct_type.layout == .Packed) { + if (struct_type.layout == .@"packed") { return self.todo("packed struct constants", .{}); } @@ -1275,7 +1275,7 @@ const DeclGen = struct { const ip = &mod.intern_pool; const union_obj = mod.typeToUnion(ty).?; - if (union_obj.getLayout(ip) == .Packed) { + if (union_obj.getLayout(ip) == .@"packed") { return self.todo("packed union types", .{}); } @@ -1532,7 +1532,7 @@ const DeclGen = struct { else => unreachable, }; - if (struct_type.layout == .Packed) { + if (struct_type.layout == .@"packed") { return try self.resolveType(Type.fromInterned(struct_type.backingIntType(ip).*), .direct); } @@ -3904,7 +3904,7 @@ const DeclGen = struct { const union_ty = mod.typeToUnion(ty).?; const tag_ty = Type.fromInterned(union_ty.enum_tag_ty); - if (union_ty.getLayout(ip) == .Packed) { + if (union_ty.getLayout(ip) == .@"packed") { unreachable; // TODO } @@ -3984,11 +3984,11 @@ const DeclGen = struct { switch (object_ty.zigTypeTag(mod)) { .Struct => switch (object_ty.containerLayout(mod)) { - .Packed => unreachable, // TODO + .@"packed" => unreachable, // TODO else => return try self.extractField(field_ty, object_id, field_index), }, .Union => switch (object_ty.containerLayout(mod)) { - .Packed => unreachable, // TODO + .@"packed" => unreachable, // TODO else => { // Store, ptr-elem-ptr, pointer-cast, load const layout = self.unionLayout(object_ty); @@ -4058,13 +4058,13 @@ const DeclGen = struct { const object_ty = object_ptr_ty.childType(mod); switch (object_ty.zigTypeTag(mod)) { .Struct => switch (object_ty.containerLayout(mod)) { - .Packed => unreachable, // TODO + .@"packed" => unreachable, // TODO else => { return try self.accessChain(result_ty_ref, object_ptr, &.{field_index}); }, }, .Union => switch (object_ty.containerLayout(mod)) { - .Packed => unreachable, // TODO + .@"packed" => unreachable, // TODO else => { const layout = self.unionLayout(object_ty); if (!layout.has_payload) { diff --git a/src/codegen/spirv/Section.zig b/src/codegen/spirv/Section.zig index 2ce11111a7..002dad2510 100644 --- a/src/codegen/spirv/Section.zig +++ b/src/codegen/spirv/Section.zig @@ -154,7 +154,7 @@ pub fn writeOperand(section: *Section, comptime Operand: type, operand: Operand) } }, .Struct => |info| { - if (info.layout == .Packed) { + if (info.layout == .@"packed") { section.writeWord(@as(Word, @bitCast(operand))); } else { section.writeExtendedMask(Operand, operand); @@ -288,7 +288,7 @@ fn operandSize(comptime Operand: type, operand: Operand) usize { } break :blk total; }, - .Struct => |info| if (info.layout == .Packed) 1 else extendedMaskSize(Operand, operand), + .Struct => |info| if (info.layout == .@"packed") 1 else extendedMaskSize(Operand, operand), .Union => extendedUnionSize(Operand, operand), else => unreachable, }, diff --git a/src/crash_report.zig b/src/crash_report.zig index d11897ec14..d05a950a46 100644 --- a/src/crash_report.zig +++ b/src/crash_report.zig @@ -376,7 +376,7 @@ const PanicSwitch = struct { }; state.* = new_state; - _ = panicking.fetchAdd(1, .SeqCst); + _ = panicking.fetchAdd(1, .seq_cst); state.recover_stage = .release_ref_count; @@ -458,7 +458,7 @@ const PanicSwitch = struct { noinline fn releaseRefCount(state: *volatile PanicState) noreturn { state.recover_stage = .abort; - if (panicking.fetchSub(1, .SeqCst) != 1) { + if (panicking.fetchSub(1, .seq_cst) != 1) { // Another thread is panicking, wait for the last one to finish // and call abort() diff --git a/src/glibc.zig b/src/glibc.zig index 5a2caa6809..9765e0ad78 100644 --- a/src/glibc.zig +++ b/src/glibc.zig @@ -1084,7 +1084,7 @@ fn buildSharedLib( const strip = comp.compilerRtStrip(); const config = try Compilation.Config.resolve(.{ .output_mode = .Lib, - .link_mode = .Dynamic, + .link_mode = .dynamic, .resolved_target = comp.root_mod.resolved_target, .is_test = false, .have_zcu = false, diff --git a/src/libcxx.zig b/src/libcxx.zig index 980836b682..dc1930be4d 100644 --- a/src/libcxx.zig +++ b/src/libcxx.zig @@ -115,7 +115,7 @@ pub fn buildLibCXX(comp: *Compilation, prog_node: *std.Progress.Node) !void { const root_name = "c++"; const output_mode = .Lib; - const link_mode = .Static; + const link_mode = .static; const target = comp.root_mod.resolved_target.result; const basename = try std.zig.binNameAlloc(arena, .{ .root_name = root_name, @@ -327,7 +327,7 @@ pub fn buildLibCXXABI(comp: *Compilation, prog_node: *std.Progress.Node) !void { const root_name = "c++abi"; const output_mode = .Lib; - const link_mode = .Static; + const link_mode = .static; const target = comp.root_mod.resolved_target.result; const basename = try std.zig.binNameAlloc(arena, .{ .root_name = root_name, diff --git a/src/libtsan.zig b/src/libtsan.zig index 95b44dad76..8f8ecce67d 100644 --- a/src/libtsan.zig +++ b/src/libtsan.zig @@ -27,7 +27,7 @@ pub fn buildTsan(comp: *Compilation, prog_node: *std.Progress.Node) BuildError!v const root_name = "tsan"; const output_mode = .Lib; - const link_mode = .Static; + const link_mode = .static; const target = comp.getTarget(); const basename = try std.zig.binNameAlloc(arena, .{ .root_name = root_name, diff --git a/src/libunwind.zig b/src/libunwind.zig index 8de6f5a99a..2fae6a65f9 100644 --- a/src/libunwind.zig +++ b/src/libunwind.zig @@ -62,7 +62,7 @@ pub fn buildStaticLib(comp: *Compilation, prog_node: *std.Progress.Node) !void { }); const root_name = "unwind"; - const link_mode = .Static; + const link_mode = .static; const target = comp.root_mod.resolved_target.result; const basename = try std.zig.binNameAlloc(arena, .{ .root_name = root_name, diff --git a/src/link.zig b/src/link.zig index be64325f30..631768a4de 100644 --- a/src/link.zig +++ b/src/link.zig @@ -287,8 +287,8 @@ pub const File = struct { switch (output_mode) { .Obj => return, .Lib => switch (link_mode) { - .Static => return, - .Dynamic => {}, + .static => return, + .dynamic => {}, }, .Exe => {}, } @@ -582,7 +582,7 @@ pub const File = struct { const use_lld = build_options.have_llvm and comp.config.use_lld; const output_mode = comp.config.output_mode; const link_mode = comp.config.link_mode; - if (use_lld and output_mode == .Lib and link_mode == .Static) { + if (use_lld and output_mode == .Lib and link_mode == .static) { return base.linkAsArchive(arena, prog_node); } switch (base.tag) { @@ -957,8 +957,8 @@ pub const File = struct { const executable_mode = if (builtin.target.os.tag == .windows) 0 else 0o777; switch (effectiveOutputMode(use_lld, output_mode)) { .Lib => return switch (link_mode) { - .Dynamic => executable_mode, - .Static => fs.File.default_mode, + .dynamic => executable_mode, + .static => fs.File.default_mode, }, .Exe => return executable_mode, .Obj => return fs.File.default_mode, @@ -966,7 +966,7 @@ pub const File = struct { } pub fn isStatic(self: File) bool { - return self.comp.config.link_mode == .Static; + return self.comp.config.link_mode == .static; } pub fn isObject(self: File) bool { diff --git a/src/link/Coff.zig b/src/link/Coff.zig index 5bf83b52ea..206cf7348c 100644 --- a/src/link/Coff.zig +++ b/src/link/Coff.zig @@ -1599,11 +1599,11 @@ pub fn updateExports( } } - if (exp.opts.linkage == .LinkOnce) { + if (exp.opts.linkage == .link_once) { try mod.failed_exports.putNoClobber(gpa, exp, try Module.ErrorMsg.create( gpa, exp.getSrcLoc(mod), - "Unimplemented: GlobalLinkage.LinkOnce", + "Unimplemented: GlobalLinkage.link_once", .{}, )); continue; @@ -1633,11 +1633,11 @@ pub fn updateExports( sym.type = atom.getSymbol(self).type; switch (exp.opts.linkage) { - .Strong => { + .strong => { sym.storage_class = .EXTERNAL; }, - .Internal => @panic("TODO Internal"), - .Weak => @panic("TODO WeakExternal"), + .internal => @panic("TODO Internal"), + .weak => @panic("TODO WeakExternal"), else => unreachable, } @@ -2275,7 +2275,7 @@ fn writeHeader(self: *Coff) !void { .p32 => flags.@"32BIT_MACHINE" = 1, .p64 => flags.LARGE_ADDRESS_AWARE = 1, } - if (self.base.comp.config.output_mode == .Lib and self.base.comp.config.link_mode == .Dynamic) { + if (self.base.comp.config.output_mode == .Lib and self.base.comp.config.link_mode == .dynamic) { flags.DLL = 1; } diff --git a/src/link/Coff/lld.zig b/src/link/Coff/lld.zig index 475090c31d..405c107628 100644 --- a/src/link/Coff/lld.zig +++ b/src/link/Coff/lld.zig @@ -45,7 +45,7 @@ pub fn linkWithLLD(self: *Coff, arena: Allocator, prog_node: *std.Progress.Node) defer sub_prog_node.end(); const is_lib = comp.config.output_mode == .Lib; - const is_dyn_lib = comp.config.link_mode == .Dynamic and is_lib; + const is_dyn_lib = comp.config.link_mode == .dynamic and is_lib; const is_exe_or_dyn_lib = is_dyn_lib or comp.config.output_mode == .Exe; const link_in_crt = comp.config.link_libc and is_exe_or_dyn_lib; const target = comp.root_mod.resolved_target.result; @@ -411,16 +411,16 @@ pub fn linkWithLLD(self: *Coff, arena: Allocator, prog_node: *std.Progress.Node) try argv.append(try comp.get_libc_crt_file(arena, "mingwex.lib")); } else { const lib_str = switch (comp.config.link_mode) { - .Dynamic => "", - .Static => "lib", + .dynamic => "", + .static => "lib", }; const d_str = switch (optimize_mode) { .Debug => "d", else => "", }; switch (comp.config.link_mode) { - .Static => try argv.append(try allocPrint(arena, "libcmt{s}.lib", .{d_str})), - .Dynamic => try argv.append(try allocPrint(arena, "msvcrt{s}.lib", .{d_str})), + .static => try argv.append(try allocPrint(arena, "libcmt{s}.lib", .{d_str})), + .dynamic => try argv.append(try allocPrint(arena, "msvcrt{s}.lib", .{d_str})), } try argv.append(try allocPrint(arena, "{s}vcruntime{s}.lib", .{ lib_str, d_str })); diff --git a/src/link/Dwarf.zig b/src/link/Dwarf.zig index ae14d16be2..9b6ff5d243 100644 --- a/src/link/Dwarf.zig +++ b/src/link/Dwarf.zig @@ -317,7 +317,7 @@ pub const DeclState = struct { try ty.print(dbg_info_buffer.writer(), mod); try dbg_info_buffer.append(0); - if (struct_type.layout == .Packed) { + if (struct_type.layout == .@"packed") { log.debug("TODO implement .debug_info for packed structs", .{}); break :blk; } diff --git a/src/link/Elf.zig b/src/link/Elf.zig index 85ef62b4bc..d26f49ca09 100644 --- a/src/link/Elf.zig +++ b/src/link/Elf.zig @@ -262,7 +262,7 @@ pub fn createEmpty( .sparc64 => 0x2000, else => 0x1000, }; - const is_dyn_lib = output_mode == .Lib and link_mode == .Dynamic; + const is_dyn_lib = output_mode == .Lib and link_mode == .dynamic; const default_sym_version: elf.Elf64_Versym = if (is_dyn_lib or comp.config.rdynamic) elf.VER_NDX_GLOBAL else @@ -349,7 +349,7 @@ pub fn createEmpty( } const is_obj = output_mode == .Obj; - const is_obj_or_ar = is_obj or (output_mode == .Lib and link_mode == .Static); + const is_obj_or_ar = is_obj or (output_mode == .Lib and link_mode == .static); // What path should this ELF linker code output to? // If using LLD to link, this code should produce an object file so that it @@ -1180,10 +1180,10 @@ pub fn flushModule(self: *Elf, arena: Allocator, prog_node: *std.Progress.Node) success: { if (!self.base.isStatic()) { - if (try self.accessLibPath(arena, &test_path, &checked_paths, lc.crt_dir.?, lib_name, .Dynamic)) + if (try self.accessLibPath(arena, &test_path, &checked_paths, lc.crt_dir.?, lib_name, .dynamic)) break :success; } - if (try self.accessLibPath(arena, &test_path, &checked_paths, lc.crt_dir.?, lib_name, .Static)) + if (try self.accessLibPath(arena, &test_path, &checked_paths, lc.crt_dir.?, lib_name, .static)) break :success; try self.reportMissingLibraryError( @@ -1211,8 +1211,8 @@ pub fn flushModule(self: *Elf, arena: Allocator, prog_node: *std.Progress.Node) }); } else if (target.isMusl()) { const path = try comp.get_libc_crt_file(arena, switch (link_mode) { - .Static => "libc.a", - .Dynamic => "libc.so", + .static => "libc.a", + .dynamic => "libc.so", }); try system_libs.append(.{ .path = path }); } else { @@ -1628,7 +1628,7 @@ fn dumpArgv(self: *Elf, comp: *Compilation) !void { // libc dep if (comp.config.link_libc) { if (self.base.comp.libc_installation != null) { - const needs_grouping = link_mode == .Static; + const needs_grouping = link_mode == .static; if (needs_grouping) try argv.append("--start-group"); try argv.appendSlice(target_util.libcFullLinkFlags(target)); if (needs_grouping) try argv.append("--end-group"); @@ -1642,8 +1642,8 @@ fn dumpArgv(self: *Elf, comp: *Compilation) !void { try argv.append(try comp.get_libc_crt_file(arena, "libc_nonshared.a")); } else if (target.isMusl()) { try argv.append(try comp.get_libc_crt_file(arena, switch (link_mode) { - .Static => "libc.a", - .Dynamic => "libc.so", + .static => "libc.a", + .dynamic => "libc.so", })); } } @@ -1797,10 +1797,10 @@ fn parseLdScript(self: *Elf, lib: SystemLib) ParseError!void { // Maybe we should hoist search-strategy all the way here? for (self.lib_dirs) |lib_dir| { if (!self.base.isStatic()) { - if (try self.accessLibPath(arena, &test_path, &checked_paths, lib_dir, lib_name, .Dynamic)) + if (try self.accessLibPath(arena, &test_path, &checked_paths, lib_dir, lib_name, .dynamic)) break :success; } - if (try self.accessLibPath(arena, &test_path, &checked_paths, lib_dir, lib_name, .Static)) + if (try self.accessLibPath(arena, &test_path, &checked_paths, lib_dir, lib_name, .static)) break :success; } } else { @@ -1858,8 +1858,8 @@ fn accessLibPath( test_path.clearRetainingCapacity(); const prefix = if (link_mode != null) "lib" else ""; const suffix = if (link_mode) |mode| switch (mode) { - .Static => target.staticLibSuffix(), - .Dynamic => target.dynamicLibSuffix(), + .static => target.staticLibSuffix(), + .dynamic => target.dynamicLibSuffix(), } else ""; try test_path.writer().print("{s}" ++ sep ++ "{s}{s}{s}", .{ lib_dir_path, @@ -2150,10 +2150,10 @@ fn linkWithLLD(self: *Elf, arena: Allocator, prog_node: *std.Progress.Node) !voi const is_obj = output_mode == .Obj; const is_lib = output_mode == .Lib; const link_mode = comp.config.link_mode; - const is_dyn_lib = link_mode == .Dynamic and is_lib; + const is_dyn_lib = link_mode == .dynamic and is_lib; const is_exe_or_dyn_lib = is_dyn_lib or output_mode == .Exe; const have_dynamic_linker = comp.config.link_libc and - link_mode == .Dynamic and is_exe_or_dyn_lib; + link_mode == .dynamic and is_exe_or_dyn_lib; const target = comp.root_mod.resolved_target.result; const compiler_rt_path: ?[]const u8 = blk: { if (comp.compiler_rt_lib) |x| break :blk x.full_object_path; @@ -2463,7 +2463,7 @@ fn linkWithLLD(self: *Elf, arena: Allocator, prog_node: *std.Progress.Node) !voi try argv.append(arg); } - if (link_mode == .Static) { + if (link_mode == .static) { if (target.cpu.arch.isArmOrThumb()) { try argv.append("-Bstatic"); } else { @@ -2647,7 +2647,7 @@ fn linkWithLLD(self: *Elf, arena: Allocator, prog_node: *std.Progress.Node) !voi comp.link_error_flags.missing_libc = false; if (comp.config.link_libc) { if (comp.libc_installation != null) { - const needs_grouping = link_mode == .Static; + const needs_grouping = link_mode == .static; if (needs_grouping) try argv.append("--start-group"); try argv.appendSlice(target_util.libcFullLinkFlags(target)); if (needs_grouping) try argv.append("--end-group"); @@ -2661,8 +2661,8 @@ fn linkWithLLD(self: *Elf, arena: Allocator, prog_node: *std.Progress.Node) !voi try argv.append(try comp.get_libc_crt_file(arena, "libc_nonshared.a")); } else if (target.isMusl()) { try argv.append(try comp.get_libc_crt_file(arena, switch (link_mode) { - .Static => "libc.a", - .Dynamic => "libc.so", + .static => "libc.a", + .dynamic => "libc.so", })); } else { comp.link_error_flags.missing_libc = true; @@ -2928,8 +2928,8 @@ pub fn writeElfHeader(self: *Elf) !void { .Exe => if (comp.config.pie) .DYN else .EXEC, .Obj => .REL, .Lib => switch (link_mode) { - .Static => @as(elf.ET, .REL), - .Dynamic => .DYN, + .static => @as(elf.ET, .REL), + .dynamic => .DYN, }, }; mem.writeInt(u16, hdr_buf[index..][0..2], @intFromEnum(elf_type), endian); @@ -3216,7 +3216,7 @@ fn allocateLinkerDefinedSymbols(self: *Elf) void { // __rela_iplt_start, __rela_iplt_end if (self.rela_dyn_section_index) |shndx| blk: { - if (link_mode != .Static or comp.config.pie) break :blk; + if (link_mode != .static or comp.config.pie) break :blk; const shdr = &self.shdrs.items[shndx]; const end_addr = shdr.sh_addr + shdr.sh_size; const start_addr = end_addr - self.calcNumIRelativeRelocs() * @sizeOf(elf.Elf64_Rela); @@ -5061,12 +5061,12 @@ const CsuObjects = struct { } = switch (comp.config.output_mode) { .Obj => return CsuObjects{}, .Lib => switch (comp.config.link_mode) { - .Dynamic => .dynamic_lib, - .Static => return CsuObjects{}, + .dynamic => .dynamic_lib, + .static => return CsuObjects{}, }, .Exe => switch (comp.config.link_mode) { - .Dynamic => if (comp.config.pie) .dynamic_pie else .dynamic_exe, - .Static => if (comp.config.pie) .static_pie else .static_exe, + .dynamic => if (comp.config.pie) .dynamic_pie else .dynamic_exe, + .static => if (comp.config.pie) .static_pie else .static_exe, }, }; diff --git a/src/link/Elf/ZigObject.zig b/src/link/Elf/ZigObject.zig index b6413f7d45..28b8acb51f 100644 --- a/src/link/Elf/ZigObject.zig +++ b/src/link/Elf/ZigObject.zig @@ -1436,10 +1436,10 @@ pub fn updateExports( } } const stb_bits: u8 = switch (exp.opts.linkage) { - .Internal => elf.STB_LOCAL, - .Strong => elf.STB_GLOBAL, - .Weak => elf.STB_WEAK, - .LinkOnce => { + .internal => elf.STB_LOCAL, + .strong => elf.STB_GLOBAL, + .weak => elf.STB_WEAK, + .link_once => { try mod.failed_exports.ensureUnusedCapacity(mod.gpa, 1); mod.failed_exports.putAssumeCapacityNoClobber(exp, try Module.ErrorMsg.create( gpa, diff --git a/src/link/MachO/ZigObject.zig b/src/link/MachO/ZigObject.zig index fadf80b2c0..bfd02fbd78 100644 --- a/src/link/MachO/ZigObject.zig +++ b/src/link/MachO/ZigObject.zig @@ -1216,11 +1216,11 @@ pub fn updateExports( continue; } } - if (exp.opts.linkage == .LinkOnce) { + if (exp.opts.linkage == .link_once) { try mod.failed_exports.putNoClobber(mod.gpa, exp, try Module.ErrorMsg.create( gpa, exp.getSrcLoc(mod), - "Unimplemented: GlobalLinkage.LinkOnce", + "Unimplemented: GlobalLinkage.link_once", .{}, )); continue; @@ -1242,12 +1242,12 @@ pub fn updateExports( self.symtab.items(.atom)[global_nlist_index] = self.symtab.items(.atom)[nlist_idx]; switch (exp.opts.linkage) { - .Internal => { + .internal => { // Symbol should be hidden, or in MachO lingo, private extern. global_nlist.n_type |= macho.N_PEXT; }, - .Strong => {}, - .Weak => { + .strong => {}, + .weak => { // Weak linkage is specified as part of n_desc field. // Symbol's n_type is like for a symbol with strong linkage. global_nlist.n_desc |= macho.N_WEAK_DEF; diff --git a/src/link/MachO/load_commands.zig b/src/link/MachO/load_commands.zig index 778fdd74c7..394253db48 100644 --- a/src/link/MachO/load_commands.zig +++ b/src/link/MachO/load_commands.zig @@ -222,7 +222,7 @@ pub fn writeDylibLC(ctx: WriteDylibLCCtx, writer: anytype) !void { pub fn writeDylibIdLC(macho_file: *MachO, writer: anytype) !void { const comp = macho_file.base.comp; const gpa = comp.gpa; - assert(comp.config.output_mode == .Lib and comp.config.link_mode == .Dynamic); + assert(comp.config.output_mode == .Lib and comp.config.link_mode == .dynamic); const emit = macho_file.base.emit; const install_name = macho_file.install_name orelse try emit.directory.join(gpa, &.{emit.sub_path}); diff --git a/src/link/Wasm.zig b/src/link/Wasm.zig index c32a472213..128cec5b6e 100644 --- a/src/link/Wasm.zig +++ b/src/link/Wasm.zig @@ -2518,7 +2518,7 @@ pub fn flushModule(wasm: *Wasm, arena: Allocator, prog_node: *std.Progress.Node) // When the target os is WASI, we allow linking with WASI-LIBC if (target.os.tag == .wasi) { const is_exe_or_dyn_lib = output_mode == .Exe or - (output_mode == .Lib and link_mode == .Dynamic); + (output_mode == .Lib and link_mode == .dynamic); if (is_exe_or_dyn_lib) { for (comp.wasi_emulated_libs) |crt_file| { try positionals.append(try comp.get_libc_crt_file( @@ -3549,7 +3549,7 @@ fn linkWithLLD(wasm: *Wasm, arena: Allocator, prog_node: *std.Progress.Node) !vo try argv.append("--allow-undefined"); } - if (comp.config.output_mode == .Lib and comp.config.link_mode == .Dynamic) { + if (comp.config.output_mode == .Lib and comp.config.link_mode == .dynamic) { try argv.append("--shared"); } if (comp.config.pie) { @@ -3569,7 +3569,7 @@ fn linkWithLLD(wasm: *Wasm, arena: Allocator, prog_node: *std.Progress.Node) !vo if (target.os.tag == .wasi) { const is_exe_or_dyn_lib = comp.config.output_mode == .Exe or - (comp.config.output_mode == .Lib and comp.config.link_mode == .Dynamic); + (comp.config.output_mode == .Lib and comp.config.link_mode == .dynamic); if (is_exe_or_dyn_lib) { for (comp.wasi_emulated_libs) |crt_file| { try argv.append(try comp.get_libc_crt_file( diff --git a/src/link/Wasm/ZigObject.zig b/src/link/Wasm/ZigObject.zig index 5b1c587a74..30aab49cb1 100644 --- a/src/link/Wasm/ZigObject.zig +++ b/src/link/Wasm/ZigObject.zig @@ -896,14 +896,14 @@ pub fn updateExports( sym.name = export_name; switch (exp.opts.linkage) { - .Internal => { + .internal => { sym.setFlag(.WASM_SYM_VISIBILITY_HIDDEN); }, - .Weak => { + .weak => { sym.setFlag(.WASM_SYM_BINDING_WEAK); }, - .Strong => {}, // symbols are strong by default - .LinkOnce => { + .strong => {}, // symbols are strong by default + .link_once => { try mod.failed_exports.putNoClobber(gpa, exp, try Module.ErrorMsg.create( gpa, decl.srcLoc(mod), diff --git a/src/main.zig b/src/main.zig index 5a187c65e9..74c78bf089 100644 --- a/src/main.zig +++ b/src/main.zig @@ -755,8 +755,8 @@ const SystemLib = struct { fn fallbackMode(this: SystemLib) std.builtin.LinkMode { assert(this.search_strategy != .no_fallback); return switch (this.preferred_mode) { - .Dynamic => .Static, - .Static => .Dynamic, + .dynamic => .static, + .static => .dynamic, }; } }; @@ -892,7 +892,7 @@ fn buildOutputType( var entitlements: ?[]const u8 = null; var pagezero_size: ?u64 = null; var lib_search_strategy: SystemLib.SearchStrategy = .paths_first; - var lib_preferred_mode: std.builtin.LinkMode = .Dynamic; + var lib_preferred_mode: std.builtin.LinkMode = .dynamic; var headerpad_size: ?u32 = null; var headerpad_max_install_names: bool = false; var dead_strip_dylibs: bool = false; @@ -1166,22 +1166,22 @@ fn buildOutputType( }; } else if (mem.eql(u8, arg, "-search_paths_first")) { lib_search_strategy = .paths_first; - lib_preferred_mode = .Dynamic; + lib_preferred_mode = .dynamic; } else if (mem.eql(u8, arg, "-search_paths_first_static")) { lib_search_strategy = .paths_first; - lib_preferred_mode = .Static; + lib_preferred_mode = .static; } else if (mem.eql(u8, arg, "-search_dylibs_first")) { lib_search_strategy = .mode_first; - lib_preferred_mode = .Dynamic; + lib_preferred_mode = .dynamic; } else if (mem.eql(u8, arg, "-search_static_first")) { lib_search_strategy = .mode_first; - lib_preferred_mode = .Static; + lib_preferred_mode = .static; } else if (mem.eql(u8, arg, "-search_dylibs_only")) { lib_search_strategy = .no_fallback; - lib_preferred_mode = .Dynamic; + lib_preferred_mode = .dynamic; } else if (mem.eql(u8, arg, "-search_static_only")) { lib_search_strategy = .no_fallback; - lib_preferred_mode = .Static; + lib_preferred_mode = .static; } else if (mem.eql(u8, arg, "-headerpad")) { const next_arg = args_iter.nextOrFatal(); headerpad_size = std.fmt.parseUnsigned(u32, eatIntPrefix(next_arg, 16), 16) catch |err| { @@ -1478,12 +1478,12 @@ fn buildOutputType( emit_implib = .no; emit_implib_arg_provided = true; } else if (mem.eql(u8, arg, "-dynamic")) { - create_module.opts.link_mode = .Dynamic; - lib_preferred_mode = .Dynamic; + create_module.opts.link_mode = .dynamic; + lib_preferred_mode = .dynamic; lib_search_strategy = .mode_first; } else if (mem.eql(u8, arg, "-static")) { - create_module.opts.link_mode = .Static; - lib_preferred_mode = .Static; + create_module.opts.link_mode = .static; + lib_preferred_mode = .static; lib_search_strategy = .no_fallback; } else if (mem.eql(u8, arg, "-fdll-export-fns")) { create_module.opts.dll_export_fns = true; @@ -1904,7 +1904,7 @@ fn buildOutputType( }, .nostdlib_cpp => create_module.opts.ensure_libcpp_on_non_freestanding = false, .shared => { - create_module.opts.link_mode = .Dynamic; + create_module.opts.link_mode = .dynamic; is_shared_lib = true; }, .rdynamic => create_module.opts.rdynamic = true, @@ -1961,20 +1961,20 @@ fn buildOutputType( mem.eql(u8, linker_arg, "-call_shared")) { lib_search_strategy = .no_fallback; - lib_preferred_mode = .Dynamic; + lib_preferred_mode = .dynamic; } else if (mem.eql(u8, linker_arg, "-Bstatic") or mem.eql(u8, linker_arg, "-dn") or mem.eql(u8, linker_arg, "-non_shared") or mem.eql(u8, linker_arg, "-static")) { lib_search_strategy = .no_fallback; - lib_preferred_mode = .Static; + lib_preferred_mode = .static; } else if (mem.eql(u8, linker_arg, "-search_paths_first")) { lib_search_strategy = .paths_first; - lib_preferred_mode = .Dynamic; + lib_preferred_mode = .dynamic; } else if (mem.eql(u8, linker_arg, "-search_dylibs_first")) { lib_search_strategy = .mode_first; - lib_preferred_mode = .Dynamic; + lib_preferred_mode = .dynamic; } else { try linker_args.append(linker_arg); } @@ -3033,7 +3033,7 @@ fn buildOutputType( const is_exe_or_dyn_lib = switch (create_module.resolved_options.output_mode) { .Obj => false, - .Lib => create_module.resolved_options.link_mode == .Dynamic, + .Lib => create_module.resolved_options.link_mode == .dynamic, .Exe => true, }; // Note that cmake when targeting Windows will try to execute @@ -3770,8 +3770,8 @@ fn createModule( )) { const path = try arena.dupe(u8, test_path.items); switch (info.preferred_mode) { - .Static => try create_module.link_objects.append(arena, .{ .path = path }), - .Dynamic => try create_module.resolved_system_libs.append(arena, .{ + .static => try create_module.link_objects.append(arena, .{ .path = path }), + .dynamic => try create_module.resolved_system_libs.append(arena, .{ .name = lib_name, .lib = .{ .needed = info.needed, @@ -3804,8 +3804,8 @@ fn createModule( )) { const path = try arena.dupe(u8, test_path.items); switch (info.fallbackMode()) { - .Static => try create_module.link_objects.append(arena, .{ .path = path }), - .Dynamic => try create_module.resolved_system_libs.append(arena, .{ + .static => try create_module.link_objects.append(arena, .{ .path = path }), + .dynamic => try create_module.resolved_system_libs.append(arena, .{ .name = lib_name, .lib = .{ .needed = info.needed, @@ -3838,8 +3838,8 @@ fn createModule( )) { const path = try arena.dupe(u8, test_path.items); switch (info.preferred_mode) { - .Static => try create_module.link_objects.append(arena, .{ .path = path }), - .Dynamic => try create_module.resolved_system_libs.append(arena, .{ + .static => try create_module.link_objects.append(arena, .{ .path = path }), + .dynamic => try create_module.resolved_system_libs.append(arena, .{ .name = lib_name, .lib = .{ .needed = info.needed, @@ -3862,8 +3862,8 @@ fn createModule( )) { const path = try arena.dupe(u8, test_path.items); switch (info.fallbackMode()) { - .Static => try create_module.link_objects.append(arena, .{ .path = path }), - .Dynamic => try create_module.resolved_system_libs.append(arena, .{ + .static => try create_module.link_objects.append(arena, .{ .path = path }), + .dynamic => try create_module.resolved_system_libs.append(arena, .{ .name = lib_name, .lib = .{ .needed = info.needed, @@ -4145,8 +4145,8 @@ fn progressThread(progress: *std.Progress, server: *const Server, reset: *std.Th buf.appendSlice("... ") catch {}; } need_ellipse = false; - const eti = @atomicLoad(usize, &node.unprotected_estimated_total_items, .Monotonic); - const completed_items = @atomicLoad(usize, &node.unprotected_completed_items, .Monotonic); + const eti = @atomicLoad(usize, &node.unprotected_estimated_total_items, .monotonic); + const completed_items = @atomicLoad(usize, &node.unprotected_completed_items, .monotonic); const current_item = completed_items + 1; if (node.name.len != 0 or eti > 0) { if (node.name.len != 0) { @@ -4163,7 +4163,7 @@ fn progressThread(progress: *std.Progress, server: *const Server, reset: *std.Th need_ellipse = false; } } - maybe_node = @atomicLoad(?*std.Progress.Node, &node.recently_updated_child, .Acquire); + maybe_node = @atomicLoad(?*std.Progress.Node, &node.recently_updated_child, .acquire); } } @@ -6842,7 +6842,7 @@ fn accessLibPath( ) !bool { const sep = fs.path.sep_str; - if (target.isDarwin() and link_mode == .Dynamic) tbd: { + if (target.isDarwin() and link_mode == .dynamic) tbd: { // Prefer .tbd over .dylib. test_path.clearRetainingCapacity(); try test_path.writer().print("{s}" ++ sep ++ "lib{s}.tbd", .{ lib_dir_path, lib_name }); @@ -6863,8 +6863,8 @@ fn accessLibPath( target.libPrefix(), lib_name, switch (link_mode) { - .Static => target.staticLibSuffix(), - .Dynamic => target.dynamicLibSuffix(), + .static => target.staticLibSuffix(), + .dynamic => target.dynamicLibSuffix(), }, }); try checked_paths.writer().print("\n {s}", .{test_path.items}); @@ -6879,7 +6879,7 @@ fn accessLibPath( // In the case of Darwin, the main check will be .dylib, so here we // additionally check for .so files. - if (target.isDarwin() and link_mode == .Dynamic) so: { + if (target.isDarwin() and link_mode == .dynamic) so: { test_path.clearRetainingCapacity(); try test_path.writer().print("{s}" ++ sep ++ "lib{s}.so", .{ lib_dir_path, lib_name }); try checked_paths.writer().print("\n {s}", .{test_path.items}); @@ -6894,7 +6894,7 @@ fn accessLibPath( // In the case of MinGW, the main check will be .lib but we also need to // look for `libfoo.a`. - if (target.isMinGW() and link_mode == .Static) mingw: { + if (target.isMinGW() and link_mode == .static) mingw: { test_path.clearRetainingCapacity(); try test_path.writer().print("{s}" ++ sep ++ "lib{s}.a", .{ lib_dir_path, lib_name, diff --git a/src/musl.zig b/src/musl.zig index ed943b7bf5..3228faf271 100644 --- a/src/musl.zig +++ b/src/musl.zig @@ -207,7 +207,7 @@ pub fn buildCRTFile(comp: *Compilation, crt_file: CRTFile, prog_node: *std.Progr const strip = comp.compilerRtStrip(); const config = try Compilation.Config.resolve(.{ .output_mode = .Lib, - .link_mode = .Dynamic, + .link_mode = .dynamic, .resolved_target = comp.root_mod.resolved_target, .is_test = false, .have_zcu = false, diff --git a/src/print_air.zig b/src/print_air.zig index 8af0301c1a..0c1beac3a8 100644 --- a/src/print_air.zig +++ b/src/print_air.zig @@ -303,10 +303,10 @@ const Writer = struct { .fence => try w.writeFence(s, inst), .atomic_load => try w.writeAtomicLoad(s, inst), .prefetch => try w.writePrefetch(s, inst), - .atomic_store_unordered => try w.writeAtomicStore(s, inst, .Unordered), - .atomic_store_monotonic => try w.writeAtomicStore(s, inst, .Monotonic), - .atomic_store_release => try w.writeAtomicStore(s, inst, .Release), - .atomic_store_seq_cst => try w.writeAtomicStore(s, inst, .SeqCst), + .atomic_store_unordered => try w.writeAtomicStore(s, inst, .unordered), + .atomic_store_monotonic => try w.writeAtomicStore(s, inst, .monotonic), + .atomic_store_release => try w.writeAtomicStore(s, inst, .release), + .atomic_store_seq_cst => try w.writeAtomicStore(s, inst, .seq_cst), .atomic_rmw => try w.writeAtomicRmw(s, inst), .field_parent_ptr => try w.writeFieldParentPtr(s, inst), .wasm_memory_size => try w.writeWasmMemorySize(s, inst), diff --git a/src/print_zir.zig b/src/print_zir.zig index d96fe4f6c9..8c858591eb 100644 --- a/src/print_zir.zig +++ b/src/print_zir.zig @@ -1440,7 +1440,7 @@ const Writer = struct { if (small.has_backing_int) { const backing_int_body_len = self.code.extra[extra_index]; extra_index += 1; - try stream.writeAll("Packed("); + try stream.writeAll("packed("); if (backing_int_body_len == 0) { const backing_int_ref: Zir.Inst.Ref = @enumFromInt(self.code.extra[extra_index]); extra_index += 1; diff --git a/src/type.zig b/src/type.zig index 8b2c6f2a1e..664498e353 100644 --- a/src/type.zig +++ b/src/type.zig @@ -741,12 +741,12 @@ pub const Type = struct { .struct_type => { const struct_type = ip.loadStructType(ty.toIntern()); // Struct with no fields have a well-defined layout of no bits. - return struct_type.layout != .Auto or struct_type.field_types.len == 0; + return struct_type.layout != .auto or struct_type.field_types.len == 0; }, .union_type => { const union_type = ip.loadUnionType(ty.toIntern()); return switch (union_type.flagsPtr(ip).runtime_tag) { - .none, .safety => union_type.flagsPtr(ip).layout != .Auto, + .none, .safety => union_type.flagsPtr(ip).layout != .auto, .tagged => false, }; }, @@ -1027,7 +1027,7 @@ pub const Type = struct { }, .struct_type => { const struct_type = ip.loadStructType(ty.toIntern()); - if (struct_type.layout == .Packed) { + if (struct_type.layout == .@"packed") { switch (strat) { .sema => |sema| try sema.resolveTypeLayout(ty), .lazy => if (struct_type.backingIntType(ip).* == .none) return .{ @@ -1407,7 +1407,7 @@ pub const Type = struct { switch (strat) { .sema => |sema| try sema.resolveTypeLayout(ty), .lazy => switch (struct_type.layout) { - .Packed => { + .@"packed" => { if (struct_type.backingIntType(ip).* == .none) return .{ .val = Value.fromInterned((try mod.intern(.{ .int = .{ .ty = .comptime_int_type, @@ -1415,7 +1415,7 @@ pub const Type = struct { } }))), }; }, - .Auto, .Extern => { + .auto, .@"extern" => { if (!struct_type.haveLayout(ip)) return .{ .val = Value.fromInterned((try mod.intern(.{ .int = .{ .ty = .comptime_int_type, @@ -1427,10 +1427,10 @@ pub const Type = struct { .eager => {}, } switch (struct_type.layout) { - .Packed => return .{ + .@"packed" => return .{ .scalar = Type.fromInterned(struct_type.backingIntType(ip).*).abiSize(mod), }, - .Auto, .Extern => { + .auto, .@"extern" => { assert(struct_type.haveLayout(ip)); return .{ .scalar = struct_type.size(ip).* }; }, @@ -1656,7 +1656,7 @@ pub const Type = struct { }, .struct_type => { const struct_type = ip.loadStructType(ty.toIntern()); - const is_packed = struct_type.layout == .Packed; + const is_packed = struct_type.layout == .@"packed"; if (opt_sema) |sema| { try sema.resolveTypeFields(ty); if (is_packed) try sema.resolveTypeLayout(ty); @@ -1674,7 +1674,7 @@ pub const Type = struct { .union_type => { const union_type = ip.loadUnionType(ty.toIntern()); - const is_packed = ty.containerLayout(mod) == .Packed; + const is_packed = ty.containerLayout(mod) == .@"packed"; if (opt_sema) |sema| { try sema.resolveTypeFields(ty); if (is_packed) try sema.resolveTypeLayout(ty); @@ -1987,9 +1987,9 @@ pub const Type = struct { /// Asserts the type is either an extern or packed union. pub fn unionBackingType(ty: Type, mod: *Module) !Type { return switch (ty.containerLayout(mod)) { - .Extern => try mod.arrayType(.{ .len = ty.abiSize(mod), .child = .u8_type }), - .Packed => try mod.intType(.unsigned, @intCast(ty.bitSize(mod))), - .Auto => unreachable, + .@"extern" => try mod.arrayType(.{ .len = ty.abiSize(mod), .child = .u8_type }), + .@"packed" => try mod.intType(.unsigned, @intCast(ty.bitSize(mod))), + .auto => unreachable, }; } @@ -2003,7 +2003,7 @@ pub const Type = struct { const ip = &mod.intern_pool; return switch (ip.indexToKey(ty.toIntern())) { .struct_type => ip.loadStructType(ty.toIntern()).layout, - .anon_struct_type => .Auto, + .anon_struct_type => .auto, .union_type => ip.loadUnionType(ty.toIntern()).flagsPtr(ip).layout, else => unreachable, }; @@ -2177,7 +2177,7 @@ pub const Type = struct { pub fn isAbiInt(ty: Type, mod: *Module) bool { return switch (ty.zigTypeTag(mod)) { .Int, .Enum, .ErrorSet => true, - .Struct => ty.containerLayout(mod) == .Packed, + .Struct => ty.containerLayout(mod) == .@"packed", else => false, }; } @@ -2690,7 +2690,7 @@ pub const Type = struct { const struct_type = ip.loadStructType(ty.toIntern()); // packed structs cannot be comptime-only because they have a well-defined // memory layout and every field has a well-defined bit pattern. - if (struct_type.layout == .Packed) + if (struct_type.layout == .@"packed") return false; // A struct with no fields is not comptime-only. @@ -3051,7 +3051,7 @@ pub const Type = struct { switch (ip.indexToKey(ty.toIntern())) { .struct_type => { const struct_type = ip.loadStructType(ty.toIntern()); - assert(struct_type.layout != .Packed); + assert(struct_type.layout != .@"packed"); const explicit_align = struct_type.fieldAlign(ip, index); const field_ty = Type.fromInterned(struct_type.field_types.get(ip)[index]); return mod.structFieldAlignment(explicit_align, field_ty, struct_type.layout); @@ -3132,7 +3132,7 @@ pub const Type = struct { .struct_type => { const struct_type = ip.loadStructType(ty.toIntern()); assert(struct_type.haveLayout(ip)); - assert(struct_type.layout != .Packed); + assert(struct_type.layout != .@"packed"); return struct_type.offsets.get(ip)[index]; }, @@ -3208,7 +3208,7 @@ pub const Type = struct { return switch (ip.indexToKey(ty.toIntern())) { .struct_type => { const struct_type = ip.loadStructType(ty.toIntern()); - if (struct_type.layout == .Packed) return false; + if (struct_type.layout == .@"packed") return false; if (struct_type.decl == .none) return false; return struct_type.flagsPtr(ip).is_tuple; }, @@ -3230,7 +3230,7 @@ pub const Type = struct { return switch (ip.indexToKey(ty.toIntern())) { .struct_type => { const struct_type = ip.loadStructType(ty.toIntern()); - if (struct_type.layout == .Packed) return false; + if (struct_type.layout == .@"packed") return false; if (struct_type.decl == .none) return false; return struct_type.flagsPtr(ip).is_tuple; }, diff --git a/test/behavior/atomics.zig b/test/behavior/atomics.zig index fa817dd639..d3f19d396e 100644 --- a/test/behavior/atomics.zig +++ b/test/behavior/atomics.zig @@ -22,18 +22,18 @@ test "cmpxchg" { fn testCmpxchg() !void { var x: i32 = 1234; - if (@cmpxchgWeak(i32, &x, 99, 5678, .SeqCst, .SeqCst)) |x1| { + if (@cmpxchgWeak(i32, &x, 99, 5678, .seq_cst, .seq_cst)) |x1| { try expect(x1 == 1234); } else { @panic("cmpxchg should have failed"); } - while (@cmpxchgWeak(i32, &x, 1234, 5678, .SeqCst, .SeqCst)) |x1| { + while (@cmpxchgWeak(i32, &x, 1234, 5678, .seq_cst, .seq_cst)) |x1| { try expect(x1 == 1234); } try expect(x == 5678); - try expect(@cmpxchgStrong(i32, &x, 5678, 42, .SeqCst, .SeqCst) == null); + try expect(@cmpxchgStrong(i32, &x, 5678, 42, .seq_cst, .seq_cst) == null); try expect(x == 42); } @@ -43,7 +43,7 @@ test "fence" { if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; var x: i32 = 1234; - @fence(.SeqCst); + @fence(.seq_cst); x = 5678; } @@ -60,18 +60,18 @@ test "atomicrmw and atomicload" { } fn testAtomicRmw(ptr: *u8) !void { - const prev_value = @atomicRmw(u8, ptr, .Xchg, 42, .SeqCst); + const prev_value = @atomicRmw(u8, ptr, .Xchg, 42, .seq_cst); try expect(prev_value == 200); comptime { var x: i32 = 1234; const y: i32 = 12345; - try expect(@atomicLoad(i32, &x, .SeqCst) == 1234); - try expect(@atomicLoad(i32, &y, .SeqCst) == 12345); + try expect(@atomicLoad(i32, &x, .seq_cst) == 1234); + try expect(@atomicLoad(i32, &y, .seq_cst) == 12345); } } fn testAtomicLoad(ptr: *u8) !void { - const x = @atomicLoad(u8, ptr, .SeqCst); + const x = @atomicLoad(u8, ptr, .seq_cst); try expect(x == 42); } @@ -85,18 +85,18 @@ test "cmpxchg with ptr" { var data2: i32 = 5678; var data3: i32 = 9101; var x: *i32 = &data1; - if (@cmpxchgWeak(*i32, &x, &data2, &data3, .SeqCst, .SeqCst)) |x1| { + if (@cmpxchgWeak(*i32, &x, &data2, &data3, .seq_cst, .seq_cst)) |x1| { try expect(x1 == &data1); } else { @panic("cmpxchg should have failed"); } - while (@cmpxchgWeak(*i32, &x, &data1, &data3, .SeqCst, .SeqCst)) |x1| { + while (@cmpxchgWeak(*i32, &x, &data1, &data3, .seq_cst, .seq_cst)) |x1| { try expect(x1 == &data1); } try expect(x == &data3); - try expect(@cmpxchgStrong(*i32, &x, &data3, &data2, .SeqCst, .SeqCst) == null); + try expect(@cmpxchgStrong(*i32, &x, &data3, &data2, .seq_cst, .seq_cst) == null); try expect(x == &data2); } @@ -108,7 +108,7 @@ test "cmpxchg with ignored result" { var x: i32 = 1234; - _ = @cmpxchgStrong(i32, &x, 1234, 5678, .Monotonic, .Monotonic); + _ = @cmpxchgStrong(i32, &x, 1234, 5678, .monotonic, .monotonic); try expect(5678 == x); } @@ -127,18 +127,18 @@ test "128-bit cmpxchg" { fn test_u128_cmpxchg() !void { var x: u128 align(16) = 1234; - if (@cmpxchgWeak(u128, &x, 99, 5678, .SeqCst, .SeqCst)) |x1| { + if (@cmpxchgWeak(u128, &x, 99, 5678, .seq_cst, .seq_cst)) |x1| { try expect(x1 == 1234); } else { @panic("cmpxchg should have failed"); } - while (@cmpxchgWeak(u128, &x, 1234, 5678, .SeqCst, .SeqCst)) |x1| { + while (@cmpxchgWeak(u128, &x, 1234, 5678, .seq_cst, .seq_cst)) |x1| { try expect(x1 == 1234); } try expect(x == 5678); - try expect(@cmpxchgStrong(u128, &x, 5678, 42, .SeqCst, .SeqCst) == null); + try expect(@cmpxchgStrong(u128, &x, 5678, 42, .seq_cst, .seq_cst) == null); try expect(x == 42); } @@ -155,7 +155,7 @@ test "cmpxchg on a global variable" { return error.SkipZigTest; } - _ = @cmpxchgWeak(u32, &a_global_variable, 1234, 42, .Acquire, .Monotonic); + _ = @cmpxchgWeak(u32, &a_global_variable, 1234, 42, .acquire, .monotonic); try expect(a_global_variable == 42); } @@ -168,12 +168,12 @@ test "atomic load and rmw with enum" { const Value = enum(u8) { a, b, c }; var x = Value.a; - try expect(@atomicLoad(Value, &x, .SeqCst) != .b); + try expect(@atomicLoad(Value, &x, .seq_cst) != .b); - _ = @atomicRmw(Value, &x, .Xchg, .c, .SeqCst); - try expect(@atomicLoad(Value, &x, .SeqCst) == .c); - try expect(@atomicLoad(Value, &x, .SeqCst) != .a); - try expect(@atomicLoad(Value, &x, .SeqCst) != .b); + _ = @atomicRmw(Value, &x, .Xchg, .c, .seq_cst); + try expect(@atomicLoad(Value, &x, .seq_cst) == .c); + try expect(@atomicLoad(Value, &x, .seq_cst) != .a); + try expect(@atomicLoad(Value, &x, .seq_cst) != .b); } test "atomic store" { @@ -183,10 +183,10 @@ test "atomic store" { if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; var x: u32 = 0; - @atomicStore(u32, &x, 1, .SeqCst); - try expect(@atomicLoad(u32, &x, .SeqCst) == 1); - @atomicStore(u32, &x, 12345678, .SeqCst); - try expect(@atomicLoad(u32, &x, .SeqCst) == 12345678); + @atomicStore(u32, &x, 1, .seq_cst); + try expect(@atomicLoad(u32, &x, .seq_cst) == 1); + @atomicStore(u32, &x, 12345678, .seq_cst); + try expect(@atomicLoad(u32, &x, .seq_cst) == 12345678); } test "atomic store comptime" { @@ -201,10 +201,10 @@ test "atomic store comptime" { fn testAtomicStore() !void { var x: u32 = 0; - @atomicStore(u32, &x, 1, .SeqCst); - try expect(@atomicLoad(u32, &x, .SeqCst) == 1); - @atomicStore(u32, &x, 12345678, .SeqCst); - try expect(@atomicLoad(u32, &x, .SeqCst) == 12345678); + @atomicStore(u32, &x, 1, .seq_cst); + try expect(@atomicLoad(u32, &x, .seq_cst) == 1); + @atomicStore(u32, &x, 12345678, .seq_cst); + try expect(@atomicLoad(u32, &x, .seq_cst) == 12345678); } test "atomicrmw with floats" { @@ -224,15 +224,15 @@ test "atomicrmw with floats" { fn testAtomicRmwFloat() !void { var x: f32 = 0; try expect(x == 0); - _ = @atomicRmw(f32, &x, .Xchg, 1, .SeqCst); + _ = @atomicRmw(f32, &x, .Xchg, 1, .seq_cst); try expect(x == 1); - _ = @atomicRmw(f32, &x, .Add, 5, .SeqCst); + _ = @atomicRmw(f32, &x, .Add, 5, .seq_cst); try expect(x == 6); - _ = @atomicRmw(f32, &x, .Sub, 2, .SeqCst); + _ = @atomicRmw(f32, &x, .Sub, 2, .seq_cst); try expect(x == 4); - _ = @atomicRmw(f32, &x, .Max, 13, .SeqCst); + _ = @atomicRmw(f32, &x, .Max, 13, .seq_cst); try expect(x == 13); - _ = @atomicRmw(f32, &x, .Min, 42, .SeqCst); + _ = @atomicRmw(f32, &x, .Min, 42, .seq_cst); try expect(x == 13); } @@ -266,46 +266,46 @@ fn testAtomicRmwInt(comptime signedness: std.builtin.Signedness, comptime N: usi const int = std.meta.Int(signedness, N); var x: int = 1; - var res = @atomicRmw(int, &x, .Xchg, 3, .SeqCst); + var res = @atomicRmw(int, &x, .Xchg, 3, .seq_cst); try expect(x == 3 and res == 1); - res = @atomicRmw(int, &x, .Add, 3, .SeqCst); + res = @atomicRmw(int, &x, .Add, 3, .seq_cst); var y: int = 3; try expect(res == y); y = y + 3; try expect(x == y); - res = @atomicRmw(int, &x, .Sub, 1, .SeqCst); + res = @atomicRmw(int, &x, .Sub, 1, .seq_cst); try expect(res == y); y = y - 1; try expect(x == y); - res = @atomicRmw(int, &x, .And, 4, .SeqCst); + res = @atomicRmw(int, &x, .And, 4, .seq_cst); try expect(res == y); y = y & 4; try expect(x == y); - res = @atomicRmw(int, &x, .Nand, 4, .SeqCst); + res = @atomicRmw(int, &x, .Nand, 4, .seq_cst); try expect(res == y); y = ~(y & 4); try expect(x == y); - res = @atomicRmw(int, &x, .Or, 6, .SeqCst); + res = @atomicRmw(int, &x, .Or, 6, .seq_cst); try expect(res == y); y = y | 6; try expect(x == y); - res = @atomicRmw(int, &x, .Xor, 2, .SeqCst); + res = @atomicRmw(int, &x, .Xor, 2, .seq_cst); try expect(res == y); y = y ^ 2; try expect(x == y); - res = @atomicRmw(int, &x, .Max, 1, .SeqCst); + res = @atomicRmw(int, &x, .Max, 1, .seq_cst); try expect(res == y); y = @max(y, 1); try expect(x == y); - res = @atomicRmw(int, &x, .Min, 1, .SeqCst); + res = @atomicRmw(int, &x, .Min, 1, .seq_cst); try expect(res == y); y = @min(y, 1); try expect(x == y); @@ -333,53 +333,53 @@ fn testAtomicRmwInt128(comptime signedness: std.builtin.Signedness) !void { const replacement: int = 0x00000000_00000005_00000000_00000003; var x: int align(16) = initial; - var res = @atomicRmw(int, &x, .Xchg, replacement, .SeqCst); + var res = @atomicRmw(int, &x, .Xchg, replacement, .seq_cst); try expect(x == replacement and res == initial); var operator: int = 0x00000001_00000000_20000000_00000000; - res = @atomicRmw(int, &x, .Add, operator, .SeqCst); + res = @atomicRmw(int, &x, .Add, operator, .seq_cst); var y: int = replacement; try expect(res == y); y = y + operator; try expect(x == y); operator = 0x00000000_10000000_00000000_20000000; - res = @atomicRmw(int, &x, .Sub, operator, .SeqCst); + res = @atomicRmw(int, &x, .Sub, operator, .seq_cst); try expect(res == y); y = y - operator; try expect(x == y); operator = 0x12345678_87654321_12345678_87654321; - res = @atomicRmw(int, &x, .And, operator, .SeqCst); + res = @atomicRmw(int, &x, .And, operator, .seq_cst); try expect(res == y); y = y & operator; try expect(x == y); operator = 0x00000000_10000000_00000000_20000000; - res = @atomicRmw(int, &x, .Nand, operator, .SeqCst); + res = @atomicRmw(int, &x, .Nand, operator, .seq_cst); try expect(res == y); y = ~(y & operator); try expect(x == y); operator = 0x12340000_56780000_67890000_98760000; - res = @atomicRmw(int, &x, .Or, operator, .SeqCst); + res = @atomicRmw(int, &x, .Or, operator, .seq_cst); try expect(res == y); y = y | operator; try expect(x == y); operator = 0x0a0b0c0d_0e0f0102_03040506_0708090a; - res = @atomicRmw(int, &x, .Xor, operator, .SeqCst); + res = @atomicRmw(int, &x, .Xor, operator, .seq_cst); try expect(res == y); y = y ^ operator; try expect(x == y); operator = 0x00000000_10000000_00000000_20000000; - res = @atomicRmw(int, &x, .Max, operator, .SeqCst); + res = @atomicRmw(int, &x, .Max, operator, .seq_cst); try expect(res == y); y = @max(y, operator); try expect(x == y); - res = @atomicRmw(int, &x, .Min, operator, .SeqCst); + res = @atomicRmw(int, &x, .Min, operator, .seq_cst); try expect(res == y); y = @min(y, operator); try expect(x == y); @@ -405,13 +405,13 @@ test "atomics with different types" { fn testAtomicsWithType(comptime T: type, a: T, b: T) !void { var x: T = b; - @atomicStore(T, &x, a, .SeqCst); + @atomicStore(T, &x, a, .seq_cst); try expect(x == a); - try expect(@atomicLoad(T, &x, .SeqCst) == a); - try expect(@atomicRmw(T, &x, .Xchg, b, .SeqCst) == a); - try expect(@cmpxchgStrong(T, &x, b, a, .SeqCst, .SeqCst) == null); + try expect(@atomicLoad(T, &x, .seq_cst) == a); + try expect(@atomicRmw(T, &x, .Xchg, b, .seq_cst) == a); + try expect(@cmpxchgStrong(T, &x, b, a, .seq_cst, .seq_cst) == null); if (@sizeOf(T) != 0) - try expect(@cmpxchgStrong(T, &x, b, a, .SeqCst, .SeqCst).? == a); + try expect(@cmpxchgStrong(T, &x, b, a, .seq_cst, .seq_cst).? == a); } test "return @atomicStore, using it as a void value" { @@ -425,12 +425,12 @@ test "return @atomicStore, using it as a void value" { value: usize, pub fn store(self: *A, value: usize) void { - return @atomicStore(usize, &self.value, value, .Unordered); + return @atomicStore(usize, &self.value, value, .unordered); } pub fn store2(self: *A, value: usize) void { return switch (value) { - else => @atomicStore(usize, &self.value, value, .Unordered), + else => @atomicStore(usize, &self.value, value, .unordered), }; } }; diff --git a/test/behavior/builtin_functions_returning_void_or_noreturn.zig b/test/behavior/builtin_functions_returning_void_or_noreturn.zig index 48cf0bc5c6..7b8f23c262 100644 --- a/test/behavior/builtin_functions_returning_void_or_noreturn.zig +++ b/test/behavior/builtin_functions_returning_void_or_noreturn.zig @@ -14,10 +14,10 @@ test { if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; var val: u8 = undefined; - try testing.expectEqual({}, @atomicStore(u8, &val, 0, .Unordered)); + try testing.expectEqual({}, @atomicStore(u8, &val, 0, .unordered)); try testing.expectEqual(void, @TypeOf(@breakpoint())); try testing.expectEqual({}, @export(x, .{ .name = "x" })); - try testing.expectEqual({}, @fence(.Acquire)); + try testing.expectEqual({}, @fence(.acquire)); try testing.expectEqual({}, @memcpy(@as([*]u8, @ptrFromInt(1))[0..0], @as([*]u8, @ptrFromInt(1))[0..0])); try testing.expectEqual({}, @memset(@as([*]u8, @ptrFromInt(1))[0..0], undefined)); try testing.expectEqual(noreturn, @TypeOf(if (true) @panic("") else {})); @@ -25,6 +25,6 @@ test { try testing.expectEqual({}, @setAlignStack(16)); try testing.expectEqual({}, @setCold(true)); try testing.expectEqual({}, @setEvalBranchQuota(0)); - try testing.expectEqual({}, @setFloatMode(.Optimized)); + try testing.expectEqual({}, @setFloatMode(.optimized)); try testing.expectEqual({}, @setRuntimeSafety(true)); } diff --git a/test/behavior/export_builtin.zig b/test/behavior/export_builtin.zig index 6755a127f5..e93dc6107a 100644 --- a/test/behavior/export_builtin.zig +++ b/test/behavior/export_builtin.zig @@ -25,7 +25,7 @@ test "exporting with internal linkage" { const S = struct { fn foo() callconv(.C) void {} comptime { - @export(foo, .{ .name = "exporting_with_internal_linkage_foo", .linkage = .Internal }); + @export(foo, .{ .name = "exporting_with_internal_linkage_foo", .linkage = .internal }); } }; S.foo(); @@ -41,7 +41,7 @@ test "exporting using field access" { const x: u32 = 5; }; comptime { - @export(Inner.x, .{ .name = "foo", .linkage = .Internal }); + @export(Inner.x, .{ .name = "foo", .linkage = .internal }); } }; diff --git a/test/behavior/floatop.zig b/test/behavior/floatop.zig index 46b4e9cfce..b3bdfb6d71 100644 --- a/test/behavior/floatop.zig +++ b/test/behavior/floatop.zig @@ -1511,7 +1511,7 @@ test "eval @setFloatMode at compile-time" { } fn fnWithFloatMode() f32 { - @setFloatMode(std.builtin.FloatMode.Strict); + @setFloatMode(std.builtin.FloatMode.strict); return 1234.0; } diff --git a/test/behavior/tuple.zig b/test/behavior/tuple.zig index 3d5b132c0f..bfd913774f 100644 --- a/test/behavior/tuple.zig +++ b/test/behavior/tuple.zig @@ -135,7 +135,7 @@ test "array-like initializer for tuple types" { const T = @Type(.{ .Struct = .{ .is_tuple = true, - .layout = .Auto, + .layout = .auto, .decls = &.{}, .fields = &.{ .{ @@ -323,7 +323,7 @@ test "zero sized struct in tuple handled correctly" { data: @Type(.{ .Struct = .{ .is_tuple = true, - .layout = .Auto, + .layout = .auto, .decls = &.{}, .fields = &.{.{ .name = "0", @@ -471,7 +471,7 @@ test "coerce anon tuple to tuple" { test "empty tuple type" { const S = @Type(.{ .Struct = .{ - .layout = .Auto, + .layout = .auto, .fields = &.{}, .decls = &.{}, .is_tuple = true, diff --git a/test/behavior/tuple_declarations.zig b/test/behavior/tuple_declarations.zig index e3730b3995..e6d5d76fc8 100644 --- a/test/behavior/tuple_declarations.zig +++ b/test/behavior/tuple_declarations.zig @@ -12,7 +12,7 @@ test "tuple declaration type info" { const T = struct { comptime u32 align(2) = 1, []const u8 }; const info = @typeInfo(T).Struct; - try expect(info.layout == .Auto); + try expect(info.layout == .auto); try expect(info.backing_integer == null); try expect(info.fields.len == 2); try expect(info.decls.len == 0); diff --git a/test/behavior/type.zig b/test/behavior/type.zig index d1310a2167..da42672be6 100644 --- a/test/behavior/type.zig +++ b/test/behavior/type.zig @@ -263,7 +263,7 @@ test "Type.Struct" { const A = @Type(@typeInfo(struct { x: u8, y: u32 })); const infoA = @typeInfo(A).Struct; - try testing.expectEqual(Type.ContainerLayout.Auto, infoA.layout); + try testing.expectEqual(Type.ContainerLayout.auto, infoA.layout); try testing.expectEqualSlices(u8, "x", infoA.fields[0].name); try testing.expectEqual(u8, infoA.fields[0].type); try testing.expectEqual(@as(?*const anyopaque, null), infoA.fields[0].default_value); @@ -281,7 +281,7 @@ test "Type.Struct" { const B = @Type(@typeInfo(extern struct { x: u8, y: u32 = 5 })); const infoB = @typeInfo(B).Struct; - try testing.expectEqual(Type.ContainerLayout.Extern, infoB.layout); + try testing.expectEqual(Type.ContainerLayout.@"extern", infoB.layout); try testing.expectEqualSlices(u8, "x", infoB.fields[0].name); try testing.expectEqual(u8, infoB.fields[0].type); try testing.expectEqual(@as(?*const anyopaque, null), infoB.fields[0].default_value); @@ -293,7 +293,7 @@ test "Type.Struct" { const C = @Type(@typeInfo(packed struct { x: u8 = 3, y: u32 = 5 })); const infoC = @typeInfo(C).Struct; - try testing.expectEqual(Type.ContainerLayout.Packed, infoC.layout); + try testing.expectEqual(Type.ContainerLayout.@"packed", infoC.layout); try testing.expectEqualSlices(u8, "x", infoC.fields[0].name); try testing.expectEqual(u8, infoC.fields[0].type); try testing.expectEqual(@as(u8, 3), @as(*const u8, @ptrCast(infoC.fields[0].default_value.?)).*); @@ -306,7 +306,7 @@ test "Type.Struct" { // anon structs const D = @Type(@typeInfo(@TypeOf(.{ .x = 3, .y = 5 }))); const infoD = @typeInfo(D).Struct; - try testing.expectEqual(Type.ContainerLayout.Auto, infoD.layout); + try testing.expectEqual(Type.ContainerLayout.auto, infoD.layout); try testing.expectEqualSlices(u8, "x", infoD.fields[0].name); try testing.expectEqual(comptime_int, infoD.fields[0].type); try testing.expectEqual(@as(comptime_int, 3), @as(*const comptime_int, @ptrCast(infoD.fields[0].default_value.?)).*); @@ -319,7 +319,7 @@ test "Type.Struct" { // tuples const E = @Type(@typeInfo(@TypeOf(.{ 1, 2 }))); const infoE = @typeInfo(E).Struct; - try testing.expectEqual(Type.ContainerLayout.Auto, infoE.layout); + try testing.expectEqual(Type.ContainerLayout.auto, infoE.layout); try testing.expectEqualSlices(u8, "0", infoE.fields[0].name); try testing.expectEqual(comptime_int, infoE.fields[0].type); try testing.expectEqual(@as(comptime_int, 1), @as(*const comptime_int, @ptrCast(infoE.fields[0].default_value.?)).*); @@ -332,14 +332,14 @@ test "Type.Struct" { // empty struct const F = @Type(@typeInfo(struct {})); const infoF = @typeInfo(F).Struct; - try testing.expectEqual(Type.ContainerLayout.Auto, infoF.layout); + try testing.expectEqual(Type.ContainerLayout.auto, infoF.layout); try testing.expect(infoF.fields.len == 0); try testing.expectEqual(@as(bool, false), infoF.is_tuple); // empty tuple const G = @Type(@typeInfo(@TypeOf(.{}))); const infoG = @typeInfo(G).Struct; - try testing.expectEqual(Type.ContainerLayout.Auto, infoG.layout); + try testing.expectEqual(Type.ContainerLayout.auto, infoG.layout); try testing.expect(infoG.fields.len == 0); try testing.expectEqual(@as(bool, true), infoG.is_tuple); } @@ -386,7 +386,7 @@ test "Type.Union" { const Untagged = @Type(.{ .Union = .{ - .layout = .Extern, + .layout = .@"extern", .tag_type = null, .fields = &.{ .{ .name = "int", .type = i32, .alignment = @alignOf(f32) }, @@ -402,7 +402,7 @@ test "Type.Union" { const PackedUntagged = @Type(.{ .Union = .{ - .layout = .Packed, + .layout = .@"packed", .tag_type = null, .fields = &.{ .{ .name = "signed", .type = i32, .alignment = @alignOf(i32) }, @@ -429,7 +429,7 @@ test "Type.Union" { }); const Tagged = @Type(.{ .Union = .{ - .layout = .Auto, + .layout = .auto, .tag_type = Tag, .fields = &.{ .{ .name = "signed", .type = i32, .alignment = @alignOf(i32) }, @@ -457,7 +457,7 @@ test "Type.Union from Type.Enum" { }); const T = @Type(.{ .Union = .{ - .layout = .Auto, + .layout = .auto, .tag_type = Tag, .fields = &.{ .{ .name = "working_as_expected", .type = u32, .alignment = @alignOf(u32) }, @@ -472,7 +472,7 @@ test "Type.Union from regular enum" { const E = enum { working_as_expected }; const T = @Type(.{ .Union = .{ - .layout = .Auto, + .layout = .auto, .tag_type = E, .fields = &.{ .{ .name = "working_as_expected", .type = u32, .alignment = @alignOf(u32) }, @@ -487,7 +487,7 @@ test "Type.Union from empty regular enum" { const E = enum {}; const U = @Type(.{ .Union = .{ - .layout = .Auto, + .layout = .auto, .tag_type = E, .fields = &.{}, .decls = &.{}, @@ -507,7 +507,7 @@ test "Type.Union from empty Type.Enum" { }); const U = @Type(.{ .Union = .{ - .layout = .Auto, + .layout = .auto, .tag_type = E, .fields = &.{}, .decls = &.{}, @@ -553,7 +553,7 @@ test "reified struct field name from optional payload" { const m_name: ?[1:0]u8 = "a".*; if (m_name) |*name| { const T = @Type(.{ .Struct = .{ - .layout = .Auto, + .layout = .auto, .fields = &.{.{ .name = name, .type = u8, @@ -575,7 +575,7 @@ test "reified union uses @alignOf" { fn CreateUnion(comptime T: type) type { return @Type(.{ .Union = .{ - .layout = .Auto, + .layout = .auto, .tag_type = null, .fields = &[_]std.builtin.Type.UnionField{ .{ @@ -597,7 +597,7 @@ test "reified struct uses @alignOf" { fn NamespacedGlobals(comptime modules: anytype) type { return @Type(.{ .Struct = .{ - .layout = .Auto, + .layout = .auto, .is_tuple = false, .fields = &.{ .{ @@ -659,7 +659,7 @@ test "empty struct assigned to reified struct field" { fn NamespacedComponents(comptime modules: anytype) type { return @Type(.{ .Struct = .{ - .layout = .Auto, + .layout = .auto, .is_tuple = false, .fields = &.{.{ .name = "components", @@ -721,7 +721,7 @@ test "struct field names sliced at comptime from larger string" { const T = @Type(.{ .Struct = .{ - .layout = .Auto, + .layout = .auto, .is_tuple = false, .fields = fields, .decls = &.{}, diff --git a/test/behavior/type_info.zig b/test/behavior/type_info.zig index 8b4674d346..d4e3eb3b83 100644 --- a/test/behavior/type_info.zig +++ b/test/behavior/type_info.zig @@ -250,7 +250,7 @@ test "type info: union info" { fn testUnion() !void { const typeinfo_info = @typeInfo(Type); try expect(typeinfo_info == .Union); - try expect(typeinfo_info.Union.layout == .Auto); + try expect(typeinfo_info.Union.layout == .auto); try expect(typeinfo_info.Union.tag_type.? == TypeId); try expect(typeinfo_info.Union.fields.len == 24); try expect(typeinfo_info.Union.fields[4].type == @TypeOf(@typeInfo(u8).Int)); @@ -264,7 +264,7 @@ fn testUnion() !void { const notag_union_info = @typeInfo(TestNoTagUnion); try expect(notag_union_info == .Union); try expect(notag_union_info.Union.tag_type == null); - try expect(notag_union_info.Union.layout == .Auto); + try expect(notag_union_info.Union.layout == .auto); try expect(notag_union_info.Union.fields.len == 2); try expect(notag_union_info.Union.fields[0].alignment == @alignOf(void)); try expect(notag_union_info.Union.fields[1].type == u32); @@ -275,7 +275,7 @@ fn testUnion() !void { }; const extern_union_info = @typeInfo(TestExternUnion); - try expect(extern_union_info.Union.layout == .Extern); + try expect(extern_union_info.Union.layout == .@"extern"); try expect(extern_union_info.Union.tag_type == null); try expect(extern_union_info.Union.fields[0].type == *anyopaque); } @@ -310,7 +310,7 @@ fn testPackedStruct() !void { const struct_info = @typeInfo(TestPackedStruct); try expect(struct_info == .Struct); try expect(struct_info.Struct.is_tuple == false); - try expect(struct_info.Struct.layout == .Packed); + try expect(struct_info.Struct.layout == .@"packed"); try expect(struct_info.Struct.backing_integer == u128); try expect(struct_info.Struct.fields.len == 4); try expect(struct_info.Struct.fields[0].alignment == 0); diff --git a/test/cases/compile_errors/atomic_orderings_of_atomicStore_Acquire_or_AcqRel.zig b/test/cases/compile_errors/atomic_orderings_of_atomicStore_Acquire_or_AcqRel.zig index be910701c4..b2ca6950f7 100644 --- a/test/cases/compile_errors/atomic_orderings_of_atomicStore_Acquire_or_AcqRel.zig +++ b/test/cases/compile_errors/atomic_orderings_of_atomicStore_Acquire_or_AcqRel.zig @@ -1,10 +1,10 @@ export fn entry() void { var x: u32 = 0; - @atomicStore(u32, &x, 1, .Acquire); + @atomicStore(u32, &x, 1, .acquire); } // error // backend=stage2 // target=native // -// :3:31: error: @atomicStore atomic ordering must not be Acquire or AcqRel +// :3:31: error: @atomicStore atomic ordering must not be acquire or acq_rel diff --git a/test/cases/compile_errors/atomic_orderings_of_cmpxchg-failure_stricter_than_success.zig b/test/cases/compile_errors/atomic_orderings_of_cmpxchg-failure_stricter_than_success.zig index 3e797a031c..9ac4fcb735 100644 --- a/test/cases/compile_errors/atomic_orderings_of_cmpxchg-failure_stricter_than_success.zig +++ b/test/cases/compile_errors/atomic_orderings_of_cmpxchg-failure_stricter_than_success.zig @@ -1,7 +1,7 @@ const AtomicOrder = @import("std").builtin.AtomicOrder; export fn f() void { var x: i32 = 1234; - while (!@cmpxchgWeak(i32, &x, 1234, 5678, AtomicOrder.Monotonic, AtomicOrder.SeqCst)) {} + while (!@cmpxchgWeak(i32, &x, 1234, 5678, AtomicOrder.monotonic, AtomicOrder.seq_cst)) {} } // error diff --git a/test/cases/compile_errors/atomic_orderings_of_cmpxchg-success_Monotonic_or_stricter.zig b/test/cases/compile_errors/atomic_orderings_of_cmpxchg-success_Monotonic_or_stricter.zig index 0ab227f039..66bb505fab 100644 --- a/test/cases/compile_errors/atomic_orderings_of_cmpxchg-success_Monotonic_or_stricter.zig +++ b/test/cases/compile_errors/atomic_orderings_of_cmpxchg-success_Monotonic_or_stricter.zig @@ -1,11 +1,11 @@ const AtomicOrder = @import("std").builtin.AtomicOrder; export fn f() void { var x: i32 = 1234; - while (!@cmpxchgWeak(i32, &x, 1234, 5678, AtomicOrder.Unordered, AtomicOrder.Unordered)) {} + while (!@cmpxchgWeak(i32, &x, 1234, 5678, AtomicOrder.unordered, AtomicOrder.unordered)) {} } // error // backend=stage2 // target=native // -// :4:58: error: success atomic ordering must be Monotonic or stricter +// :4:58: error: success atomic ordering must be monotonic or stricter diff --git a/test/cases/compile_errors/atomic_orderings_of_fence_Acquire_or_stricter.zig b/test/cases/compile_errors/atomic_orderings_of_fence_Acquire_or_stricter.zig index 3982cc6bc2..63437e71ce 100644 --- a/test/cases/compile_errors/atomic_orderings_of_fence_Acquire_or_stricter.zig +++ b/test/cases/compile_errors/atomic_orderings_of_fence_Acquire_or_stricter.zig @@ -1,9 +1,9 @@ export fn entry() void { - @fence(.Monotonic); + @fence(.monotonic); } // error // backend=stage2 // target=native // -// :2:13: error: atomic ordering must be Acquire or stricter +// :2:13: error: atomic ordering must be acquire or stricter diff --git a/test/cases/compile_errors/atomicrmw_with_bool_op_not_.Xchg.zig b/test/cases/compile_errors/atomicrmw_with_bool_op_not_.Xchg.zig index 4582be60a6..04e448b865 100644 --- a/test/cases/compile_errors/atomicrmw_with_bool_op_not_.Xchg.zig +++ b/test/cases/compile_errors/atomicrmw_with_bool_op_not_.Xchg.zig @@ -1,6 +1,6 @@ export fn entry() void { var x = false; - _ = @atomicRmw(bool, &x, .Add, true, .SeqCst); + _ = @atomicRmw(bool, &x, .Add, true, .seq_cst); } // error diff --git a/test/cases/compile_errors/atomicrmw_with_enum_op_not_.Xchg.zig b/test/cases/compile_errors/atomicrmw_with_enum_op_not_.Xchg.zig index 197eee9f7c..2725d07c2f 100644 --- a/test/cases/compile_errors/atomicrmw_with_enum_op_not_.Xchg.zig +++ b/test/cases/compile_errors/atomicrmw_with_enum_op_not_.Xchg.zig @@ -6,7 +6,7 @@ export fn entry() void { d, }; var x: E = .a; - _ = @atomicRmw(E, &x, .Add, .b, .SeqCst); + _ = @atomicRmw(E, &x, .Add, .b, .seq_cst); } // error diff --git a/test/cases/compile_errors/atomicrmw_with_float_op_not_.Xchg_.Add_.Sub_.Max_or_.Min.zig b/test/cases/compile_errors/atomicrmw_with_float_op_not_.Xchg_.Add_.Sub_.Max_or_.Min.zig index 5714b323f1..c877eea8d2 100644 --- a/test/cases/compile_errors/atomicrmw_with_float_op_not_.Xchg_.Add_.Sub_.Max_or_.Min.zig +++ b/test/cases/compile_errors/atomicrmw_with_float_op_not_.Xchg_.Add_.Sub_.Max_or_.Min.zig @@ -1,6 +1,6 @@ export fn entry() void { var x: f32 = 0; - _ = @atomicRmw(f32, &x, .And, 2, .SeqCst); + _ = @atomicRmw(f32, &x, .And, 2, .seq_cst); } // error diff --git a/test/cases/compile_errors/cmpxchg_with_float.zig b/test/cases/compile_errors/cmpxchg_with_float.zig index 1acfdd14d8..1c2b7b6393 100644 --- a/test/cases/compile_errors/cmpxchg_with_float.zig +++ b/test/cases/compile_errors/cmpxchg_with_float.zig @@ -1,6 +1,6 @@ export fn entry() void { var x: f32 = 0; - _ = @cmpxchgWeak(f32, &x, 1, 2, .SeqCst, .SeqCst); + _ = @cmpxchgWeak(f32, &x, 1, 2, .seq_cst, .seq_cst); } // error diff --git a/test/cases/compile_errors/packed_struct_field_alignment_unavailable_for_reify_type.zig b/test/cases/compile_errors/packed_struct_field_alignment_unavailable_for_reify_type.zig index 9f0fb6773d..fe0a42b74a 100644 --- a/test/cases/compile_errors/packed_struct_field_alignment_unavailable_for_reify_type.zig +++ b/test/cases/compile_errors/packed_struct_field_alignment_unavailable_for_reify_type.zig @@ -1,5 +1,5 @@ export fn entry() void { - _ = @Type(.{ .Struct = .{ .layout = .Packed, .fields = &.{ + _ = @Type(.{ .Struct = .{ .layout = .@"packed", .fields = &.{ .{ .name = "one", .type = u4, .default_value = null, .is_comptime = false, .alignment = 2 }, }, .decls = &.{}, .is_tuple = false } }); } diff --git a/test/cases/compile_errors/passing_a_not-aligned-enough_pointer_to_cmpxchg.zig b/test/cases/compile_errors/passing_a_not-aligned-enough_pointer_to_cmpxchg.zig index 6deb06b1ff..70041f52be 100644 --- a/test/cases/compile_errors/passing_a_not-aligned-enough_pointer_to_cmpxchg.zig +++ b/test/cases/compile_errors/passing_a_not-aligned-enough_pointer_to_cmpxchg.zig @@ -1,7 +1,7 @@ const AtomicOrder = @import("std").builtin.AtomicOrder; export fn entry() bool { var x: i32 align(1) = 1234; - while (!@cmpxchgWeak(i32, &x, 1234, 5678, AtomicOrder.SeqCst, AtomicOrder.SeqCst)) {} + while (!@cmpxchgWeak(i32, &x, 1234, 5678, AtomicOrder.seq_cst, AtomicOrder.seq_cst)) {} return x == 5678; } diff --git a/test/cases/compile_errors/reify_struct.zig b/test/cases/compile_errors/reify_struct.zig index 3d11d42996..df00a47b53 100644 --- a/test/cases/compile_errors/reify_struct.zig +++ b/test/cases/compile_errors/reify_struct.zig @@ -1,6 +1,6 @@ comptime { @Type(.{ .Struct = .{ - .layout = .Auto, + .layout = .auto, .fields = &.{.{ .name = "foo", .type = u32, @@ -14,7 +14,7 @@ comptime { } comptime { @Type(.{ .Struct = .{ - .layout = .Auto, + .layout = .auto, .fields = &.{.{ .name = "3", .type = u32, @@ -28,7 +28,7 @@ comptime { } comptime { @Type(.{ .Struct = .{ - .layout = .Auto, + .layout = .auto, .fields = &.{.{ .name = "0", .type = u32, @@ -42,7 +42,7 @@ comptime { } comptime { @Type(.{ .Struct = .{ - .layout = .Extern, + .layout = .@"extern", .fields = &.{.{ .name = "0", .type = u32, @@ -56,7 +56,7 @@ comptime { } comptime { @Type(.{ .Struct = .{ - .layout = .Packed, + .layout = .@"packed", .fields = &.{.{ .name = "0", .type = u32, diff --git a/test/cases/compile_errors/reify_type_for_tagged_union_with_extra_enum_field.zig b/test/cases/compile_errors/reify_type_for_tagged_union_with_extra_enum_field.zig index b32100ab73..0ea0b019b9 100644 --- a/test/cases/compile_errors/reify_type_for_tagged_union_with_extra_enum_field.zig +++ b/test/cases/compile_errors/reify_type_for_tagged_union_with_extra_enum_field.zig @@ -12,7 +12,7 @@ const Tag = @Type(.{ }); const Tagged = @Type(.{ .Union = .{ - .layout = .Auto, + .layout = .auto, .tag_type = Tag, .fields = &.{ .{ .name = "signed", .type = i32, .alignment = @alignOf(i32) }, diff --git a/test/cases/compile_errors/reify_type_for_tagged_union_with_extra_union_field.zig b/test/cases/compile_errors/reify_type_for_tagged_union_with_extra_union_field.zig index 559eb81fcd..ed6f2245d4 100644 --- a/test/cases/compile_errors/reify_type_for_tagged_union_with_extra_union_field.zig +++ b/test/cases/compile_errors/reify_type_for_tagged_union_with_extra_union_field.zig @@ -11,7 +11,7 @@ const Tag = @Type(.{ }); const Tagged = @Type(.{ .Union = .{ - .layout = .Auto, + .layout = .auto, .tag_type = Tag, .fields = &.{ .{ .name = "signed", .type = i32, .alignment = @alignOf(i32) }, diff --git a/test/cases/compile_errors/reify_type_for_tagged_union_with_no_enum_fields.zig b/test/cases/compile_errors/reify_type_for_tagged_union_with_no_enum_fields.zig index 17f7e91870..91c5354c0c 100644 --- a/test/cases/compile_errors/reify_type_for_tagged_union_with_no_enum_fields.zig +++ b/test/cases/compile_errors/reify_type_for_tagged_union_with_no_enum_fields.zig @@ -8,7 +8,7 @@ const Tag = @Type(.{ }); const Tagged = @Type(.{ .Union = .{ - .layout = .Auto, + .layout = .auto, .tag_type = Tag, .fields = &.{ .{ .name = "signed", .type = i32, .alignment = @alignOf(i32) }, diff --git a/test/cases/compile_errors/reify_type_for_tagged_union_with_no_union_fields.zig b/test/cases/compile_errors/reify_type_for_tagged_union_with_no_union_fields.zig index 4023ebd74f..2dc9832470 100644 --- a/test/cases/compile_errors/reify_type_for_tagged_union_with_no_union_fields.zig +++ b/test/cases/compile_errors/reify_type_for_tagged_union_with_no_union_fields.zig @@ -11,7 +11,7 @@ const Tag = @Type(.{ }); const Tagged = @Type(.{ .Union = .{ - .layout = .Auto, + .layout = .auto, .tag_type = Tag, .fields = &.{}, .decls = &.{}, diff --git a/test/cases/compile_errors/reify_type_for_union_with_opaque_field.zig b/test/cases/compile_errors/reify_type_for_union_with_opaque_field.zig index df70934871..568b229104 100644 --- a/test/cases/compile_errors/reify_type_for_union_with_opaque_field.zig +++ b/test/cases/compile_errors/reify_type_for_union_with_opaque_field.zig @@ -1,6 +1,6 @@ const Untagged = @Type(.{ .Union = .{ - .layout = .Auto, + .layout = .auto, .tag_type = null, .fields = &.{ .{ .name = "foo", .type = opaque {}, .alignment = 1 }, diff --git a/test/cases/compile_errors/reify_type_with_invalid_field_alignment.zig b/test/cases/compile_errors/reify_type_with_invalid_field_alignment.zig index dc57ded029..10792cad04 100644 --- a/test/cases/compile_errors/reify_type_with_invalid_field_alignment.zig +++ b/test/cases/compile_errors/reify_type_with_invalid_field_alignment.zig @@ -1,7 +1,7 @@ comptime { _ = @Type(.{ .Union = .{ - .layout = .Auto, + .layout = .auto, .tag_type = null, .fields = &.{ .{ .name = "foo", .type = usize, .alignment = 3 }, @@ -13,7 +13,7 @@ comptime { comptime { _ = @Type(.{ .Struct = .{ - .layout = .Auto, + .layout = .auto, .fields = &.{.{ .name = "0", .type = u32, diff --git a/test/cases/compile_errors/reify_type_with_undefined.zig b/test/cases/compile_errors/reify_type_with_undefined.zig index 59c0314773..e3daa316e3 100644 --- a/test/cases/compile_errors/reify_type_with_undefined.zig +++ b/test/cases/compile_errors/reify_type_with_undefined.zig @@ -7,7 +7,7 @@ comptime { .fields = undefined, .decls = undefined, .is_tuple = false, - .layout = .Auto, + .layout = .auto, }, }); } @@ -16,7 +16,7 @@ comptime { const fields: [1]std.builtin.Type.StructField = undefined; _ = @Type(.{ .Struct = .{ - .layout = .Auto, + .layout = .auto, .fields = &fields, .decls = &.{}, .is_tuple = false, diff --git a/test/link/elf.zig b/test/link/elf.zig index 20cc95c92a..d872796cd4 100644 --- a/test/link/elf.zig +++ b/test/link/elf.zig @@ -799,8 +799,8 @@ fn testEmitStaticLib(b: *Build, opts: Options) *Step { \\} \\export var strongBar: usize = 100; \\comptime { - \\ @export(weakFoo, .{ .name = "weakFoo", .linkage = .Weak }); - \\ @export(strongBar, .{ .name = "strongBarAlias", .linkage = .Strong }); + \\ @export(weakFoo, .{ .name = "weakFoo", .linkage = .weak }); + \\ @export(strongBar, .{ .name = "strongBarAlias", .linkage = .strong }); \\} , }); diff --git a/test/link/macho.zig b/test/link/macho.zig index 9208995ae0..f2067dd70d 100644 --- a/test/link/macho.zig +++ b/test/link/macho.zig @@ -1153,7 +1153,7 @@ fn testReexportsZig(b: *Build, opts: Options) *Step { \\ return x; \\} \\comptime { - \\ @export(foo, .{ .name = "bar", .linkage = .Strong }); + \\ @export(foo, .{ .name = "bar", .linkage = .strong }); \\} }); diff --git a/test/standalone/global_linkage/obj1.zig b/test/standalone/global_linkage/obj1.zig index 83b66f336b..31d472eadb 100644 --- a/test/standalone/global_linkage/obj1.zig +++ b/test/standalone/global_linkage/obj1.zig @@ -2,6 +2,6 @@ var internal_integer: usize = 1; var obj1_integer: usize = 421; comptime { - @export(internal_integer, .{ .name = "internal_integer", .linkage = .Internal }); - @export(obj1_integer, .{ .name = "obj1_integer", .linkage = .Strong }); + @export(internal_integer, .{ .name = "internal_integer", .linkage = .internal }); + @export(obj1_integer, .{ .name = "obj1_integer", .linkage = .strong }); } diff --git a/test/standalone/global_linkage/obj2.zig b/test/standalone/global_linkage/obj2.zig index 2908a627fd..aa387ea6d6 100644 --- a/test/standalone/global_linkage/obj2.zig +++ b/test/standalone/global_linkage/obj2.zig @@ -2,6 +2,6 @@ var internal_integer: usize = 2; var obj2_integer: usize = 422; comptime { - @export(internal_integer, .{ .name = "internal_integer", .linkage = .Internal }); - @export(obj2_integer, .{ .name = "obj2_integer", .linkage = .Strong }); + @export(internal_integer, .{ .name = "internal_integer", .linkage = .internal }); + @export(obj2_integer, .{ .name = "obj2_integer", .linkage = .strong }); } diff --git a/tools/docgen.zig b/tools/docgen.zig index 559b1937e9..b7e1aa1652 100644 --- a/tools/docgen.zig +++ b/tools/docgen.zig @@ -629,7 +629,7 @@ fn genToc(allocator: Allocator, tokenizer: *Tokenizer) !Toc { } else if (mem.eql(u8, end_tag_name, "link_libc")) { link_libc = true; } else if (mem.eql(u8, end_tag_name, "link_mode_dynamic")) { - link_mode = .Dynamic; + link_mode = .dynamic; } else if (mem.eql(u8, end_tag_name, "additonal_option")) { _ = try eatToken(tokenizer, .separator); const option = try eatToken(tokenizer, .tag_content); @@ -1793,11 +1793,11 @@ fn genHtml( } if (code.link_mode) |link_mode| { switch (link_mode) { - .Static => { + .static => { try test_args.append("-static"); try shell_out.print("-static ", .{}); }, - .Dynamic => { + .dynamic => { try test_args.append("-dynamic"); try shell_out.print("-dynamic ", .{}); },