diff --git a/CMakeLists.txt b/CMakeLists.txt index 6dbdf0c93e..d9824e5c12 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -387,6 +387,18 @@ set(ZIG_STAGE2_SOURCES lib/std/Build.zig lib/std/Build/Cache.zig lib/std/Build/Cache/DepTokenizer.zig + lib/std/Io.zig + lib/std/Io/Reader.zig + lib/std/Io/Writer.zig + lib/std/Io/buffered_atomic_file.zig + lib/std/Io/buffered_writer.zig + lib/std/Io/change_detection_stream.zig + lib/std/Io/counting_reader.zig + lib/std/Io/counting_writer.zig + lib/std/Io/find_byte_writer.zig + lib/std/Io/fixed_buffer_stream.zig + lib/std/Io/limited_reader.zig + lib/std/Io/seekable_stream.zig lib/std/Progress.zig lib/std/Random.zig lib/std/Target.zig @@ -448,9 +460,6 @@ set(ZIG_STAGE2_SOURCES lib/std/hash_map.zig lib/std/heap.zig lib/std/heap/arena_allocator.zig - lib/std/io.zig - lib/std/io/Reader.zig - lib/std/io/Writer.zig lib/std/json.zig lib/std/leb128.zig lib/std/log.zig diff --git a/lib/std/io.zig b/lib/std/Io.zig similarity index 98% rename from lib/std/io.zig rename to lib/std/Io.zig index d27338fe5f..90b1ea7617 100644 --- a/lib/std/io.zig +++ b/lib/std/Io.zig @@ -79,13 +79,13 @@ pub const Limit = enum(usize) { } }; -pub const Reader = @import("io/Reader.zig"); -pub const Writer = @import("io/Writer.zig"); +pub const Reader = @import("Io/Reader.zig"); +pub const Writer = @import("Io/Writer.zig"); -pub const ChangeDetectionStream = @import("io/change_detection_stream.zig").ChangeDetectionStream; -pub const changeDetectionStream = @import("io/change_detection_stream.zig").changeDetectionStream; +pub const ChangeDetectionStream = @import("Io/change_detection_stream.zig").ChangeDetectionStream; +pub const changeDetectionStream = @import("Io/change_detection_stream.zig").changeDetectionStream; -pub const tty = @import("io/tty.zig"); +pub const tty = @import("Io/tty.zig"); pub fn poll( gpa: Allocator, @@ -495,5 +495,5 @@ pub fn PollFiles(comptime StreamEnum: type) type { test { _ = Reader; _ = Writer; - _ = @import("io/test.zig"); + _ = @import("Io/test.zig"); } diff --git a/lib/std/io/DeprecatedReader.zig b/lib/std/Io/DeprecatedReader.zig similarity index 100% rename from lib/std/io/DeprecatedReader.zig rename to lib/std/Io/DeprecatedReader.zig diff --git a/lib/std/io/DeprecatedWriter.zig b/lib/std/Io/DeprecatedWriter.zig similarity index 100% rename from lib/std/io/DeprecatedWriter.zig rename to lib/std/Io/DeprecatedWriter.zig diff --git a/lib/std/io/Reader.zig b/lib/std/Io/Reader.zig similarity index 100% rename from lib/std/io/Reader.zig rename to lib/std/Io/Reader.zig diff --git a/lib/std/io/Reader/Limited.zig b/lib/std/Io/Reader/Limited.zig similarity index 100% rename from lib/std/io/Reader/Limited.zig rename to lib/std/Io/Reader/Limited.zig diff --git a/lib/std/io/Writer.zig b/lib/std/Io/Writer.zig similarity index 100% rename from lib/std/io/Writer.zig rename to lib/std/Io/Writer.zig diff --git a/lib/std/io/change_detection_stream.zig b/lib/std/Io/change_detection_stream.zig similarity index 100% rename from lib/std/io/change_detection_stream.zig rename to lib/std/Io/change_detection_stream.zig diff --git a/lib/std/io/find_byte_writer.zig b/lib/std/Io/find_byte_writer.zig similarity index 100% rename from lib/std/io/find_byte_writer.zig rename to lib/std/Io/find_byte_writer.zig diff --git a/lib/std/io/test.zig b/lib/std/Io/test.zig similarity index 100% rename from lib/std/io/test.zig rename to lib/std/Io/test.zig diff --git a/lib/std/io/tty.zig b/lib/std/Io/tty.zig similarity index 100% rename from lib/std/io/tty.zig rename to lib/std/Io/tty.zig diff --git a/lib/std/debug.zig b/lib/std/debug.zig index 00a9606f53..06b6cec887 100644 --- a/lib/std/debug.zig +++ b/lib/std/debug.zig @@ -219,13 +219,16 @@ pub fn unlockStderrWriter() void { std.Progress.unlockStderrWriter(); } -/// Print to stderr, unbuffered, and silently returning on failure. Intended -/// for use in "printf debugging". Use `std.log` functions for proper logging. +/// Print to stderr, silently returning on failure. Intended for use in "printf +/// debugging". Use `std.log` functions for proper logging. +/// +/// Uses a 64-byte buffer for formatted printing which is flushed before this +/// function returns. pub fn print(comptime fmt: []const u8, args: anytype) void { - var buffer: [32]u8 = undefined; - const bw = lockStderrWriter(&buffer); + var buffer: [64]u8 = undefined; + const w = lockStderrWriter(&buffer); defer unlockStderrWriter(); - nosuspend bw.print(fmt, args) catch return; + nosuspend w.print(fmt, args) catch return; } pub fn getStderrMutex() *std.Thread.Mutex { diff --git a/lib/std/fs/path.zig b/lib/std/fs/path.zig index 1cf4dc3c64..542166b78e 100644 --- a/lib/std/fs/path.zig +++ b/lib/std/fs/path.zig @@ -227,8 +227,8 @@ test join { try testJoinMaybeZWindows(&[_][]const u8{ "c:\\a\\", "b\\", "c" }, "c:\\a\\b\\c", zero); try testJoinMaybeZWindows( - &[_][]const u8{ "c:\\home\\andy\\dev\\zig\\build\\lib\\zig\\std", "io.zig" }, - "c:\\home\\andy\\dev\\zig\\build\\lib\\zig\\std\\io.zig", + &[_][]const u8{ "c:\\home\\andy\\dev\\zig\\build\\lib\\zig\\std", "ab.zig" }, + "c:\\home\\andy\\dev\\zig\\build\\lib\\zig\\std\\ab.zig", zero, ); @@ -252,8 +252,8 @@ test join { try testJoinMaybeZPosix(&[_][]const u8{ "/a/", "b/", "c" }, "/a/b/c", zero); try testJoinMaybeZPosix( - &[_][]const u8{ "/home/andy/dev/zig/build/lib/zig/std", "io.zig" }, - "/home/andy/dev/zig/build/lib/zig/std/io.zig", + &[_][]const u8{ "/home/andy/dev/zig/build/lib/zig/std", "ab.zig" }, + "/home/andy/dev/zig/build/lib/zig/std/ab.zig", zero, ); diff --git a/lib/std/log.zig b/lib/std/log.zig index 5bfb812bf3..417d2e1ced 100644 --- a/lib/std/log.zig +++ b/lib/std/log.zig @@ -136,8 +136,11 @@ pub fn defaultLogEnabled(comptime message_level: Level) bool { return comptime logEnabled(message_level, default_log_scope); } -/// The default implementation for the log function, custom log functions may +/// The default implementation for the log function. Custom log functions may /// forward log messages to this function. +/// +/// Uses a 64-byte buffer for formatted printing which is flushed before this +/// function returns. pub fn defaultLog( comptime message_level: Level, comptime scope: @Type(.enum_literal), @@ -146,7 +149,7 @@ pub fn defaultLog( ) void { const level_txt = comptime message_level.asText(); const prefix2 = if (scope == .default) ": " else "(" ++ @tagName(scope) ++ "): "; - var buffer: [32]u8 = undefined; + var buffer: [64]u8 = undefined; const stderr = std.debug.lockStderrWriter(&buffer); defer std.debug.unlockStderrWriter(); nosuspend stderr.print(level_txt ++ prefix2 ++ format ++ "\n", args) catch return; diff --git a/lib/std/std.zig b/lib/std/std.zig index 73a29ed28e..ba260ff503 100644 --- a/lib/std/std.zig +++ b/lib/std/std.zig @@ -25,6 +25,7 @@ pub const EnumMap = enums.EnumMap; pub const EnumSet = enums.EnumSet; pub const HashMap = hash_map.HashMap; pub const HashMapUnmanaged = hash_map.HashMapUnmanaged; +pub const Io = @import("Io.zig"); pub const MultiArrayList = @import("multi_array_list.zig").MultiArrayList; pub const PriorityQueue = @import("priority_queue.zig").PriorityQueue; pub const PriorityDequeue = @import("priority_dequeue.zig").PriorityDequeue; @@ -65,7 +66,8 @@ pub const hash = @import("hash.zig"); pub const hash_map = @import("hash_map.zig"); pub const heap = @import("heap.zig"); pub const http = @import("http.zig"); -pub const io = @import("io.zig"); +/// Deprecated +pub const io = Io; pub const json = @import("json.zig"); pub const leb = @import("leb128.zig"); pub const log = @import("log.zig");