| author | |
| committer | |
| log | 87be80f6e9d1aa95cb55a8d7ef95808ca4aba44b |
| tree | 18732ce77a5dcc8848a701bdc29fcfeb5acfc807 |
| parent | ac8f757cb371f25472db7c9674b3e2958d86f9ec |
| parent | 0cb558ba3abb0ac7b48c1a30c9a13c924f950172 |
10 files changed, 87 insertions(+), 174 deletions(-)
doc/langref/defer_unwind.zig+2-3| ... | @@ -1,8 +1,7 @@ | ... | @@ -1,8 +1,7 @@ |
| 1 | const std = @import("std"); | 1 | const std = @import("std"); |
| 2 | const expect = std.testing.expect; | ||
| 3 | const print = std.debug.print; | 2 | const print = std.debug.print; |
| 4 | 3 | ||
| 5 | test "defer unwinding" { | 4 | pub fn main() void { |
| 6 | print("\n", .{}); | 5 | print("\n", .{}); |
| 7 | 6 | ||
| 8 | defer { | 7 | defer { |
| ... | @@ -19,4 +18,4 @@ test "defer unwinding" { | ... | @@ -19,4 +18,4 @@ test "defer unwinding" { |
| 19 | } | 18 | } |
| 20 | } | 19 | } |
| 21 | 20 | ||
| 22 | // test | 21 | // exe=succeed |
doc/langref/inline_call.zig+5-2| ... | @@ -1,11 +1,14 @@ | ... | @@ -1,11 +1,14 @@ |
| 1 | test "inline function call" { | 1 | const std = @import("std"); |
| 2 | |||
| 3 | pub fn main() void { | ||
| 2 | if (foo(1200, 34) != 1234) { | 4 | if (foo(1200, 34) != 1234) { |
| 3 | @compileError("bad"); | 5 | @compileError("bad"); |
| 4 | } | 6 | } |
| 5 | } | 7 | } |
| 6 | 8 | ||
| 7 | inline fn foo(a: i32, b: i32) i32 { | 9 | inline fn foo(a: i32, b: i32) i32 { |
| 10 | std.debug.print("runtime a = {} b = {}", .{ a, b }); | ||
| 8 | return a + b; | 11 | return a + b; |
| 9 | } | 12 | } |
| 10 | 13 | ||
| 11 | // test | 14 | // exe=succeed |
lib/std/Io/Reader.zig+67-37| ... | @@ -1096,33 +1096,41 @@ pub inline fn takeInt(r: *Reader, comptime T: type, endian: std.builtin.Endian) | ... | @@ -1096,33 +1096,41 @@ pub inline fn takeInt(r: *Reader, comptime T: type, endian: std.builtin.Endian) |
| 1096 | return std.mem.readInt(T, try r.takeArray(n), endian); | 1096 | return std.mem.readInt(T, try r.takeArray(n), endian); |
| 1097 | } | 1097 | } |
| 1098 | 1098 | ||
| 1099 | /// Asserts the buffer was initialized with a capacity at least `@bitSizeOf(T) / 8`. | ||
| 1100 | pub inline fn peekInt(r: *Reader, comptime T: type, endian: std.builtin.Endian) Error!T { | ||
| 1101 | const n = @divExact(@typeInfo(T).int.bits, 8); | ||
| 1102 | return std.mem.readInt(T, try r.peekArray(n), endian); | ||
| 1103 | } | ||
| 1104 | |||
| 1099 | /// Asserts the buffer was initialized with a capacity at least `n`. | 1105 | /// Asserts the buffer was initialized with a capacity at least `n`. |
| 1100 | pub fn takeVarInt(r: *Reader, comptime Int: type, endian: std.builtin.Endian, n: usize) Error!Int { | 1106 | pub fn takeVarInt(r: *Reader, comptime Int: type, endian: std.builtin.Endian, n: usize) Error!Int { |
| 1101 | assert(n <= @sizeOf(Int)); | 1107 | assert(n <= @sizeOf(Int)); |
| 1102 | return std.mem.readVarInt(Int, try r.take(n), endian); | 1108 | return std.mem.readVarInt(Int, try r.take(n), endian); |
| 1103 | } | 1109 | } |
| 1104 | 1110 | ||
| 1105 | /// Asserts the buffer was initialized with a capacity at least `@sizeOf(T)`. | 1111 | /// Obtains an unaligned pointer to the beginning of the stream, reinterpreted |
| 1112 | /// as a pointer to the provided type, advancing the seek position. | ||
| 1106 | /// | 1113 | /// |
| 1107 | /// Advances the seek position. | 1114 | /// Asserts the buffer was initialized with a capacity at least `@sizeOf(T)`. |
| 1108 | /// | 1115 | /// |
| 1109 | /// See also: | 1116 | /// See also: |
| 1110 | /// * `peekStruct` | 1117 | /// * `peekStructReference` |
| 1111 | /// * `takeStructEndian` | 1118 | /// * `takeStruct` |
| 1112 | pub fn takeStruct(r: *Reader, comptime T: type) Error!*align(1) T { | 1119 | pub fn takeStructReference(r: *Reader, comptime T: type) Error!*align(1) T { |
| 1113 | // Only extern and packed structs have defined in-memory layout. | 1120 | // Only extern and packed structs have defined in-memory layout. |
| 1114 | comptime assert(@typeInfo(T).@"struct".layout != .auto); | 1121 | comptime assert(@typeInfo(T).@"struct".layout != .auto); |
| 1115 | return @ptrCast(try r.takeArray(@sizeOf(T))); | 1122 | return @ptrCast(try r.takeArray(@sizeOf(T))); |
| 1116 | } | 1123 | } |
| 1117 | 1124 | ||
| 1118 | /// Asserts the buffer was initialized with a capacity at least `@sizeOf(T)`. | 1125 | /// Obtains an unaligned pointer to the beginning of the stream, reinterpreted |
| 1126 | /// as a pointer to the provided type, without advancing the seek position. | ||
| 1119 | /// | 1127 | /// |
| 1120 | /// Does not advance the seek position. | 1128 | /// Asserts the buffer was initialized with a capacity at least `@sizeOf(T)`. |
| 1121 | /// | 1129 | /// |
| 1122 | /// See also: | 1130 | /// See also: |
| 1123 | /// * `takeStruct` | 1131 | /// * `takeStructReference` |
| 1124 | /// * `peekStructEndian` | 1132 | /// * `peekStruct` |
| 1125 | pub fn peekStruct(r: *Reader, comptime T: type) Error!*align(1) T { | 1133 | pub fn peekStructReference(r: *Reader, comptime T: type) Error!*align(1) T { |
| 1126 | // Only extern and packed structs have defined in-memory layout. | 1134 | // Only extern and packed structs have defined in-memory layout. |
| 1127 | comptime assert(@typeInfo(T).@"struct".layout != .auto); | 1135 | comptime assert(@typeInfo(T).@"struct".layout != .auto); |
| 1128 | return @ptrCast(try r.peekArray(@sizeOf(T))); | 1136 | return @ptrCast(try r.peekArray(@sizeOf(T))); |
| ... | @@ -1134,12 +1142,23 @@ pub fn peekStruct(r: *Reader, comptime T: type) Error!*align(1) T { | ... | @@ -1134,12 +1142,23 @@ pub fn peekStruct(r: *Reader, comptime T: type) Error!*align(1) T { |
| 1134 | /// when `endian` is comptime-known and matches the host endianness. | 1142 | /// when `endian` is comptime-known and matches the host endianness. |
| 1135 | /// | 1143 | /// |
| 1136 | /// See also: | 1144 | /// See also: |
| 1137 | /// * `takeStruct` | 1145 | /// * `takeStructReference` |
| 1138 | /// * `peekStructEndian` | 1146 | /// * `peekStruct` |
| 1139 | pub inline fn takeStructEndian(r: *Reader, comptime T: type, endian: std.builtin.Endian) Error!T { | 1147 | pub inline fn takeStruct(r: *Reader, comptime T: type, endian: std.builtin.Endian) Error!T { |
| 1140 | var res = (try r.takeStruct(T)).*; | 1148 | switch (@typeInfo(T)) { |
| 1141 | if (native_endian != endian) std.mem.byteSwapAllFields(T, &res); | 1149 | .@"struct" => |info| switch (info.layout) { |
| 1142 | return res; | 1150 | .auto => @compileError("ill-defined memory layout"), |
| 1151 | .@"extern" => { | ||
| 1152 | var res = (try r.takeStructReference(T)).*; | ||
| 1153 | if (native_endian != endian) std.mem.byteSwapAllFields(T, &res); | ||
| 1154 | return res; | ||
| 1155 | }, | ||
| 1156 | .@"packed" => { | ||
| 1157 | return takeInt(r, info.backing_integer.?, endian); | ||
| 1158 | }, | ||
| 1159 | }, | ||
| 1160 | else => @compileError("not a struct"), | ||
| 1161 | } | ||
| 1143 | } | 1162 | } |
| 1144 | 1163 | ||
| 1145 | /// Asserts the buffer was initialized with a capacity at least `@sizeOf(T)`. | 1164 | /// Asserts the buffer was initialized with a capacity at least `@sizeOf(T)`. |
| ... | @@ -1148,12 +1167,23 @@ pub inline fn takeStructEndian(r: *Reader, comptime T: type, endian: std.builtin | ... | @@ -1148,12 +1167,23 @@ pub inline fn takeStructEndian(r: *Reader, comptime T: type, endian: std.builtin |
| 1148 | /// when `endian` is comptime-known and matches the host endianness. | 1167 | /// when `endian` is comptime-known and matches the host endianness. |
| 1149 | /// | 1168 | /// |
| 1150 | /// See also: | 1169 | /// See also: |
| 1151 | /// * `takeStructEndian` | 1170 | /// * `takeStruct` |
| 1152 | /// * `peekStruct` | 1171 | /// * `peekStructReference` |
| 1153 | pub inline fn peekStructEndian(r: *Reader, comptime T: type, endian: std.builtin.Endian) Error!T { | 1172 | pub inline fn peekStruct(r: *Reader, comptime T: type, endian: std.builtin.Endian) Error!T { |
| 1154 | var res = (try r.peekStruct(T)).*; | 1173 | switch (@typeInfo(T)) { |
| 1155 | if (native_endian != endian) std.mem.byteSwapAllFields(T, &res); | 1174 | .@"struct" => |info| switch (info.layout) { |
| 1156 | return res; | 1175 | .auto => @compileError("ill-defined memory layout"), |
| 1176 | .@"extern" => { | ||
| 1177 | var res = (try r.peekStructReference(T)).*; | ||
| 1178 | if (native_endian != endian) std.mem.byteSwapAllFields(T, &res); | ||
| 1179 | return res; | ||
| 1180 | }, | ||
| 1181 | .@"packed" => { | ||
| 1182 | return peekInt(r, info.backing_integer.?, endian); | ||
| 1183 | }, | ||
| 1184 | }, | ||
| 1185 | else => @compileError("not a struct"), | ||
| 1186 | } | ||
| 1157 | } | 1187 | } |
| 1158 | 1188 | ||
| 1159 | pub const TakeEnumError = Error || error{InvalidEnumTag}; | 1189 | pub const TakeEnumError = Error || error{InvalidEnumTag}; |
| ... | @@ -1519,43 +1549,43 @@ test takeVarInt { | ... | @@ -1519,43 +1549,43 @@ test takeVarInt { |
| 1519 | try testing.expectError(error.EndOfStream, r.takeVarInt(u16, .little, 1)); | 1549 | try testing.expectError(error.EndOfStream, r.takeVarInt(u16, .little, 1)); |
| 1520 | } | 1550 | } |
| 1521 | 1551 | ||
| 1522 | test takeStruct { | 1552 | test takeStructReference { |
| 1523 | var r: Reader = .fixed(&.{ 0x12, 0x00, 0x34, 0x56 }); | 1553 | var r: Reader = .fixed(&.{ 0x12, 0x00, 0x34, 0x56 }); |
| 1524 | const S = extern struct { a: u8, b: u16 }; | 1554 | const S = extern struct { a: u8, b: u16 }; |
| 1525 | switch (native_endian) { | 1555 | switch (native_endian) { |
| 1526 | .little => try testing.expectEqual(@as(S, .{ .a = 0x12, .b = 0x5634 }), (try r.takeStruct(S)).*), | 1556 | .little => try testing.expectEqual(@as(S, .{ .a = 0x12, .b = 0x5634 }), (try r.takeStructReference(S)).*), |
| 1527 | .big => try testing.expectEqual(@as(S, .{ .a = 0x12, .b = 0x3456 }), (try r.takeStruct(S)).*), | 1557 | .big => try testing.expectEqual(@as(S, .{ .a = 0x12, .b = 0x3456 }), (try r.takeStructReference(S)).*), |
| 1528 | } | 1558 | } |
| 1529 | try testing.expectError(error.EndOfStream, r.takeStruct(S)); | 1559 | try testing.expectError(error.EndOfStream, r.takeStructReference(S)); |
| 1530 | } | 1560 | } |
| 1531 | 1561 | ||
| 1532 | test peekStruct { | 1562 | test peekStructReference { |
| 1533 | var r: Reader = .fixed(&.{ 0x12, 0x00, 0x34, 0x56 }); | 1563 | var r: Reader = .fixed(&.{ 0x12, 0x00, 0x34, 0x56 }); |
| 1534 | const S = extern struct { a: u8, b: u16 }; | 1564 | const S = extern struct { a: u8, b: u16 }; |
| 1535 | switch (native_endian) { | 1565 | switch (native_endian) { |
| 1536 | .little => { | 1566 | .little => { |
| 1537 | try testing.expectEqual(@as(S, .{ .a = 0x12, .b = 0x5634 }), (try r.peekStruct(S)).*); | 1567 | try testing.expectEqual(@as(S, .{ .a = 0x12, .b = 0x5634 }), (try r.peekStructReference(S)).*); |
| 1538 | try testing.expectEqual(@as(S, .{ .a = 0x12, .b = 0x5634 }), (try r.peekStruct(S)).*); | 1568 | try testing.expectEqual(@as(S, .{ .a = 0x12, .b = 0x5634 }), (try r.peekStructReference(S)).*); |
| 1539 | }, | 1569 | }, |
| 1540 | .big => { | 1570 | .big => { |
| 1541 | try testing.expectEqual(@as(S, .{ .a = 0x12, .b = 0x3456 }), (try r.peekStruct(S)).*); | 1571 | try testing.expectEqual(@as(S, .{ .a = 0x12, .b = 0x3456 }), (try r.peekStructReference(S)).*); |
| 1542 | try testing.expectEqual(@as(S, .{ .a = 0x12, .b = 0x3456 }), (try r.peekStruct(S)).*); | 1572 | try testing.expectEqual(@as(S, .{ .a = 0x12, .b = 0x3456 }), (try r.peekStructReference(S)).*); |
| 1543 | }, | 1573 | }, |
| 1544 | } | 1574 | } |
| 1545 | } | 1575 | } |
| 1546 | 1576 | ||
| 1547 | test takeStructEndian { | 1577 | test takeStruct { |
| 1548 | var r: Reader = .fixed(&.{ 0x12, 0x00, 0x34, 0x56 }); | 1578 | var r: Reader = .fixed(&.{ 0x12, 0x00, 0x34, 0x56 }); |
| 1549 | const S = extern struct { a: u8, b: u16 }; | 1579 | const S = extern struct { a: u8, b: u16 }; |
| 1550 | try testing.expectEqual(@as(S, .{ .a = 0x12, .b = 0x3456 }), try r.takeStructEndian(S, .big)); | 1580 | try testing.expectEqual(@as(S, .{ .a = 0x12, .b = 0x3456 }), try r.takeStruct(S, .big)); |
| 1551 | try testing.expectError(error.EndOfStream, r.takeStructEndian(S, .little)); | 1581 | try testing.expectError(error.EndOfStream, r.takeStruct(S, .little)); |
| 1552 | } | 1582 | } |
| 1553 | 1583 | ||
| 1554 | test peekStructEndian { | 1584 | test peekStruct { |
| 1555 | var r: Reader = .fixed(&.{ 0x12, 0x00, 0x34, 0x56 }); | 1585 | var r: Reader = .fixed(&.{ 0x12, 0x00, 0x34, 0x56 }); |
| 1556 | const S = extern struct { a: u8, b: u16 }; | 1586 | const S = extern struct { a: u8, b: u16 }; |
| 1557 | try testing.expectEqual(@as(S, .{ .a = 0x12, .b = 0x3456 }), try r.peekStructEndian(S, .big)); | 1587 | try testing.expectEqual(@as(S, .{ .a = 0x12, .b = 0x3456 }), try r.peekStruct(S, .big)); |
| 1558 | try testing.expectEqual(@as(S, .{ .a = 0x12, .b = 0x5634 }), try r.peekStructEndian(S, .little)); | 1588 | try testing.expectEqual(@as(S, .{ .a = 0x12, .b = 0x5634 }), try r.peekStruct(S, .little)); |
| 1559 | } | 1589 | } |
| 1560 | 1590 | ||
| 1561 | test takeEnum { | 1591 | test takeEnum { |
lib/std/Io/Writer.zig+3-8| ... | @@ -796,16 +796,9 @@ pub inline fn writeInt(w: *Writer, comptime T: type, value: T, endian: std.built | ... | @@ -796,16 +796,9 @@ pub inline fn writeInt(w: *Writer, comptime T: type, value: T, endian: std.built |
| 796 | return w.writeAll(&bytes); | 796 | return w.writeAll(&bytes); |
| 797 | } | 797 | } |
| 798 | 798 | ||
| 799 | pub fn writeStruct(w: *Writer, value: anytype) Error!void { | ||
| 800 | // Only extern and packed structs have defined in-memory layout. | ||
| 801 | comptime assert(@typeInfo(@TypeOf(value)).@"struct".layout != .auto); | ||
| 802 | return w.writeAll(std.mem.asBytes(&value)); | ||
| 803 | } | ||
| 804 | |||
| 805 | /// The function is inline to avoid the dead code in case `endian` is | 799 | /// The function is inline to avoid the dead code in case `endian` is |
| 806 | /// comptime-known and matches host endianness. | 800 | /// comptime-known and matches host endianness. |
| 807 | /// TODO: make sure this value is not a reference type | 801 | pub inline fn writeStruct(w: *Writer, value: anytype, endian: std.builtin.Endian) Error!void { |
| 808 | pub inline fn writeStructEndian(w: *Writer, value: anytype, endian: std.builtin.Endian) Error!void { | ||
| 809 | switch (@typeInfo(@TypeOf(value))) { | 802 | switch (@typeInfo(@TypeOf(value))) { |
| 810 | .@"struct" => |info| switch (info.layout) { | 803 | .@"struct" => |info| switch (info.layout) { |
| 811 | .auto => @compileError("ill-defined memory layout"), | 804 | .auto => @compileError("ill-defined memory layout"), |
| ... | @@ -2446,12 +2439,14 @@ pub const Allocating = struct { | ... | @@ -2446,12 +2439,14 @@ pub const Allocating = struct { |
| 2446 | 2439 | ||
| 2447 | pub fn toOwnedSlice(a: *Allocating) error{OutOfMemory}![]u8 { | 2440 | pub fn toOwnedSlice(a: *Allocating) error{OutOfMemory}![]u8 { |
| 2448 | var list = a.toArrayList(); | 2441 | var list = a.toArrayList(); |
| 2442 | defer a.setArrayList(list); | ||
| 2449 | return list.toOwnedSlice(a.allocator); | 2443 | return list.toOwnedSlice(a.allocator); |
| 2450 | } | 2444 | } |
| 2451 | 2445 | ||
| 2452 | pub fn toOwnedSliceSentinel(a: *Allocating, comptime sentinel: u8) error{OutOfMemory}![:sentinel]u8 { | 2446 | pub fn toOwnedSliceSentinel(a: *Allocating, comptime sentinel: u8) error{OutOfMemory}![:sentinel]u8 { |
| 2453 | const gpa = a.allocator; | 2447 | const gpa = a.allocator; |
| 2454 | var list = toArrayList(a); | 2448 | var list = toArrayList(a); |
| 2449 | defer a.setArrayList(list); | ||
| 2455 | return list.toOwnedSliceSentinel(gpa, sentinel); | 2450 | return list.toOwnedSliceSentinel(gpa, sentinel); |
| 2456 | } | 2451 | } |
| 2457 | 2452 |
lib/std/Target.zig+2-2| ... | @@ -507,7 +507,7 @@ pub const Os = struct { | ... | @@ -507,7 +507,7 @@ pub const Os = struct { |
| 507 | .freebsd => .{ | 507 | .freebsd => .{ |
| 508 | .semver = .{ | 508 | .semver = .{ |
| 509 | .min = blk: { | 509 | .min = blk: { |
| 510 | const default_min: std.SemanticVersion = .{ .major = 13, .minor = 4, .patch = 0 }; | 510 | const default_min: std.SemanticVersion = .{ .major = 14, .minor = 0, .patch = 0 }; |
| 511 | 511 | ||
| 512 | for (std.zig.target.available_libcs) |libc| { | 512 | for (std.zig.target.available_libcs) |libc| { |
| 513 | if (libc.arch != arch or libc.os != tag or libc.abi != abi) continue; | 513 | if (libc.arch != arch or libc.os != tag or libc.abi != abi) continue; |
| ... | @@ -525,7 +525,7 @@ pub const Os = struct { | ... | @@ -525,7 +525,7 @@ pub const Os = struct { |
| 525 | .netbsd => .{ | 525 | .netbsd => .{ |
| 526 | .semver = .{ | 526 | .semver = .{ |
| 527 | .min = blk: { | 527 | .min = blk: { |
| 528 | const default_min: std.SemanticVersion = .{ .major = 9, .minor = 4, .patch = 0 }; | 528 | const default_min: std.SemanticVersion = .{ .major = 10, .minor = 1, .patch = 0 }; |
| 529 | 529 | ||
| 530 | for (std.zig.target.available_libcs) |libc| { | 530 | for (std.zig.target.available_libcs) |libc| { |
| 531 | if (libc.arch != arch or libc.os != tag or libc.abi != abi) continue; | 531 | if (libc.arch != arch or libc.os != tag or libc.abi != abi) continue; |
lib/std/posix/test.zig+5| ... | @@ -1001,6 +1001,11 @@ test "sigset_t bits" { | ... | @@ -1001,6 +1001,11 @@ test "sigset_t bits" { |
| 1001 | if (native_os == .wasi or native_os == .windows) | 1001 | if (native_os == .wasi or native_os == .windows) |
| 1002 | return error.SkipZigTest; | 1002 | return error.SkipZigTest; |
| 1003 | 1003 | ||
| 1004 | if (true) { | ||
| 1005 | // https://github.com/ziglang/zig/issues/24380 | ||
| 1006 | return error.SkipZigTest; | ||
| 1007 | } | ||
| 1008 | |||
| 1004 | const S = struct { | 1009 | const S = struct { |
| 1005 | var expected_sig: i32 = undefined; | 1010 | var expected_sig: i32 = undefined; |
| 1006 | var handler_called_count: u32 = 0; | 1011 | var handler_called_count: u32 = 0; |
src/Zcu.zig+1-1| ... | @@ -2809,7 +2809,7 @@ pub fn loadZirCache(gpa: Allocator, cache_file: std.fs.File) !Zir { | ... | @@ -2809,7 +2809,7 @@ pub fn loadZirCache(gpa: Allocator, cache_file: std.fs.File) !Zir { |
| 2809 | var buffer: [2000]u8 = undefined; | 2809 | var buffer: [2000]u8 = undefined; |
| 2810 | var file_reader = cache_file.reader(&buffer); | 2810 | var file_reader = cache_file.reader(&buffer); |
| 2811 | return result: { | 2811 | return result: { |
| 2812 | const header = file_reader.interface.takeStruct(Zir.Header) catch |err| break :result err; | 2812 | const header = file_reader.interface.takeStructReference(Zir.Header) catch |err| break :result err; |
| 2813 | break :result loadZirCacheBody(gpa, header.*, &file_reader.interface); | 2813 | break :result loadZirCacheBody(gpa, header.*, &file_reader.interface); |
| 2814 | } catch |err| switch (err) { | 2814 | } catch |err| switch (err) { |
| 2815 | error.ReadFailed => return file_reader.err.?, | 2815 | error.ReadFailed => return file_reader.err.?, |
src/Zcu/PerThread.zig+1-1| ... | @@ -349,7 +349,7 @@ fn loadZirZoirCache( | ... | @@ -349,7 +349,7 @@ fn loadZirZoirCache( |
| 349 | const cache_br = &cache_fr.interface; | 349 | const cache_br = &cache_fr.interface; |
| 350 | 350 | ||
| 351 | // First we read the header to determine the lengths of arrays. | 351 | // First we read the header to determine the lengths of arrays. |
| 352 | const header = (cache_br.takeStruct(Header) catch |err| switch (err) { | 352 | const header = (cache_br.takeStructReference(Header) catch |err| switch (err) { |
| 353 | error.ReadFailed => return cache_fr.err.?, | 353 | error.ReadFailed => return cache_fr.err.?, |
| 354 | // This can happen if Zig bails out of this function between creating | 354 | // This can happen if Zig bails out of this function between creating |
| 355 | // the cached file and writing it. | 355 | // the cached file and writing it. |
src/main.zig+1| ... | @@ -334,6 +334,7 @@ fn mainArgs(gpa: Allocator, arena: Allocator, args: []const []const u8) !void { | ... | @@ -334,6 +334,7 @@ fn mainArgs(gpa: Allocator, arena: Allocator, args: []const []const u8) !void { |
| 334 | return jitCmd(gpa, arena, cmd_args, .{ | 334 | return jitCmd(gpa, arena, cmd_args, .{ |
| 335 | .cmd_name = "std", | 335 | .cmd_name = "std", |
| 336 | .root_src_path = "std-docs.zig", | 336 | .root_src_path = "std-docs.zig", |
| 337 | .windows_libs = &.{"ws2_32"}, | ||
| 337 | .prepend_zig_lib_dir_path = true, | 338 | .prepend_zig_lib_dir_path = true, |
| 338 | .prepend_zig_exe_path = true, | 339 | .prepend_zig_exe_path = true, |
| 339 | .prepend_global_cache_path = true, | 340 | .prepend_global_cache_path = true, |
test/tests.zig-120| ... | @@ -104,12 +104,6 @@ const test_targets = blk: { | ... | @@ -104,12 +104,6 @@ const test_targets = blk: { |
| 104 | .target = .{ | 104 | .target = .{ |
| 105 | .cpu_arch = .aarch64, | 105 | .cpu_arch = .aarch64, |
| 106 | .os_tag = .freebsd, | 106 | .os_tag = .freebsd, |
| 107 | // Remove this when we bump our baseline to 14.0.0. | ||
| 108 | .os_version_min = .{ .semver = .{ | ||
| 109 | .major = 14, | ||
| 110 | .minor = 0, | ||
| 111 | .patch = 0, | ||
| 112 | } }, | ||
| 113 | .abi = .none, | 107 | .abi = .none, |
| 114 | }, | 108 | }, |
| 115 | .link_libc = true, | 109 | .link_libc = true, |
| ... | @@ -119,12 +113,6 @@ const test_targets = blk: { | ... | @@ -119,12 +113,6 @@ const test_targets = blk: { |
| 119 | .target = .{ | 113 | .target = .{ |
| 120 | .cpu_arch = .arm, | 114 | .cpu_arch = .arm, |
| 121 | .os_tag = .freebsd, | 115 | .os_tag = .freebsd, |
| 122 | // Remove this when we bump our baseline to 14.0.0. | ||
| 123 | .os_version_min = .{ .semver = .{ | ||
| 124 | .major = 14, | ||
| 125 | .minor = 0, | ||
| 126 | .patch = 0, | ||
| 127 | } }, | ||
| 128 | .abi = .eabihf, | 116 | .abi = .eabihf, |
| 129 | }, | 117 | }, |
| 130 | .link_libc = true, | 118 | .link_libc = true, |
| ... | @@ -136,12 +124,6 @@ const test_targets = blk: { | ... | @@ -136,12 +124,6 @@ const test_targets = blk: { |
| 136 | .target = .{ | 124 | .target = .{ |
| 137 | .cpu_arch = .powerpc64, | 125 | .cpu_arch = .powerpc64, |
| 138 | .os_tag = .freebsd, | 126 | .os_tag = .freebsd, |
| 139 | // Remove this when we bump our baseline to 14.0.0. | ||
| 140 | .os_version_min = .{ .semver = .{ | ||
| 141 | .major = 14, | ||
| 142 | .minor = 0, | ||
| 143 | .patch = 0, | ||
| 144 | } }, | ||
| 145 | .abi = .none, | 127 | .abi = .none, |
| 146 | }, | 128 | }, |
| 147 | .link_libc = true, | 129 | .link_libc = true, |
| ... | @@ -151,12 +133,6 @@ const test_targets = blk: { | ... | @@ -151,12 +133,6 @@ const test_targets = blk: { |
| 151 | .target = .{ | 133 | .target = .{ |
| 152 | .cpu_arch = .powerpc64le, | 134 | .cpu_arch = .powerpc64le, |
| 153 | .os_tag = .freebsd, | 135 | .os_tag = .freebsd, |
| 154 | // Remove this when we bump our baseline to 14.0.0. | ||
| 155 | .os_version_min = .{ .semver = .{ | ||
| 156 | .major = 14, | ||
| 157 | .minor = 0, | ||
| 158 | .patch = 0, | ||
| 159 | } }, | ||
| 160 | .abi = .none, | 136 | .abi = .none, |
| 161 | }, | 137 | }, |
| 162 | .link_libc = true, | 138 | .link_libc = true, |
| ... | @@ -166,12 +142,6 @@ const test_targets = blk: { | ... | @@ -166,12 +142,6 @@ const test_targets = blk: { |
| 166 | .target = .{ | 142 | .target = .{ |
| 167 | .cpu_arch = .riscv64, | 143 | .cpu_arch = .riscv64, |
| 168 | .os_tag = .freebsd, | 144 | .os_tag = .freebsd, |
| 169 | // Remove this when we bump our baseline to 14.0.0. | ||
| 170 | .os_version_min = .{ .semver = .{ | ||
| 171 | .major = 14, | ||
| 172 | .minor = 0, | ||
| 173 | .patch = 0, | ||
| 174 | } }, | ||
| 175 | .abi = .none, | 145 | .abi = .none, |
| 176 | }, | 146 | }, |
| 177 | .link_libc = true, | 147 | .link_libc = true, |
| ... | @@ -181,12 +151,6 @@ const test_targets = blk: { | ... | @@ -181,12 +151,6 @@ const test_targets = blk: { |
| 181 | .target = .{ | 151 | .target = .{ |
| 182 | .cpu_arch = .x86_64, | 152 | .cpu_arch = .x86_64, |
| 183 | .os_tag = .freebsd, | 153 | .os_tag = .freebsd, |
| 184 | // Remove this when we bump our baseline to 14.0.0. | ||
| 185 | .os_version_min = .{ .semver = .{ | ||
| 186 | .major = 14, | ||
| 187 | .minor = 0, | ||
| 188 | .patch = 0, | ||
| 189 | } }, | ||
| 190 | .abi = .none, | 154 | .abi = .none, |
| 191 | }, | 155 | }, |
| 192 | .link_libc = true, | 156 | .link_libc = true, |
| ... | @@ -1236,12 +1200,6 @@ const test_targets = blk: { | ... | @@ -1236,12 +1200,6 @@ const test_targets = blk: { |
| 1236 | .target = .{ | 1200 | .target = .{ |
| 1237 | .cpu_arch = .aarch64, | 1201 | .cpu_arch = .aarch64, |
| 1238 | .os_tag = .netbsd, | 1202 | .os_tag = .netbsd, |
| 1239 | // Remove this when we bump our baseline to 10.1.0. | ||
| 1240 | .os_version_min = .{ .semver = .{ | ||
| 1241 | .major = 10, | ||
| 1242 | .minor = 1, | ||
| 1243 | .patch = 0, | ||
| 1244 | } }, | ||
| 1245 | .abi = .none, | 1203 | .abi = .none, |
| 1246 | }, | 1204 | }, |
| 1247 | .link_libc = true, | 1205 | .link_libc = true, |
| ... | @@ -1251,12 +1209,6 @@ const test_targets = blk: { | ... | @@ -1251,12 +1209,6 @@ const test_targets = blk: { |
| 1251 | .target = .{ | 1209 | .target = .{ |
| 1252 | .cpu_arch = .aarch64_be, | 1210 | .cpu_arch = .aarch64_be, |
| 1253 | .os_tag = .netbsd, | 1211 | .os_tag = .netbsd, |
| 1254 | // Remove this when we bump our baseline to 10.1.0. | ||
| 1255 | .os_version_min = .{ .semver = .{ | ||
| 1256 | .major = 10, | ||
| 1257 | .minor = 1, | ||
| 1258 | .patch = 0, | ||
| 1259 | } }, | ||
| 1260 | .abi = .none, | 1212 | .abi = .none, |
| 1261 | }, | 1213 | }, |
| 1262 | .link_libc = true, | 1214 | .link_libc = true, |
| ... | @@ -1266,12 +1218,6 @@ const test_targets = blk: { | ... | @@ -1266,12 +1218,6 @@ const test_targets = blk: { |
| 1266 | .target = .{ | 1218 | .target = .{ |
| 1267 | .cpu_arch = .arm, | 1219 | .cpu_arch = .arm, |
| 1268 | .os_tag = .netbsd, | 1220 | .os_tag = .netbsd, |
| 1269 | // Remove this when we bump our baseline to 10.1.0. | ||
| 1270 | .os_version_min = .{ .semver = .{ | ||
| 1271 | .major = 10, | ||
| 1272 | .minor = 1, | ||
| 1273 | .patch = 0, | ||
| 1274 | } }, | ||
| 1275 | .abi = .eabi, | 1221 | .abi = .eabi, |
| 1276 | }, | 1222 | }, |
| 1277 | .link_libc = true, | 1223 | .link_libc = true, |
| ... | @@ -1280,12 +1226,6 @@ const test_targets = blk: { | ... | @@ -1280,12 +1226,6 @@ const test_targets = blk: { |
| 1280 | .target = .{ | 1226 | .target = .{ |
| 1281 | .cpu_arch = .arm, | 1227 | .cpu_arch = .arm, |
| 1282 | .os_tag = .netbsd, | 1228 | .os_tag = .netbsd, |
| 1283 | // Remove this when we bump our baseline to 10.1.0. | ||
| 1284 | .os_version_min = .{ .semver = .{ | ||
| 1285 | .major = 10, | ||
| 1286 | .minor = 1, | ||
| 1287 | .patch = 0, | ||
| 1288 | } }, | ||
| 1289 | .abi = .eabihf, | 1229 | .abi = .eabihf, |
| 1290 | }, | 1230 | }, |
| 1291 | .link_libc = true, | 1231 | .link_libc = true, |
| ... | @@ -1295,12 +1235,6 @@ const test_targets = blk: { | ... | @@ -1295,12 +1235,6 @@ const test_targets = blk: { |
| 1295 | .target = .{ | 1235 | .target = .{ |
| 1296 | .cpu_arch = .armeb, | 1236 | .cpu_arch = .armeb, |
| 1297 | .os_tag = .netbsd, | 1237 | .os_tag = .netbsd, |
| 1298 | // Remove this when we bump our baseline to 10.1.0. | ||
| 1299 | .os_version_min = .{ .semver = .{ | ||
| 1300 | .major = 10, | ||
| 1301 | .minor = 1, | ||
| 1302 | .patch = 0, | ||
| 1303 | } }, | ||
| 1304 | .abi = .eabi, | 1238 | .abi = .eabi, |
| 1305 | }, | 1239 | }, |
| 1306 | .link_libc = true, | 1240 | .link_libc = true, |
| ... | @@ -1309,12 +1243,6 @@ const test_targets = blk: { | ... | @@ -1309,12 +1243,6 @@ const test_targets = blk: { |
| 1309 | .target = .{ | 1243 | .target = .{ |
| 1310 | .cpu_arch = .armeb, | 1244 | .cpu_arch = .armeb, |
| 1311 | .os_tag = .netbsd, | 1245 | .os_tag = .netbsd, |
| 1312 | // Remove this when we bump our baseline to 10.1.0. | ||
| 1313 | .os_version_min = .{ .semver = .{ | ||
| 1314 | .major = 10, | ||
| 1315 | .minor = 1, | ||
| 1316 | .patch = 0, | ||
| 1317 | } }, | ||
| 1318 | .abi = .eabihf, | 1246 | .abi = .eabihf, |
| 1319 | }, | 1247 | }, |
| 1320 | .link_libc = true, | 1248 | .link_libc = true, |
| ... | @@ -1324,12 +1252,6 @@ const test_targets = blk: { | ... | @@ -1324,12 +1252,6 @@ const test_targets = blk: { |
| 1324 | .target = .{ | 1252 | .target = .{ |
| 1325 | .cpu_arch = .mips, | 1253 | .cpu_arch = .mips, |
| 1326 | .os_tag = .netbsd, | 1254 | .os_tag = .netbsd, |
| 1327 | // Remove this when we bump our baseline to 10.1.0. | ||
| 1328 | .os_version_min = .{ .semver = .{ | ||
| 1329 | .major = 10, | ||
| 1330 | .minor = 1, | ||
| 1331 | .patch = 0, | ||
| 1332 | } }, | ||
| 1333 | .abi = .eabi, | 1255 | .abi = .eabi, |
| 1334 | }, | 1256 | }, |
| 1335 | .link_libc = true, | 1257 | .link_libc = true, |
| ... | @@ -1338,12 +1260,6 @@ const test_targets = blk: { | ... | @@ -1338,12 +1260,6 @@ const test_targets = blk: { |
| 1338 | .target = .{ | 1260 | .target = .{ |
| 1339 | .cpu_arch = .mips, | 1261 | .cpu_arch = .mips, |
| 1340 | .os_tag = .netbsd, | 1262 | .os_tag = .netbsd, |
| 1341 | // Remove this when we bump our baseline to 10.1.0. | ||
| 1342 | .os_version_min = .{ .semver = .{ | ||
| 1343 | .major = 10, | ||
| 1344 | .minor = 1, | ||
| 1345 | .patch = 0, | ||
| 1346 | } }, | ||
| 1347 | .abi = .eabihf, | 1263 | .abi = .eabihf, |
| 1348 | }, | 1264 | }, |
| 1349 | .link_libc = true, | 1265 | .link_libc = true, |
| ... | @@ -1353,12 +1269,6 @@ const test_targets = blk: { | ... | @@ -1353,12 +1269,6 @@ const test_targets = blk: { |
| 1353 | .target = .{ | 1269 | .target = .{ |
| 1354 | .cpu_arch = .mipsel, | 1270 | .cpu_arch = .mipsel, |
| 1355 | .os_tag = .netbsd, | 1271 | .os_tag = .netbsd, |
| 1356 | // Remove this when we bump our baseline to 10.1.0. | ||
| 1357 | .os_version_min = .{ .semver = .{ | ||
| 1358 | .major = 10, | ||
| 1359 | .minor = 1, | ||
| 1360 | .patch = 0, | ||
| 1361 | } }, | ||
| 1362 | .abi = .eabi, | 1272 | .abi = .eabi, |
| 1363 | }, | 1273 | }, |
| 1364 | .link_libc = true, | 1274 | .link_libc = true, |
| ... | @@ -1367,12 +1277,6 @@ const test_targets = blk: { | ... | @@ -1367,12 +1277,6 @@ const test_targets = blk: { |
| 1367 | .target = .{ | 1277 | .target = .{ |
| 1368 | .cpu_arch = .mipsel, | 1278 | .cpu_arch = .mipsel, |
| 1369 | .os_tag = .netbsd, | 1279 | .os_tag = .netbsd, |
| 1370 | // Remove this when we bump our baseline to 10.1.0. | ||
| 1371 | .os_version_min = .{ .semver = .{ | ||
| 1372 | .major = 10, | ||
| 1373 | .minor = 1, | ||
| 1374 | .patch = 0, | ||
| 1375 | } }, | ||
| 1376 | .abi = .eabihf, | 1280 | .abi = .eabihf, |
| 1377 | }, | 1281 | }, |
| 1378 | .link_libc = true, | 1282 | .link_libc = true, |
| ... | @@ -1382,12 +1286,6 @@ const test_targets = blk: { | ... | @@ -1382,12 +1286,6 @@ const test_targets = blk: { |
| 1382 | .target = .{ | 1286 | .target = .{ |
| 1383 | .cpu_arch = .powerpc, | 1287 | .cpu_arch = .powerpc, |
| 1384 | .os_tag = .netbsd, | 1288 | .os_tag = .netbsd, |
| 1385 | // Remove this when we bump our baseline to 10.1.0. | ||
| 1386 | .os_version_min = .{ .semver = .{ | ||
| 1387 | .major = 10, | ||
| 1388 | .minor = 1, | ||
| 1389 | .patch = 0, | ||
| 1390 | } }, | ||
| 1391 | .abi = .eabi, | 1289 | .abi = .eabi, |
| 1392 | }, | 1290 | }, |
| 1393 | .link_libc = true, | 1291 | .link_libc = true, |
| ... | @@ -1396,12 +1294,6 @@ const test_targets = blk: { | ... | @@ -1396,12 +1294,6 @@ const test_targets = blk: { |
| 1396 | .target = .{ | 1294 | .target = .{ |
| 1397 | .cpu_arch = .powerpc, | 1295 | .cpu_arch = .powerpc, |
| 1398 | .os_tag = .netbsd, | 1296 | .os_tag = .netbsd, |
| 1399 | // Remove this when we bump our baseline to 10.1.0. | ||
| 1400 | .os_version_min = .{ .semver = .{ | ||
| 1401 | .major = 10, | ||
| 1402 | .minor = 1, | ||
| 1403 | .patch = 0, | ||
| 1404 | } }, | ||
| 1405 | .abi = .eabihf, | 1297 | .abi = .eabihf, |
| 1406 | }, | 1298 | }, |
| 1407 | .link_libc = true, | 1299 | .link_libc = true, |
| ... | @@ -1411,12 +1303,6 @@ const test_targets = blk: { | ... | @@ -1411,12 +1303,6 @@ const test_targets = blk: { |
| 1411 | .target = .{ | 1303 | .target = .{ |
| 1412 | .cpu_arch = .x86, | 1304 | .cpu_arch = .x86, |
| 1413 | .os_tag = .netbsd, | 1305 | .os_tag = .netbsd, |
| 1414 | // Remove this when we bump our baseline to 10.1.0. | ||
| 1415 | .os_version_min = .{ .semver = .{ | ||
| 1416 | .major = 10, | ||
| 1417 | .minor = 1, | ||
| 1418 | .patch = 0, | ||
| 1419 | } }, | ||
| 1420 | .abi = .none, | 1306 | .abi = .none, |
| 1421 | }, | 1307 | }, |
| 1422 | .link_libc = true, | 1308 | .link_libc = true, |
| ... | @@ -1426,12 +1312,6 @@ const test_targets = blk: { | ... | @@ -1426,12 +1312,6 @@ const test_targets = blk: { |
| 1426 | .target = .{ | 1312 | .target = .{ |
| 1427 | .cpu_arch = .x86_64, | 1313 | .cpu_arch = .x86_64, |
| 1428 | .os_tag = .netbsd, | 1314 | .os_tag = .netbsd, |
| 1429 | // Remove this when we bump our baseline to 10.1.0. | ||
| 1430 | .os_version_min = .{ .semver = .{ | ||
| 1431 | .major = 10, | ||
| 1432 | .minor = 1, | ||
| 1433 | .patch = 0, | ||
| 1434 | } }, | ||
| 1435 | .abi = .none, | 1315 | .abi = .none, |
| 1436 | }, | 1316 | }, |
| 1437 | .link_libc = true, | 1317 | .link_libc = true, |