From 927e61d7f831464a2baa2ca12fd4aa08d312607c Mon Sep 17 00:00:00 2001 From: Reuben Dunnington Date: Wed, 29 Mar 2023 23:42:56 -0700 Subject: [PATCH 1/8] upgrade to 0.11.x compiler syntax --- stable_array.zig | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/stable_array.zig b/stable_array.zig index c2dae2f..a334fc7 100644 --- a/stable_array.zig +++ b/stable_array.zig @@ -76,7 +76,7 @@ pub fn StableArrayAligned(comptime T: type, comptime alignment: u29) type { mem.copy(T, range, new_items); const after_subrange = start + new_items.len; - for (self.items[after_range..]) |item, i| { + for (self.items[after_range..], 0..) |item, i| { self.items[after_subrange..][i] = item; } @@ -166,7 +166,7 @@ pub fn StableArrayAligned(comptime T: type, comptime alignment: u29) type { if (newlen == i) return self.pop(); const old_item = self.items[i]; - for (self.items[i..newlen]) |*b, j| b.* = self.items[i + 1 + j]; + for (self.items[i..newlen], 0..) |*b, j| b.* = self.items[i + 1 + j]; self.items[newlen] = undefined; self.items.len = newlen; return old_item; @@ -356,7 +356,7 @@ test "append" { var a = StableArray(u8).init(TEST_VIRTUAL_ALLOC_SIZE); try a.appendSlice(&[_]u8{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }); assert(a.calcTotalUsedBytes() == mem.page_size); - for (a.items) |v, i| { + for (a.items, 0..) |v, i| { assert(v == i); } a.deinit(); @@ -364,7 +364,7 @@ test "append" { var b = StableArrayAligned(u8, mem.page_size).init(TEST_VIRTUAL_ALLOC_SIZE); try b.appendSlice(&[_]u8{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }); assert(b.calcTotalUsedBytes() == mem.page_size * 10); - for (b.items) |v, i| { + for (b.items, 0..) |v, i| { assert(v == i); } b.deinit(); @@ -376,7 +376,7 @@ test "shrinkAndFree" { a.shrinkAndFree(5); assert(a.calcTotalUsedBytes() == mem.page_size); assert(a.items.len == 5); - for (a.items) |v, i| { + for (a.items, 0..) |v, i| { assert(v == i); } a.deinit(); @@ -386,7 +386,7 @@ test "shrinkAndFree" { b.shrinkAndFree(5); assert(b.calcTotalUsedBytes() == mem.page_size * 5); assert(b.items.len == 5); - for (b.items) |v, i| { + for (b.items, 0..) |v, i| { assert(v == i); } b.deinit(); @@ -397,7 +397,7 @@ test "shrinkAndFree" { assert(c.calcTotalUsedBytes() == mem.page_size * 3); assert(c.capacity == 6); assert(c.items.len == 5); - for (c.items) |v, i| { + for (c.items, 0..) |v, i| { assert(v == i); } c.deinit(); From 2d8558f9111005d6568ecf725581e1c4a2088d9b Mon Sep 17 00:00:00 2001 From: Reuben Dunnington Date: Sun, 4 Jun 2023 19:39:21 -0700 Subject: [PATCH 2/8] update ci to use zig master --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1df4cf2..41f6e72 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,5 +12,5 @@ jobs: - uses: actions/checkout@v2 - uses: goto-bus-stop/setup-zig@v2 with: - version: 0.10.0 + version: master - run: zig test stable_array.zig From a1a5983c65502e0c883bd53006cd6d7925ccf20e Mon Sep 17 00:00:00 2001 From: Reuben Dunnington Date: Sun, 4 Jun 2023 19:45:56 -0700 Subject: [PATCH 3/8] upgrade mem.set to @memset --- stable_array.zig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stable_array.zig b/stable_array.zig index a334fc7..cfe4e2f 100644 --- a/stable_array.zig +++ b/stable_array.zig @@ -110,13 +110,13 @@ pub fn StableArrayAligned(comptime T: type, comptime alignment: u29) type { pub fn appendNTimes(self: *Self, value: T, n: usize) !void { const old_len = self.items.len; try self.resize(self.items.len + n); - mem.set(T, self.items[old_len..self.items.len], value); + @memset(self.items[old_len..self.items.len], value); } pub fn appendNTimesAssumeCapacity(self: *Self, value: T, n: usize) void { const new_len = self.items.len + n; assert(new_len <= self.capacity); - mem.set(T, self.items.ptr[self.items.len..new_len], value); + @memset(self.items.ptr[self.items.len..new_len], value); self.items.len = new_len; } From 0109573db3f8cf8e4404347a0a856aed7825b0de Mon Sep 17 00:00:00 2001 From: Reuben Dunnington Date: Wed, 29 Mar 2023 23:42:56 -0700 Subject: [PATCH 4/8] upgrade to 0.11.x compiler syntax --- stable_array.zig | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/stable_array.zig b/stable_array.zig index ac64e0e..4517fe5 100644 --- a/stable_array.zig +++ b/stable_array.zig @@ -76,7 +76,7 @@ pub fn StableArrayAligned(comptime T: type, comptime alignment: u29) type { mem.copy(T, range, new_items); const after_subrange = start + new_items.len; - for (self.items[after_range..]) |item, i| { + for (self.items[after_range..], 0..) |item, i| { self.items[after_subrange..][i] = item; } @@ -166,7 +166,7 @@ pub fn StableArrayAligned(comptime T: type, comptime alignment: u29) type { if (newlen == i) return self.pop(); const old_item = self.items[i]; - for (self.items[i..newlen]) |*b, j| b.* = self.items[i + 1 + j]; + for (self.items[i..newlen], 0..) |*b, j| b.* = self.items[i + 1 + j]; self.items[newlen] = undefined; self.items.len = newlen; return old_item; @@ -356,7 +356,7 @@ test "append" { var a = StableArray(u8).init(TEST_VIRTUAL_ALLOC_SIZE); try a.appendSlice(&[_]u8{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }); assert(a.calcTotalUsedBytes() == mem.page_size); - for (a.items) |v, i| { + for (a.items, 0..) |v, i| { assert(v == i); } a.deinit(); @@ -364,7 +364,7 @@ test "append" { var b = StableArrayAligned(u8, mem.page_size).init(TEST_VIRTUAL_ALLOC_SIZE); try b.appendSlice(&[_]u8{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }); assert(b.calcTotalUsedBytes() == mem.page_size * 10); - for (b.items) |v, i| { + for (b.items, 0..) |v, i| { assert(v == i); } b.deinit(); @@ -376,7 +376,7 @@ test "shrinkAndFree" { a.shrinkAndFree(5); assert(a.calcTotalUsedBytes() == mem.page_size); assert(a.items.len == 5); - for (a.items) |v, i| { + for (a.items, 0..) |v, i| { assert(v == i); } a.deinit(); @@ -386,7 +386,7 @@ test "shrinkAndFree" { b.shrinkAndFree(5); assert(b.calcTotalUsedBytes() == mem.page_size * 5); assert(b.items.len == 5); - for (b.items) |v, i| { + for (b.items, 0..) |v, i| { assert(v == i); } b.deinit(); @@ -397,7 +397,7 @@ test "shrinkAndFree" { assert(c.calcTotalUsedBytes() == mem.page_size * 3); assert(c.capacity == 6); assert(c.items.len == 5); - for (c.items) |v, i| { + for (c.items, 0..) |v, i| { assert(v == i); } c.deinit(); From 966c3cea957361e867a3558ed9561c6e99d6921e Mon Sep 17 00:00:00 2001 From: Reuben Dunnington Date: Sun, 4 Jun 2023 19:39:21 -0700 Subject: [PATCH 5/8] update ci to use zig master --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1df4cf2..41f6e72 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,5 +12,5 @@ jobs: - uses: actions/checkout@v2 - uses: goto-bus-stop/setup-zig@v2 with: - version: 0.10.0 + version: master - run: zig test stable_array.zig From 859335f0420ea9a6bddcbaa99ffc576990b367c4 Mon Sep 17 00:00:00 2001 From: Reuben Dunnington Date: Sun, 4 Jun 2023 19:45:56 -0700 Subject: [PATCH 6/8] upgrade mem.set to @memset --- stable_array.zig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stable_array.zig b/stable_array.zig index 4517fe5..f8148b6 100644 --- a/stable_array.zig +++ b/stable_array.zig @@ -110,13 +110,13 @@ pub fn StableArrayAligned(comptime T: type, comptime alignment: u29) type { pub fn appendNTimes(self: *Self, value: T, n: usize) !void { const old_len = self.items.len; try self.resize(self.items.len + n); - mem.set(T, self.items[old_len..self.items.len], value); + @memset(self.items[old_len..self.items.len], value); } pub fn appendNTimesAssumeCapacity(self: *Self, value: T, n: usize) void { const new_len = self.items.len + n; assert(new_len <= self.capacity); - mem.set(T, self.items.ptr[self.items.len..new_len], value); + @memset(self.items.ptr[self.items.len..new_len], value); self.items.len = new_len; } From 2d2ae06e8bd1a856950ad28f4ec1f271a92acddb Mon Sep 17 00:00:00 2001 From: Reuben Dunnington Date: Tue, 15 Aug 2023 21:37:29 -0700 Subject: [PATCH 7/8] update mem.alignForward and @ptrCast/@alignCast --- stable_array.zig | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/stable_array.zig b/stable_array.zig index f8148b6..707371c 100644 --- a/stable_array.zig +++ b/stable_array.zig @@ -196,12 +196,12 @@ pub fn StableArrayAligned(comptime T: type, comptime alignment: u29) type { if (builtin.os.tag == .windows) { const w = os.windows; - const addr: usize = @ptrToInt(self.items.ptr) + new_capacity_bytes; - w.VirtualFree(@intToPtr(w.PVOID, addr), bytes_to_free, w.MEM_DECOMMIT); + const addr: usize = @intFromPtr(self.items.ptr) + new_capacity_bytes; + w.VirtualFree(@as(w.PVOID, @ptrFromInt(addr)), bytes_to_free, w.MEM_DECOMMIT); } else { - var base_addr: usize = @ptrToInt(self.items.ptr); + var base_addr: usize = @intFromPtr(self.items.ptr); var offset_addr: usize = base_addr + new_capacity_bytes; - var addr: [*]align(mem.page_size) u8 = @alignCast(mem.page_size, @intToPtr([*]u8, offset_addr)); + var addr: [*]align(mem.page_size) u8 = @ptrFromInt(offset_addr); if (comptime builtin.target.isDarwin()) { const MADV_DONTNEED = 4; darwin_madvise(addr, bytes_to_free, MADV_DONTNEED) catch unreachable; @@ -229,10 +229,10 @@ pub fn StableArrayAligned(comptime T: type, comptime alignment: u29) type { if (self.capacity > 0) { if (builtin.os.tag == .windows) { const w = os.windows; - w.VirtualFree(@ptrCast(*anyopaque, self.items.ptr), 0, w.MEM_RELEASE); + w.VirtualFree(@as(*anyopaque, @ptrCast(self.items.ptr)), 0, w.MEM_RELEASE); } else { var slice: []align(mem.page_size) const u8 = undefined; - slice.ptr = @alignCast(mem.page_size, @ptrCast([*]u8, self.items.ptr)); + slice.ptr = @alignCast(@as([*]u8, @ptrCast(self.items.ptr))); slice.len = self.max_virtual_alloc_bytes; os.munmap(slice); } @@ -251,7 +251,7 @@ pub fn StableArrayAligned(comptime T: type, comptime alignment: u29) type { if (builtin.os.tag == .windows) { const w = os.windows; const addr: w.PVOID = try w.VirtualAlloc(null, self.max_virtual_alloc_bytes, w.MEM_RESERVE, w.PAGE_READWRITE); - self.items.ptr = @ptrCast([*]T, @alignCast(alignment, addr)); + self.items.ptr = @alignCast(@ptrCast(addr)); self.items.len = 0; } else { const prot: u32 = std.c.PROT.READ | std.c.PROT.WRITE; @@ -259,7 +259,7 @@ pub fn StableArrayAligned(comptime T: type, comptime alignment: u29) type { const fd: os.fd_t = -1; const offset: usize = 0; var slice = try os.mmap(null, self.max_virtual_alloc_bytes, prot, map, fd, offset); - self.items.ptr = @ptrCast([*]T, @alignCast(alignment, slice.ptr)); + self.items.ptr = @as([*]T, @ptrCast(@alignCast(slice.ptr))); self.items.len = 0; } } else if (current_capacity_bytes == self.max_virtual_alloc_bytes) { @@ -269,7 +269,7 @@ pub fn StableArrayAligned(comptime T: type, comptime alignment: u29) type { if (builtin.os.tag == .windows) { const w = std.os.windows; - _ = try w.VirtualAlloc(@ptrCast(w.PVOID, self.items.ptr), new_capacity_bytes, w.MEM_COMMIT, w.PAGE_READWRITE); + _ = try w.VirtualAlloc(@as(w.PVOID, @ptrCast(self.items.ptr)), new_capacity_bytes, w.MEM_COMMIT, w.PAGE_READWRITE); } } @@ -310,7 +310,7 @@ pub fn StableArrayAligned(comptime T: type, comptime alignment: u29) type { } fn calcBytesUsedForCapacity(capacity: usize) usize { - return mem.alignForward(k_sizeof * capacity, mem.page_size); + return mem.alignForward(usize, k_sizeof * capacity, mem.page_size); } }; } @@ -327,7 +327,7 @@ fn darwin_syscall3(number: usize, arg1: usize, arg2: usize, arg3: usize) usize { } fn darwin_madvise(ptr: [*]align(mem.page_size) u8, length: usize, advice: u32) os.MadviseError!void { - if (darwin_syscall3(75, @ptrToInt(ptr), length, advice) == -1) { + if (darwin_syscall3(75, @intFromPtr(ptr), length, advice) == -1) { return switch (os.errno()) { os.c.INVAL => os.MadviseError.InvalidSyscall, os.c.ENOMEM => os.MadviseError.OutOfMemory, From 1a82c191afce6ff0ffdbb780e624516dc27e8fab Mon Sep 17 00:00:00 2001 From: Reuben Dunnington Date: Tue, 15 Aug 2023 22:50:34 -0700 Subject: [PATCH 8/8] fix compile error on linux --- stable_array.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stable_array.zig b/stable_array.zig index 707371c..fc2f484 100644 --- a/stable_array.zig +++ b/stable_array.zig @@ -259,7 +259,7 @@ pub fn StableArrayAligned(comptime T: type, comptime alignment: u29) type { const fd: os.fd_t = -1; const offset: usize = 0; var slice = try os.mmap(null, self.max_virtual_alloc_bytes, prot, map, fd, offset); - self.items.ptr = @as([*]T, @ptrCast(@alignCast(slice.ptr))); + self.items.ptr = @alignCast(@ptrCast(slice.ptr)); self.items.len = 0; } } else if (current_capacity_bytes == self.max_virtual_alloc_bytes) {