From f54f061fb38915908c4a9fb15153e72c455a4e0d Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Tue, 19 Aug 2025 16:01:09 -0700 Subject: [PATCH 1/6] start the 0.15.1 release cycle --- .github/workflows/ci.yaml | 1 + CMakeLists.txt | 2 +- build.zig | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 32c6702939..9b3b336b30 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -4,6 +4,7 @@ on: push: branches: - master + - 0.15.x concurrency: # Cancels pending runs when a PR gets updated. group: ${{ github.head_ref || github.run_id }}-${{ github.actor }} diff --git a/CMakeLists.txt b/CMakeLists.txt index 4e6d2c278c..ef371fcdd3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,7 +39,7 @@ project(zig set(ZIG_VERSION_MAJOR 0) set(ZIG_VERSION_MINOR 15) -set(ZIG_VERSION_PATCH 0) +set(ZIG_VERSION_PATCH 1) set(ZIG_VERSION "" CACHE STRING "Override Zig version string. Default is to find out with git.") if("${ZIG_VERSION}" STREQUAL "") diff --git a/build.zig b/build.zig index b6656c4df9..37523e66a3 100644 --- a/build.zig +++ b/build.zig @@ -10,7 +10,7 @@ const assert = std.debug.assert; const DevEnv = @import("src/dev.zig").Env; const ValueInterpretMode = enum { direct, by_name }; -const zig_version: std.SemanticVersion = .{ .major = 0, .minor = 15, .patch = 0 }; +const zig_version: std.SemanticVersion = .{ .major = 0, .minor = 15, .patch = 1 }; const stack_size = 46 * 1024 * 1024; pub fn build(b: *std.Build) !void { From 6cdbf4223c14ca5d3adf7574efda6c6b66b37106 Mon Sep 17 00:00:00 2001 From: Rohlem Date: Tue, 19 Aug 2025 20:19:02 +0200 Subject: [PATCH 2/6] never advance seek position in `std.Io.Reader.peekDelimiterExclusive` (#24899) * extend std.Io.Reader.peekDelimiterExclusive test to repeat successful end-of-stream path (fails) * fix std.Io.Reader.peekDelimiterExclusive to not advance seek position in successful end-of-stream path --- lib/std/Io/Reader.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/std/Io/Reader.zig b/lib/std/Io/Reader.zig index ff74c6f602..5e08ad6d0c 100644 --- a/lib/std/Io/Reader.zig +++ b/lib/std/Io/Reader.zig @@ -836,7 +836,6 @@ pub fn peekDelimiterExclusive(r: *Reader, delimiter: u8) DelimiterError![]u8 { error.EndOfStream => { const remaining = r.buffer[r.seek..r.end]; if (remaining.len == 0) return error.EndOfStream; - r.toss(remaining.len); return remaining; }, else => |e| return e, @@ -1364,6 +1363,7 @@ test peekDelimiterExclusive { try testing.expectEqualStrings("ab", try r.peekDelimiterExclusive('\n')); r.toss(3); try testing.expectEqualStrings("c", try r.peekDelimiterExclusive('\n')); + try testing.expectEqualStrings("c", try r.peekDelimiterExclusive('\n')); } test streamDelimiter { From c3aa6506467c607aa3fcaaa70fdf97a54cea3d98 Mon Sep 17 00:00:00 2001 From: TemariVirus Date: Mon, 18 Aug 2025 16:49:23 +0800 Subject: [PATCH 3/6] std.Io.Writer: fix upper case hex float formatting --- lib/std/Io/Writer.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/std/Io/Writer.zig b/lib/std/Io/Writer.zig index 2e64f30a2b..707ed9cb94 100644 --- a/lib/std/Io/Writer.zig +++ b/lib/std/Io/Writer.zig @@ -1090,7 +1090,7 @@ pub fn printValue( else => invalidFmtError(fmt, value), }, 'X' => switch (@typeInfo(T)) { - .float, .comptime_float => return printFloatHexOptions(w, value, options.toNumber(.hex, .lower)), + .float, .comptime_float => return printFloatHexOptions(w, value, options.toNumber(.hex, .upper)), .int, .comptime_int => return printInt(w, value, 16, .upper, options), .@"enum" => return printInt(w, @intFromEnum(value), 16, .upper, options), .@"struct" => return value.formatNumber(w, options.toNumber(.hex, .upper)), From 8af682b13adcea0cd8c7fe7c373851454af579fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl=20=C3=85stholm?= Date: Wed, 20 Aug 2025 01:08:41 +0200 Subject: [PATCH 4/6] Fix bugs in Windows readVec implementations --- lib/std/fs/File.zig | 24 +++++++++++++----------- lib/std/net.zig | 3 +-- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/lib/std/fs/File.zig b/lib/std/fs/File.zig index 566607c6a4..4465701f1a 100644 --- a/lib/std/fs/File.zig +++ b/lib/std/fs/File.zig @@ -1343,14 +1343,15 @@ pub const Reader = struct { if (is_windows) { // Unfortunately, `ReadFileScatter` cannot be used since it // requires page alignment. - assert(io_reader.seek == io_reader.end); - io_reader.seek = 0; - io_reader.end = 0; + if (io_reader.seek == io_reader.end) { + io_reader.seek = 0; + io_reader.end = 0; + } const first = data[0]; - if (first.len >= io_reader.buffer.len) { + if (first.len >= io_reader.buffer.len - io_reader.end) { return readPositional(r, first); } else { - io_reader.end += try readPositional(r, io_reader.buffer); + io_reader.end += try readPositional(r, io_reader.buffer[io_reader.end..]); return 0; } } @@ -1391,14 +1392,15 @@ pub const Reader = struct { if (is_windows) { // Unfortunately, `ReadFileScatter` cannot be used since it // requires page alignment. - assert(io_reader.seek == io_reader.end); - io_reader.seek = 0; - io_reader.end = 0; + if (io_reader.seek == io_reader.end) { + io_reader.seek = 0; + io_reader.end = 0; + } const first = data[0]; - if (first.len >= io_reader.buffer.len) { - return readStreaming(r, first); + if (first.len >= io_reader.buffer.len - io_reader.end) { + return readPositional(r, first); } else { - io_reader.end += try readStreaming(r, io_reader.buffer); + io_reader.end += try readPositional(r, io_reader.buffer[io_reader.end..]); return 0; } } diff --git a/lib/std/net.zig b/lib/std/net.zig index 326cf99753..083bda85d5 100644 --- a/lib/std/net.zig +++ b/lib/std/net.zig @@ -1992,8 +1992,7 @@ pub const Stream = struct { }; if (n == 0) return error.EndOfStream; if (n > data_size) { - io_r.seek = 0; - io_r.end = n - data_size; + io_r.end += n - data_size; return data_size; } return n; From 43ced7d147c3b688817f806627692affa08c5770 Mon Sep 17 00:00:00 2001 From: Justus Klausecker Date: Tue, 19 Aug 2025 23:21:11 +0200 Subject: [PATCH 5/6] expose darwin.PT in std.c --- lib/std/c.zig | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/std/c.zig b/lib/std/c.zig index 09ffd85436..9d5e5bf9ab 100644 --- a/lib/std/c.zig +++ b/lib/std/c.zig @@ -11064,6 +11064,7 @@ pub const kinfo_getfile = freebsd.kinfo_getfile; pub const COPYFILE = darwin.COPYFILE; pub const CPUFAMILY = darwin.CPUFAMILY; +pub const PT = darwin.PT; pub const DB_RECORDTYPE = darwin.DB_RECORDTYPE; pub const EXC = darwin.EXC; pub const EXCEPTION = darwin.EXCEPTION; From 3db960767d12b6214bcf43f1966a037c7a586a12 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Tue, 19 Aug 2025 16:20:53 -0700 Subject: [PATCH 6/6] Release 0.15.1 --- doc/langref.html.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/langref.html.in b/doc/langref.html.in index e8950c54f0..94eeff3f89 100644 --- a/doc/langref.html.in +++ b/doc/langref.html.in @@ -317,7 +317,7 @@ 0.12.0 | 0.13.0 | 0.14.1 | - 0.15.0 | + 0.15.1 | master