From 6f4343b61afe36a709e713735947561a2b76bce8 Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Tue, 26 Apr 2022 17:08:54 +0200 Subject: [PATCH] std: replace usage of std.meta.bitCount() with @bitSizeOf() --- lib/std/Thread/RwLock.zig | 4 ++-- lib/std/atomic/Atomic.zig | 6 +++--- lib/std/crypto/pcurves/common.zig | 2 +- lib/std/crypto/scrypt.zig | 2 +- lib/std/event/wait_group.zig | 2 +- lib/std/fmt.zig | 2 +- lib/std/heap.zig | 2 +- lib/std/io/bit_reader.zig | 8 ++++---- lib/std/io/bit_writer.zig | 6 +++--- lib/std/math.zig | 4 ++-- lib/std/os.zig | 2 +- src/codegen/spirv.zig | 2 +- src/codegen/spirv/Section.zig | 2 +- 13 files changed, 22 insertions(+), 22 deletions(-) diff --git a/lib/std/Thread/RwLock.zig b/lib/std/Thread/RwLock.zig index 6cce7d1217..201e1cc860 100644 --- a/lib/std/Thread/RwLock.zig +++ b/lib/std/Thread/RwLock.zig @@ -167,10 +167,10 @@ pub const DefaultRwLock = struct { const IS_WRITING: usize = 1; const WRITER: usize = 1 << 1; - const READER: usize = 1 << (1 + std.meta.bitCount(Count)); + const READER: usize = 1 << (1 + @bitSizeOf(Count)); const WRITER_MASK: usize = std.math.maxInt(Count) << @ctz(usize, WRITER); const READER_MASK: usize = std.math.maxInt(Count) << @ctz(usize, READER); - const Count = std.meta.Int(.unsigned, @divFloor(std.meta.bitCount(usize) - 1, 2)); + const Count = std.meta.Int(.unsigned, @divFloor(@bitSizeOf(usize) - 1, 2)); pub fn tryLock(rwl: *DefaultRwLock) bool { if (rwl.mutex.tryLock()) { diff --git a/lib/std/atomic/Atomic.zig b/lib/std/atomic/Atomic.zig index 7e62a9928c..57866d21d6 100644 --- a/lib/std/atomic/Atomic.zig +++ b/lib/std/atomic/Atomic.zig @@ -542,7 +542,7 @@ test "Atomic.bitSet" { inline for (atomicIntTypes()) |Int| { inline for (atomic_rmw_orderings) |ordering| { var x = Atomic(Int).init(0); - const bit_array = @as([std.meta.bitCount(Int)]void, undefined); + const bit_array = @as([@bitSizeOf(Int)]void, undefined); for (bit_array) |_, bit_index| { const bit = @intCast(std.math.Log2Int(Int), bit_index); @@ -572,7 +572,7 @@ test "Atomic.bitReset" { inline for (atomicIntTypes()) |Int| { inline for (atomic_rmw_orderings) |ordering| { var x = Atomic(Int).init(0); - const bit_array = @as([std.meta.bitCount(Int)]void, undefined); + const bit_array = @as([@bitSizeOf(Int)]void, undefined); for (bit_array) |_, bit_index| { const bit = @intCast(std.math.Log2Int(Int), bit_index); @@ -603,7 +603,7 @@ test "Atomic.bitToggle" { inline for (atomicIntTypes()) |Int| { inline for (atomic_rmw_orderings) |ordering| { var x = Atomic(Int).init(0); - const bit_array = @as([std.meta.bitCount(Int)]void, undefined); + const bit_array = @as([@bitSizeOf(Int)]void, undefined); for (bit_array) |_, bit_index| { const bit = @intCast(std.math.Log2Int(Int), bit_index); diff --git a/lib/std/crypto/pcurves/common.zig b/lib/std/crypto/pcurves/common.zig index 917fd70fbd..5eb4e48623 100644 --- a/lib/std/crypto/pcurves/common.zig +++ b/lib/std/crypto/pcurves/common.zig @@ -235,7 +235,7 @@ pub fn Field(comptime params: FieldParams) type { } var v_opp: Limbs = undefined; fiat.opp(&v_opp, v); - fiat.selectznz(&v, @truncate(u1, f[f.len - 1] >> (meta.bitCount(Word) - 1)), v, v_opp); + fiat.selectznz(&v, @truncate(u1, f[f.len - 1] >> (@bitSizeOf(Word) - 1)), v, v_opp); var fe: Fe = undefined; fiat.mul(&fe.limbs, v, precomp); return fe; diff --git a/lib/std/crypto/scrypt.zig b/lib/std/crypto/scrypt.zig index a9506d3d23..31c8b754ff 100644 --- a/lib/std/crypto/scrypt.zig +++ b/lib/std/crypto/scrypt.zig @@ -348,7 +348,7 @@ const crypt_format = struct { } } - fn intDecode(comptime T: type, src: *const [(meta.bitCount(T) + 5) / 6]u8) !T { + fn intDecode(comptime T: type, src: *const [(@bitSizeOf(T) + 5) / 6]u8) !T { var v: T = 0; for (src) |x, i| { const vi = mem.indexOfScalar(u8, &map64, x) orelse return EncodingError.InvalidEncoding; diff --git a/lib/std/event/wait_group.zig b/lib/std/event/wait_group.zig index 4cc82cf98e..c88b01c812 100644 --- a/lib/std/event/wait_group.zig +++ b/lib/std/event/wait_group.zig @@ -14,7 +14,7 @@ const Loop = std.event.Loop; /// `begin` will return error.Overflow when the limit is reached, even /// if the integer type has not has not overflowed. /// By default `max_value` is set to std.math.maxInt(CounterType). -pub const WaitGroup = WaitGroupGeneric(std.meta.bitCount(usize)); +pub const WaitGroup = WaitGroupGeneric(@bitSizeOf(usize)); pub fn WaitGroupGeneric(comptime counter_size: u16) type { const CounterType = std.meta.Int(.unsigned, counter_size); diff --git a/lib/std/fmt.zig b/lib/std/fmt.zig index 994350ffa7..6fa8cfdfa3 100644 --- a/lib/std/fmt.zig +++ b/lib/std/fmt.zig @@ -1121,7 +1121,7 @@ pub fn formatFloatHexadecimal( } const T = @TypeOf(value); - const TU = std.meta.Int(.unsigned, std.meta.bitCount(T)); + const TU = std.meta.Int(.unsigned, @bitSizeOf(T)); const mantissa_bits = math.floatMantissaBits(T); const fractional_bits = math.floatFractionalBits(T); diff --git a/lib/std/heap.zig b/lib/std/heap.zig index deb866fd61..aaf87367d8 100644 --- a/lib/std/heap.zig +++ b/lib/std/heap.zig @@ -1181,7 +1181,7 @@ pub fn testAllocatorLargeAlignment(base_allocator: mem.Allocator) !void { // very near usize? if (mem.page_size << 2 > maxInt(usize)) return; - const USizeShift = std.meta.Int(.unsigned, std.math.log2(std.meta.bitCount(usize))); + const USizeShift = std.meta.Int(.unsigned, std.math.log2(@bitSizeOf(usize))); const large_align = @as(u29, mem.page_size << 2); var align_mask: usize = undefined; diff --git a/lib/std/io/bit_reader.zig b/lib/std/io/bit_reader.zig index 83b6c03876..aebb189942 100644 --- a/lib/std/io/bit_reader.zig +++ b/lib/std/io/bit_reader.zig @@ -17,9 +17,9 @@ pub fn BitReader(endian: std.builtin.Endian, comptime ReaderType: type) type { pub const Reader = io.Reader(*Self, Error, read); const Self = @This(); - const u8_bit_count = meta.bitCount(u8); - const u7_bit_count = meta.bitCount(u7); - const u4_bit_count = meta.bitCount(u4); + const u8_bit_count = @bitSizeOf(u8); + const u7_bit_count = @bitSizeOf(u7); + const u4_bit_count = @bitSizeOf(u4); pub fn init(forward_reader: ReaderType) Self { return Self{ @@ -47,7 +47,7 @@ pub fn BitReader(endian: std.builtin.Endian, comptime ReaderType: type) type { //by extending the buffer to a minimum of u8 we can cover a number of edge cases // related to shifting and casting. - const u_bit_count = comptime meta.bitCount(U); + const u_bit_count = @bitSizeOf(U); const buf_bit_count = bc: { assert(u_bit_count >= bits); break :bc if (u_bit_count <= u8_bit_count) u8_bit_count else u_bit_count; diff --git a/lib/std/io/bit_writer.zig b/lib/std/io/bit_writer.zig index ea8f984f0e..d71afe5fe5 100644 --- a/lib/std/io/bit_writer.zig +++ b/lib/std/io/bit_writer.zig @@ -17,8 +17,8 @@ pub fn BitWriter(endian: std.builtin.Endian, comptime WriterType: type) type { pub const Writer = io.Writer(*Self, Error, write); const Self = @This(); - const u8_bit_count = meta.bitCount(u8); - const u4_bit_count = meta.bitCount(u4); + const u8_bit_count = @bitSizeOf(u8); + const u4_bit_count = @bitSizeOf(u4); pub fn init(forward_writer: WriterType) Self { return Self{ @@ -39,7 +39,7 @@ pub fn BitWriter(endian: std.builtin.Endian, comptime WriterType: type) type { //by extending the buffer to a minimum of u8 we can cover a number of edge cases // related to shifting and casting. - const u_bit_count = comptime meta.bitCount(U); + const u_bit_count = @bitSizeOf(U); const buf_bit_count = bc: { assert(u_bit_count >= bits); break :bc if (u_bit_count <= u8_bit_count) u8_bit_count else u_bit_count; diff --git a/lib/std/math.zig b/lib/std/math.zig index 387faf4c97..b229c8973e 100644 --- a/lib/std/math.zig +++ b/lib/std/math.zig @@ -947,10 +947,10 @@ test "absCast" { /// Returns the negation of the integer parameter. /// Result is a signed integer. -pub fn negateCast(x: anytype) !std.meta.Int(.signed, std.meta.bitCount(@TypeOf(x))) { +pub fn negateCast(x: anytype) !std.meta.Int(.signed, @bitSizeOf(@TypeOf(x))) { if (@typeInfo(@TypeOf(x)).Int.signedness == .signed) return negate(x); - const int = std.meta.Int(.signed, std.meta.bitCount(@TypeOf(x))); + const int = std.meta.Int(.signed, @bitSizeOf(@TypeOf(x))); if (x > -minInt(int)) return error.Overflow; if (x == -minInt(int)) return minInt(int); diff --git a/lib/std/os.zig b/lib/std/os.zig index f9ee65a317..03f00a5d30 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -5561,7 +5561,7 @@ pub fn res_mkquery( // Make a reasonably unpredictable id var ts: timespec = undefined; clock_gettime(CLOCK.REALTIME, &ts) catch {}; - const UInt = std.meta.Int(.unsigned, std.meta.bitCount(@TypeOf(ts.tv_nsec))); + const UInt = std.meta.Int(.unsigned, @bitSizeOf(@TypeOf(ts.tv_nsec))); const unsec = @bitCast(UInt, ts.tv_nsec); const id = @truncate(u32, unsec + unsec / 65536); q[0] = @truncate(u8, id / 256); diff --git a/src/codegen/spirv.zig b/src/codegen/spirv.zig index 791c2dc187..0dc39db134 100644 --- a/src/codegen/spirv.zig +++ b/src/codegen/spirv.zig @@ -341,7 +341,7 @@ pub const DeclGen = struct { // We can just use toSignedInt/toUnsignedInt here as it returns u64 - a type large enough to hold any // SPIR-V native type (up to i/u64 with Int64). If SPIR-V ever supports native ints of a larger size, this // might need to be updated. - assert(self.largestSupportedIntBits() <= std.meta.bitCount(u64)); + assert(self.largestSupportedIntBits() <= @bitSizeOf(u64)); // Note, value is required to be sign-extended, so we don't need to mask off the upper bits. // See https://www.khronos.org/registry/SPIR-V/specs/unified1/SPIRV.html#Literal diff --git a/src/codegen/spirv/Section.zig b/src/codegen/spirv/Section.zig index 83383e442a..6ed2de92f0 100644 --- a/src/codegen/spirv/Section.zig +++ b/src/codegen/spirv/Section.zig @@ -170,7 +170,7 @@ fn writeString(section: *Section, str: []const u8) void { var j: usize = 0; while (j < @sizeOf(Word) and i + j < str.len) : (j += 1) { - word |= @as(Word, str[i + j]) << @intCast(Log2Word, j * std.meta.bitCount(u8)); + word |= @as(Word, str[i + j]) << @intCast(Log2Word, j * @bitSizeOf(u8)); } section.instructions.appendAssumeCapacity(word);