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 = .{...@@ -12,6 +12,8 @@ pub const std_options: std.Options = .{
12var log_err_count: usize = 0;12var log_err_count: usize = 0;
13var fba_buffer: [8192]u8 = undefined;13var fba_buffer: [8192]u8 = undefined;
14var fba = std.heap.FixedBufferAllocator.init(&fba_buffer);14var 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
16const crippled = switch (builtin.zig_backend) {18const crippled = switch (builtin.zig_backend) {
17 .stage2_powerpc,19 .stage2_powerpc,
...@@ -64,9 +66,6 @@ pub fn main() void {...@@ -64,9 +66,6 @@ pub fn main() void {
64 }66 }
65}67}
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
70fn mainServer() !void {69fn mainServer() !void {
71 @disableInstrumentation();70 @disableInstrumentation();
72 var stdin_reader = std.fs.File.stdin().reader(&stdin_buffer);71 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 {...@@ -343,7 +343,9 @@ fn mainArgs(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
343 return cmdInit(gpa, arena, cmd_args);343 return cmdInit(gpa, arena, cmd_args);
344 } else if (mem.eql(u8, cmd, "targets")) {344 } else if (mem.eql(u8, cmd, "targets")) {
345 dev.check(.targets_command);345 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);
347 } else if (mem.eql(u8, cmd, "version")) {349 } else if (mem.eql(u8, cmd, "version")) {
348 dev.check(.version_command);350 dev.check(.version_command);
349 try fs.File.stdout().writeAll(build_options.version ++ "\n");351 try fs.File.stdout().writeAll(build_options.version ++ "\n");
...@@ -4548,7 +4550,7 @@ fn cmdTranslateC(...@@ -4548,7 +4550,7 @@ fn cmdTranslateC(
4548 error.SemanticAnalyzeFail => break :f .{ .error_bundle = errors },4550 error.SemanticAnalyzeFail => break :f .{ .error_bundle = errors },
4549 };4551 };
4550 defer tree.deinit(comp.gpa);4552 defer tree.deinit(comp.gpa);
4551 break :f .{ .success = try tree.render(arena) };4553 break :f .{ .success = try tree.renderAlloc(arena) };
4552 },4554 },
4553 };4555 };
45544556
...@@ -5684,7 +5686,7 @@ const ArgIteratorResponseFile = process.ArgIteratorGeneral(.{ .comments = true,...@@ -5684,7 +5686,7 @@ const ArgIteratorResponseFile = process.ArgIteratorGeneral(.{ .comments = true,
5684/// Initialize the arguments from a Response File. "*.rsp"5686/// Initialize the arguments from a Response File. "*.rsp"
5685fn initArgIteratorResponseFile(allocator: Allocator, resp_file_path: []const u8) !ArgIteratorResponseFile {5687fn initArgIteratorResponseFile(allocator: Allocator, resp_file_path: []const u8) !ArgIteratorResponseFile {
5686 const max_bytes = 10 * 1024 * 1024; // 10 MiB of command line arguments is a reasonable limit5688 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);
5688 errdefer allocator.free(cmd_line);5690 errdefer allocator.free(cmd_line);
56895691
5690 return ArgIteratorResponseFile.initTakeOwnership(allocator, cmd_line);5692 return ArgIteratorResponseFile.initTakeOwnership(allocator, cmd_line);
...@@ -6056,7 +6058,8 @@ fn cmdAstCheck(...@@ -6056,7 +6058,8 @@ fn cmdAstCheck(
6056 };6058 };
6057 } else fs.File.stdin();6059 } else fs.File.stdin();
6058 defer if (zig_source_path != null) f.close();6060 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| {
6060 fatal("unable to load file '{s}' for ast-check: {s}", .{ display_path, @errorName(err) });6063 fatal("unable to load file '{s}' for ast-check: {s}", .{ display_path, @errorName(err) });
6061 };6064 };
6062 };6065 };
...@@ -6413,14 +6416,16 @@ fn cmdChangelist(...@@ -6413,14 +6416,16 @@ fn cmdChangelist(
6413 var f = fs.cwd().openFile(old_source_path, .{}) catch |err|6416 var f = fs.cwd().openFile(old_source_path, .{}) catch |err|
6414 fatal("unable to open old source file '{s}': {s}", .{ old_source_path, @errorName(err) });6417 fatal("unable to open old source file '{s}': {s}", .{ old_source_path, @errorName(err) });
6415 defer f.close();6418 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|
6417 fatal("unable to read old source file '{s}': {s}", .{ old_source_path, @errorName(err) });6421 fatal("unable to read old source file '{s}': {s}", .{ old_source_path, @errorName(err) });
6418 };6422 };
6419 const new_source = source: {6423 const new_source = source: {
6420 var f = fs.cwd().openFile(new_source_path, .{}) catch |err|6424 var f = fs.cwd().openFile(new_source_path, .{}) catch |err|
6421 fatal("unable to open new source file '{s}': {s}", .{ new_source_path, @errorName(err) });6425 fatal("unable to open new source file '{s}': {s}", .{ new_source_path, @errorName(err) });
6422 defer f.close();6426 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|
6424 fatal("unable to read new source file '{s}': {s}", .{ new_source_path, @errorName(err) });6429 fatal("unable to read new source file '{s}': {s}", .{ new_source_path, @errorName(err) });
6425 };6430 };
64266431
...@@ -6943,7 +6948,7 @@ fn cmdFetch(...@@ -6943,7 +6948,7 @@ fn cmdFetch(
6943 ast.deinit(gpa);6948 ast.deinit(gpa);
6944 }6949 }
69456950
6946 var fixups: Ast.Fixups = .{};6951 var fixups: Ast.Render.Fixups = .{};
6947 defer fixups.deinit(gpa);6952 defer fixups.deinit(gpa);
69486953
6949 var saved_path_or_url = path_or_url;6954 var saved_path_or_url = path_or_url;
...@@ -7044,15 +7049,15 @@ fn cmdFetch(...@@ -7044,15 +7049,15 @@ fn cmdFetch(
7044 try fixups.append_string_after_node.put(gpa, manifest.version_node, dependencies_text);7049 try fixups.append_string_after_node.put(gpa, manifest.version_node, dependencies_text);
7045 }7050 }
70467051
7047 var file = build_root.directory.handle.createFile(Package.Manifest.basename, .{}) catch |err| {7052 var aw: std.Io.Writer.Allocating = .init(gpa);
7048 fatal("unable to create {s} file: {s}", .{ Package.Manifest.basename, err });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 });
7049 };7059 };
7050 defer file.close();7060
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 });
7056 return cleanExit();7061 return cleanExit();
7057}7062}
70587063
...@@ -7205,9 +7210,9 @@ fn loadManifest(...@@ -7205,9 +7210,9 @@ fn loadManifest(
7205) !struct { Package.Manifest, Ast } {7210) !struct { Package.Manifest, Ast } {
7206 const manifest_bytes = while (true) {7211 const manifest_bytes = while (true) {
7207 break options.dir.readFileAllocOptions(7212 break options.dir.readFileAllocOptions(
7208 Package.Manifest.basename,
7209 arena,7213 arena,
7210 .limited(Package.Manifest.max_bytes),7214 Package.Manifest.basename,
7215 Package.Manifest.max_bytes,
7211 null,7216 null,
7212 .@"1",7217 .@"1",
7213 0,7218 0,
...@@ -7284,7 +7289,7 @@ const Templates = struct {...@@ -7284,7 +7289,7 @@ const Templates = struct {
7284 }7289 }
72857290
7286 const max_bytes = 10 * 1024 * 1024;7291 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| {
7288 fatal("unable to read template file '{s}': {s}", .{ template_path, @errorName(err) });7293 fatal("unable to read template file '{s}': {s}", .{ template_path, @errorName(err) });
7289 };7294 };
7290 templates.buffer.clearRetainingCapacity();7295 templates.buffer.clearRetainingCapacity();