Skip to content

Commit a2785a0

Browse files
committed
Update to Zig 0.14.0
1 parent bbb120c commit a2785a0

File tree

3 files changed

+21
-19
lines changed

3 files changed

+21
-19
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
zig-cache/
1+
.zig-cache/

build.zig.zon

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
.{
2-
.name = "zig-stable-array",
2+
.name = .stable_array,
33
.version = "0.1.0",
4+
.fingerprint = 0xee760748bd6028de,
45
.dependencies = .{},
56
.paths = .{
67
"build.zig",

stable_array.zig

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@ const builtin = @import("builtin");
33
const os = std.os;
44
const posix = std.posix;
55
const mem = std.mem;
6+
const heap = std.heap;
67
const assert = std.debug.assert;
78

89
const AllocError = std.mem.Allocator.Error;
910

1011
const darwin = struct {
11-
extern "c" fn madvise(ptr: [*]align(mem.page_size) u8, length: usize, advice: c_int) c_int;
12+
extern "c" fn madvise(ptr: [*]align(heap.page_size_min) u8, length: usize, advice: c_int) c_int;
1213
};
1314

1415
pub fn StableArray(comptime T: type) type {
@@ -33,7 +34,7 @@ pub fn StableArrayAligned(comptime T: type, comptime alignment: u29) type {
3334
max_virtual_alloc_bytes: usize,
3435

3536
pub fn init(max_virtual_alloc_bytes: usize) Self {
36-
assert(@mod(max_virtual_alloc_bytes, mem.page_size) == 0); // max_virtual_alloc_bytes must be a multiple of mem.page_size
37+
assert(@mod(max_virtual_alloc_bytes, heap.page_size_min) == 0); // max_virtual_alloc_bytes must be a multiple of heap.page_size_min
3738
return Self{
3839
.items = &[_]T{},
3940
.capacity = 0,
@@ -208,8 +209,8 @@ pub fn StableArrayAligned(comptime T: type, comptime alignment: u29) type {
208209
} else {
209210
const base_addr: usize = @intFromPtr(self.items.ptr);
210211
const offset_addr: usize = base_addr + new_capacity_bytes;
211-
const addr: [*]align(mem.page_size) u8 = @ptrFromInt(offset_addr);
212-
if (comptime builtin.target.isDarwin()) {
212+
const addr: [*]align(heap.page_size_min) u8 = @ptrFromInt(offset_addr);
213+
if (comptime builtin.os.tag.isDarwin()) {
213214
const MADV_DONTNEED = 4;
214215
const err: c_int = darwin.madvise(addr, bytes_to_free, MADV_DONTNEED);
215216
switch (@as(posix.E, @enumFromInt(err))) {
@@ -243,7 +244,7 @@ pub fn StableArrayAligned(comptime T: type, comptime alignment: u29) type {
243244
const w = os.windows;
244245
w.VirtualFree(@as(*anyopaque, @ptrCast(self.items.ptr)), 0, w.MEM_RELEASE);
245246
} else {
246-
var slice: []align(mem.page_size) const u8 = undefined;
247+
var slice: []align(heap.page_size_min) const u8 = undefined;
247248
slice.ptr = @alignCast(@as([*]u8, @ptrCast(self.items.ptr)));
248249
slice.len = self.max_virtual_alloc_bytes;
249250
posix.munmap(slice);
@@ -340,7 +341,7 @@ pub fn StableArrayAligned(comptime T: type, comptime alignment: u29) type {
340341
}
341342

342343
fn calcBytesUsedForCapacity(capacity: usize) usize {
343-
return mem.alignForward(usize, k_sizeof * capacity, mem.page_size);
344+
return mem.alignForward(usize, k_sizeof * capacity, heap.page_size_min);
344345
}
345346
};
346347
}
@@ -364,15 +365,15 @@ test "init" {
364365
test "append" {
365366
var a = StableArray(u8).init(TEST_VIRTUAL_ALLOC_SIZE);
366367
try a.appendSlice(&[_]u8{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 });
367-
assert(a.calcTotalUsedBytes() == mem.page_size);
368+
assert(a.calcTotalUsedBytes() == heap.page_size_min);
368369
for (a.items, 0..) |v, i| {
369370
assert(v == i);
370371
}
371372
a.deinit();
372373

373-
var b = StableArrayAligned(u8, mem.page_size).init(TEST_VIRTUAL_ALLOC_SIZE);
374+
var b = StableArrayAligned(u8, heap.page_size_min).init(TEST_VIRTUAL_ALLOC_SIZE);
374375
try b.appendSlice(&[_]u8{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 });
375-
assert(b.calcTotalUsedBytes() == mem.page_size * 10);
376+
assert(b.calcTotalUsedBytes() == heap.page_size_min * 10);
376377
for (b.items, 0..) |v, i| {
377378
assert(v == i);
378379
}
@@ -384,17 +385,17 @@ test "shrinkAndFree" {
384385
try a.appendSlice(&[_]u8{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 });
385386
a.shrinkAndFree(5);
386387

387-
assert(a.calcTotalUsedBytes() == mem.page_size);
388+
assert(a.calcTotalUsedBytes() == heap.page_size_min);
388389
assert(a.items.len == 5);
389390
for (a.items, 0..) |v, i| {
390391
assert(v == i);
391392
}
392393
a.deinit();
393394

394-
var b = StableArrayAligned(u8, mem.page_size).init(TEST_VIRTUAL_ALLOC_SIZE);
395+
var b = StableArrayAligned(u8, heap.page_size_min).init(TEST_VIRTUAL_ALLOC_SIZE);
395396
try b.appendSlice(&[_]u8{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 });
396397
b.shrinkAndFree(5);
397-
assert(b.calcTotalUsedBytes() == mem.page_size * 5);
398+
assert(b.calcTotalUsedBytes() == heap.page_size_min * 5);
398399
assert(b.items.len == 5);
399400
for (b.items, 0..) |v, i| {
400401
assert(v == i);
@@ -404,7 +405,7 @@ test "shrinkAndFree" {
404405
var c = StableArrayAligned(u8, 2048).init(TEST_VIRTUAL_ALLOC_SIZE);
405406
try c.appendSlice(&[_]u8{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 });
406407
c.shrinkAndFree(5);
407-
assert(c.calcTotalUsedBytes() == mem.page_size * 3);
408+
assert(c.calcTotalUsedBytes() == heap.page_size_min * 3);
408409
assert(c.capacity == 6);
409410
assert(c.items.len == 5);
410411
for (c.items, 0..) |v, i| {
@@ -426,10 +427,10 @@ test "resize" {
426427
}
427428

428429
test "out of memory" {
429-
var a = StableArrayAligned(u8, mem.page_size).init(TEST_VIRTUAL_ALLOC_SIZE);
430+
var a = StableArrayAligned(u8, heap.page_size_min).init(TEST_VIRTUAL_ALLOC_SIZE);
430431
defer a.deinit();
431432

432-
const max_capacity: usize = TEST_VIRTUAL_ALLOC_SIZE / mem.page_size;
433+
const max_capacity: usize = TEST_VIRTUAL_ALLOC_SIZE / heap.page_size_min;
433434
try a.appendNTimes(0xFF, max_capacity);
434435
for (a.items) |v| {
435436
assert(v == 0xFF);
@@ -464,8 +465,8 @@ test "growing retains values" {
464465
var a = StableArray(u8).init(TEST_VIRTUAL_ALLOC_SIZE);
465466
defer a.deinit();
466467

467-
try a.resize(mem.page_size);
468+
try a.resize(heap.page_size_min);
468469
a.items[0] = 0xFF;
469-
try a.resize(mem.page_size * 2);
470+
try a.resize(heap.page_size_min * 2);
470471
assert(a.items[0] == 0xFF);
471472
}

0 commit comments

Comments
 (0)