authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-07-16 20:26:28-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-07-16 20:26:28-07:00
log64e2551b3ae521d17468f92a50f98c397eca1fd5
tree68798747544a5d07a22d8c67c33f34eac830f1bc
parentfbf8b16ae61ae81ca14027973f3f9366b39a2389

sync


2 files changed, 25 insertions(+), 21 deletions(-)

lib/compiler/test_runner.zig+2-3
......@@ -12,6 +12,8 @@ pub const std_options: std.Options = .{
1212var log_err_count: usize = 0;
1313var fba_buffer: [8192]u8 = undefined;
1414var fba = std.heap.FixedBufferAllocator.init(&fba_buffer);
15var stdin_buffer: [std.heap.page_size_min]u8 align(std.heap.page_size_min) = undefined;
16var stdout_buffer: [std.heap.page_size_min]u8 align(std.heap.page_size_min) = undefined;
1517
1618const crippled = switch (builtin.zig_backend) {
1719 .stage2_powerpc,
......@@ -64,9 +66,6 @@ pub fn main() void {
6466 }
6567}
6668
67var stdin_buffer: [std.heap.page_size_min]u8 align(std.heap.page_size_min) = undefined;
68var stdout_buffer: [std.heap.page_size_min]u8 align(std.heap.page_size_min) = undefined;
69
7069fn mainServer() !void {
7170 @disableInstrumentation();
7271 var stdin_reader = std.fs.File.stdin().reader(&stdin_buffer);
src/main.zig+23-18
......@@ -343,7 +343,9 @@ fn mainArgs(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
343343 return cmdInit(gpa, arena, cmd_args);
344344 } else if (mem.eql(u8, cmd, "targets")) {
345345 dev.check(.targets_command);
346 return @import("print_targets.zig").cmdTargets(arena, cmd_args);
346 const host = std.zig.resolveTargetQueryOrFatal(.{});
347 const stdout = fs.File.stdout().deprecatedWriter();
348 return @import("print_targets.zig").cmdTargets(arena, cmd_args, stdout, &host);
347349 } else if (mem.eql(u8, cmd, "version")) {
348350 dev.check(.version_command);
349351 try fs.File.stdout().writeAll(build_options.version ++ "\n");
......@@ -4548,7 +4550,7 @@ fn cmdTranslateC(
45484550 error.SemanticAnalyzeFail => break :f .{ .error_bundle = errors },
45494551 };
45504552 defer tree.deinit(comp.gpa);
4551 break :f .{ .success = try tree.render(arena) };
4553 break :f .{ .success = try tree.renderAlloc(arena) };
45524554 },
45534555 };
45544556
......@@ -5684,7 +5686,7 @@ const ArgIteratorResponseFile = process.ArgIteratorGeneral(.{ .comments = true,
56845686/// Initialize the arguments from a Response File. "*.rsp"
56855687fn initArgIteratorResponseFile(allocator: Allocator, resp_file_path: []const u8) !ArgIteratorResponseFile {
56865688 const max_bytes = 10 * 1024 * 1024; // 10 MiB of command line arguments is a reasonable limit
5687 const cmd_line = try fs.cwd().readFileAlloc(resp_file_path, allocator, .limited(max_bytes));
5689 const cmd_line = try fs.cwd().readFileAlloc(allocator, resp_file_path, max_bytes);
56885690 errdefer allocator.free(cmd_line);
56895691
56905692 return ArgIteratorResponseFile.initTakeOwnership(allocator, cmd_line);
......@@ -6056,7 +6058,8 @@ fn cmdAstCheck(
60566058 };
60576059 } else fs.File.stdin();
60586060 defer if (zig_source_path != null) f.close();
6059 break :s std.zig.readSourceFileToEndAlloc(arena, f, null) catch |err| {
6061 var file_reader: fs.File.Reader = f.reader(&stdio_buffer);
6062 break :s std.zig.readSourceFileToEndAlloc(arena, &file_reader) catch |err| {
60606063 fatal("unable to load file '{s}' for ast-check: {s}", .{ display_path, @errorName(err) });
60616064 };
60626065 };
......@@ -6413,14 +6416,16 @@ fn cmdChangelist(
64136416 var f = fs.cwd().openFile(old_source_path, .{}) catch |err|
64146417 fatal("unable to open old source file '{s}': {s}", .{ old_source_path, @errorName(err) });
64156418 defer f.close();
6416 break :source std.zig.readSourceFileToEndAlloc(arena, f, std.zig.max_src_size) catch |err|
6419 var file_reader: fs.File.Reader = f.reader(&stdio_buffer);
6420 break :source std.zig.readSourceFileToEndAlloc(arena, &file_reader) catch |err|
64176421 fatal("unable to read old source file '{s}': {s}", .{ old_source_path, @errorName(err) });
64186422 };
64196423 const new_source = source: {
64206424 var f = fs.cwd().openFile(new_source_path, .{}) catch |err|
64216425 fatal("unable to open new source file '{s}': {s}", .{ new_source_path, @errorName(err) });
64226426 defer f.close();
6423 break :source std.zig.readSourceFileToEndAlloc(arena, f, std.zig.max_src_size) catch |err|
6427 var file_reader: fs.File.Reader = f.reader(&stdio_buffer);
6428 break :source std.zig.readSourceFileToEndAlloc(arena, &file_reader) catch |err|
64246429 fatal("unable to read new source file '{s}': {s}", .{ new_source_path, @errorName(err) });
64256430 };
64266431
......@@ -6943,7 +6948,7 @@ fn cmdFetch(
69436948 ast.deinit(gpa);
69446949 }
69456950
6946 var fixups: Ast.Fixups = .{};
6951 var fixups: Ast.Render.Fixups = .{};
69476952 defer fixups.deinit(gpa);
69486953
69496954 var saved_path_or_url = path_or_url;
......@@ -7044,15 +7049,15 @@ fn cmdFetch(
70447049 try fixups.append_string_after_node.put(gpa, manifest.version_node, dependencies_text);
70457050 }
70467051
7047 var file = build_root.directory.handle.createFile(Package.Manifest.basename, .{}) catch |err| {
7048 fatal("unable to create {s} file: {s}", .{ Package.Manifest.basename, err });
7052 var aw: std.Io.Writer.Allocating = .init(gpa);
7053 defer aw.deinit();
7054 try ast.render(gpa, &aw.writer, fixups);
7055 const rendered = aw.getWritten();
7056
7057 build_root.directory.handle.writeFile(.{ .sub_path = Package.Manifest.basename, .data = rendered }) catch |err| {
7058 fatal("unable to write {s} file: {t}", .{ Package.Manifest.basename, err });
70497059 };
7050 defer file.close();
7051 var stdout_bw = fs.File.stdout().writer().buffered(&stdio_buffer);
7052 ast.render(gpa, &stdout_bw, fixups) catch |err| fatal("failed to render AST to {s}: {s}", .{
7053 Package.Manifest.basename, err,
7054 });
7055 stdout_bw.flush() catch |err| fatal("failed to flush {s}: {s}", .{ Package.Manifest.basename, err });
7060
70567061 return cleanExit();
70577062}
70587063
......@@ -7205,9 +7210,9 @@ fn loadManifest(
72057210) !struct { Package.Manifest, Ast } {
72067211 const manifest_bytes = while (true) {
72077212 break options.dir.readFileAllocOptions(
7208 Package.Manifest.basename,
72097213 arena,
7210 .limited(Package.Manifest.max_bytes),
7214 Package.Manifest.basename,
7215 Package.Manifest.max_bytes,
72117216 null,
72127217 .@"1",
72137218 0,
......@@ -7284,7 +7289,7 @@ const Templates = struct {
72847289 }
72857290
72867291 const max_bytes = 10 * 1024 * 1024;
7287 const contents = templates.dir.readFileAlloc(template_path, arena, .limited(max_bytes)) catch |err| {
7292 const contents = templates.dir.readFileAlloc(arena, template_path, max_bytes) catch |err| {
72887293 fatal("unable to read template file '{s}': {s}", .{ template_path, @errorName(err) });
72897294 };
72907295 templates.buffer.clearRetainingCapacity();