aboutsummaryrefslogtreecommitdiff
path: root/lib/compiler
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2025-12-08 17:14:31 -0800
committerAndrew Kelley <andrew@ziglang.org>2025-12-23 22:15:08 -0800
commit950d18ef695bb7a28397e080dc3c201559ec4ee2 (patch)
tree253209139275932ed503a5ea4529594ab70df8cc /lib/compiler
parent314c906dba32e72317947a15254519b22745b13f (diff)
downloadzig-950d18ef695bb7a28397e080dc3c201559ec4ee2.tar.gz
zig-950d18ef695bb7a28397e080dc3c201559ec4ee2.zip
update all access() to access(io)
Diffstat (limited to 'lib/compiler')
-rw-r--r--lib/compiler/aro/aro/Driver.zig6
-rw-r--r--lib/compiler/aro/aro/Driver/Filesystem.zig8
-rw-r--r--lib/compiler/aro/aro/Toolchain.zig13
-rw-r--r--lib/compiler/aro/backend/Assembly.zig4
-rw-r--r--lib/compiler/resinator/cli.zig10
-rw-r--r--lib/compiler/resinator/main.zig6
-rw-r--r--lib/compiler/std-docs.zig8
-rw-r--r--lib/compiler/translate-c/main.zig4
8 files changed, 31 insertions, 28 deletions
diff --git a/lib/compiler/aro/aro/Driver.zig b/lib/compiler/aro/aro/Driver.zig
index fec3cea0f8..b344cc8a9d 100644
--- a/lib/compiler/aro/aro/Driver.zig
+++ b/lib/compiler/aro/aro/Driver.zig
@@ -1333,7 +1333,7 @@ fn processSource(
Io.File.stdout();
defer if (dep_file_name != null) file.close(io);
- var file_writer = file.writer(&writer_buf);
+ var file_writer = file.writer(io, &writer_buf);
dep_file.write(&file_writer.interface) catch
return d.fatal("unable to write dependency file: {s}", .{errorDescription(file_writer.err.?)});
}
@@ -1358,7 +1358,7 @@ fn processSource(
Io.File.stdout();
defer if (d.output_name != null) file.close(io);
- var file_writer = file.writer(&writer_buf);
+ var file_writer = file.writer(io, &writer_buf);
pp.prettyPrintTokens(&file_writer.interface, dump_mode) catch
return d.fatal("unable to write result: {s}", .{errorDescription(file_writer.err.?)});
@@ -1459,7 +1459,7 @@ fn processSource(
return d.fatal("unable to create output file '{s}': {s}", .{ out_file_name, errorDescription(er) });
defer out_file.close(io);
- var file_writer = out_file.writer(&writer_buf);
+ var file_writer = out_file.writer(io, &writer_buf);
obj.finish(&file_writer.interface) catch
return d.fatal("could not output to object file '{s}': {s}", .{ out_file_name, errorDescription(file_writer.err.?) });
}
diff --git a/lib/compiler/aro/aro/Driver/Filesystem.zig b/lib/compiler/aro/aro/Driver/Filesystem.zig
index 001f10f27c..c229dfd831 100644
--- a/lib/compiler/aro/aro/Driver/Filesystem.zig
+++ b/lib/compiler/aro/aro/Driver/Filesystem.zig
@@ -57,8 +57,8 @@ fn existsFake(entries: []const Filesystem.Entry, path: []const u8) bool {
return false;
}
-fn canExecutePosix(path: []const u8) bool {
- std.posix.access(path, std.posix.X_OK) catch return false;
+fn canExecutePosix(io: Io, path: []const u8) bool {
+ Io.Dir.accessAbsolute(io, path, .{ .execute = true }) catch return false;
// Todo: ensure path is not a directory
return true;
}
@@ -172,10 +172,10 @@ pub const Filesystem = union(enum) {
}
};
- pub fn exists(fs: Filesystem, path: []const u8) bool {
+ pub fn exists(fs: Filesystem, io: Io, path: []const u8) bool {
switch (fs) {
.real => |cwd| {
- cwd.access(path, .{}) catch return false;
+ cwd.access(io, path, .{}) catch return false;
return true;
},
.fake => |paths| return existsFake(paths, path),
diff --git a/lib/compiler/aro/aro/Toolchain.zig b/lib/compiler/aro/aro/Toolchain.zig
index 0328c264d0..0aa9d76fc8 100644
--- a/lib/compiler/aro/aro/Toolchain.zig
+++ b/lib/compiler/aro/aro/Toolchain.zig
@@ -501,7 +501,7 @@ pub fn addBuiltinIncludeDir(tc: *const Toolchain) !void {
try d.includes.ensureUnusedCapacity(gpa, 1);
if (d.resource_dir) |resource_dir| {
const path = try std.fs.path.join(arena, &.{ resource_dir, "include" });
- comp.cwd.access(path, .{}) catch {
+ comp.cwd.access(io, path, .{}) catch {
return d.fatal("Aro builtin headers not found in provided -resource-dir", .{});
};
d.includes.appendAssumeCapacity(.{ .kind = .system, .path = path });
@@ -512,7 +512,7 @@ pub fn addBuiltinIncludeDir(tc: *const Toolchain) !void {
var base_dir = d.comp.cwd.openDir(io, dirname, .{}) catch continue;
defer base_dir.close(io);
- base_dir.access("include/stddef.h", .{}) catch continue;
+ base_dir.access(io, "include/stddef.h", .{}) catch continue;
const path = try std.fs.path.join(arena, &.{ dirname, "include" });
d.includes.appendAssumeCapacity(.{ .kind = .system, .path = path });
break;
@@ -524,12 +524,14 @@ pub fn addBuiltinIncludeDir(tc: *const Toolchain) !void {
/// Otherwise returns a slice of `buf`. If the file is larger than `buf` partial contents are returned
pub fn readFile(tc: *const Toolchain, path: []const u8, buf: []u8) ?[]const u8 {
const comp = tc.driver.comp;
- return comp.cwd.readFile(comp.io, path, buf) catch null;
+ const io = comp.io;
+ return comp.cwd.readFile(io, path, buf) catch null;
}
pub fn exists(tc: *const Toolchain, path: []const u8) bool {
const comp = tc.driver.comp;
- comp.cwd.access(comp.io, path, .{}) catch return false;
+ const io = comp.io;
+ comp.cwd.access(io, path, .{}) catch return false;
return true;
}
@@ -547,7 +549,8 @@ pub fn canExecute(tc: *const Toolchain, path: []const u8) bool {
}
const comp = tc.driver.comp;
- comp.cwd.access(comp.io, path, .{ .execute = true }) catch return false;
+ const io = comp.io;
+ comp.cwd.access(io, path, .{ .execute = true }) catch return false;
// Todo: ensure path is not a directory
return true;
}
diff --git a/lib/compiler/aro/backend/Assembly.zig b/lib/compiler/aro/backend/Assembly.zig
index 80143bf97f..4ec4860b51 100644
--- a/lib/compiler/aro/backend/Assembly.zig
+++ b/lib/compiler/aro/backend/Assembly.zig
@@ -12,8 +12,8 @@ pub fn deinit(self: *const Assembly, gpa: Allocator) void {
gpa.free(self.text);
}
-pub fn writeToFile(self: Assembly, file: Io.File) !void {
- var file_writer = file.writer(&.{});
+pub fn writeToFile(self: Assembly, io: Io, file: Io.File) !void {
+ var file_writer = file.writer(io, &.{});
var buffers = [_][]const u8{ self.data, self.text };
try file_writer.interface.writeSplatAll(&buffers, 1);
diff --git a/lib/compiler/resinator/cli.zig b/lib/compiler/resinator/cli.zig
index ae4ece2968..5588390197 100644
--- a/lib/compiler/resinator/cli.zig
+++ b/lib/compiler/resinator/cli.zig
@@ -250,13 +250,13 @@ pub const Options = struct {
/// worlds' situation where we'll be compatible with most use-cases
/// of the .rc extension being omitted from the CLI args, but still
/// work fine if the file itself does not have an extension.
- pub fn maybeAppendRC(options: *Options, cwd: Io.Dir) !void {
+ pub fn maybeAppendRC(options: *Options, io: Io, cwd: Io.Dir) !void {
switch (options.input_source) {
.stdio => return,
.filename => {},
}
if (options.input_format == .rc and std.fs.path.extension(options.input_source.filename).len == 0) {
- cwd.access(options.input_source.filename, .{}) catch |err| switch (err) {
+ cwd.access(io, options.input_source.filename, .{}) catch |err| switch (err) {
error.FileNotFound => {
var filename_bytes = try options.allocator.alloc(u8, options.input_source.filename.len + 3);
@memcpy(filename_bytes[0..options.input_source.filename.len], options.input_source.filename);
@@ -2005,19 +2005,19 @@ test "maybeAppendRC" {
// appended.
var file = try tmp.dir.createFile(io, "foo", .{});
file.close(io);
- try options.maybeAppendRC(tmp.dir);
+ try options.maybeAppendRC(io, tmp.dir);
try std.testing.expectEqualStrings("foo", options.input_source.filename);
// Now delete the file and try again. But this time change the input format
// to non-rc.
try tmp.dir.deleteFile("foo");
options.input_format = .res;
- try options.maybeAppendRC(tmp.dir);
+ try options.maybeAppendRC(io, tmp.dir);
try std.testing.expectEqualStrings("foo", options.input_source.filename);
// Finally, reset the input format to rc. Since the verbatim name is no longer found
// and the input filename does not have an extension, .rc should get appended.
options.input_format = .rc;
- try options.maybeAppendRC(tmp.dir);
+ try options.maybeAppendRC(io, tmp.dir);
try std.testing.expectEqualStrings("foo.rc", options.input_source.filename);
}
diff --git a/lib/compiler/resinator/main.zig b/lib/compiler/resinator/main.zig
index 416abc2ab7..1a6ef5eea3 100644
--- a/lib/compiler/resinator/main.zig
+++ b/lib/compiler/resinator/main.zig
@@ -318,7 +318,7 @@ pub fn main() !void {
defer depfile.close(io);
var depfile_buffer: [1024]u8 = undefined;
- var depfile_writer = depfile.writer(&depfile_buffer);
+ var depfile_writer = depfile.writer(io, &depfile_buffer);
switch (options.depfile_fmt) {
.json => {
var write_stream: std.json.Stringify = .{
@@ -521,9 +521,9 @@ const IoStream = struct {
}
};
- pub fn writer(source: *Source, allocator: Allocator, buffer: []u8) Writer {
+ pub fn writer(source: *Source, allocator: Allocator, io: Io, buffer: []u8) Writer {
return switch (source.*) {
- .file, .stdio => |file| .{ .file = file.writer(buffer) },
+ .file, .stdio => |file| .{ .file = file.writer(io, buffer) },
.memory => |*list| .{ .allocating = .fromArrayList(allocator, list) },
.closed => unreachable,
};
diff --git a/lib/compiler/std-docs.zig b/lib/compiler/std-docs.zig
index d5beab5f17..f1382e6eae 100644
--- a/lib/compiler/std-docs.zig
+++ b/lib/compiler/std-docs.zig
@@ -334,8 +334,8 @@ fn buildWasmBinary(
});
defer poller.deinit();
- try sendMessage(child.stdin.?, .update);
- try sendMessage(child.stdin.?, .exit);
+ try sendMessage(io, child.stdin.?, .update);
+ try sendMessage(io, child.stdin.?, .exit);
var result: ?Cache.Path = null;
var result_error_bundle = std.zig.ErrorBundle.empty;
@@ -421,12 +421,12 @@ fn buildWasmBinary(
};
}
-fn sendMessage(file: std.Io.File, tag: std.zig.Client.Message.Tag) !void {
+fn sendMessage(io: Io, file: std.Io.File, tag: std.zig.Client.Message.Tag) !void {
const header: std.zig.Client.Message.Header = .{
.tag = tag,
.bytes_len = 0,
};
- var w = file.writer(&.{});
+ var w = file.writer(io, &.{});
w.interface.writeStruct(header, .little) catch |err| switch (err) {
error.WriteFailed => return w.err.?,
};
diff --git a/lib/compiler/translate-c/main.zig b/lib/compiler/translate-c/main.zig
index d140145032..d02f21a2a8 100644
--- a/lib/compiler/translate-c/main.zig
+++ b/lib/compiler/translate-c/main.zig
@@ -232,7 +232,7 @@ fn translate(d: *aro.Driver, tc: *aro.Toolchain, args: [][:0]u8, zig_integration
Io.File.stdout();
defer if (dep_file_name != null) file.close(io);
- var file_writer = file.writer(&out_buf);
+ var file_writer = file.writer(io, &out_buf);
dep_file.write(&file_writer.interface) catch
return d.fatal("unable to write dependency file: {s}", .{aro.Driver.errorDescription(file_writer.err.?)});
}
@@ -263,7 +263,7 @@ fn translate(d: *aro.Driver, tc: *aro.Toolchain, args: [][:0]u8, zig_integration
out_file_path = path;
}
- var out_writer = out_file.writer(&out_buf);
+ var out_writer = out_file.writer(io, &out_buf);
out_writer.interface.writeAll(rendered_zig) catch {};
out_writer.interface.flush() catch {};
if (out_writer.err) |write_err|