Commit cba1555104

Andrew Kelley <andrew@ziglang.org>
2024-03-20 01:02:04
std: don't do BYOS at the POSIX API layer
This was a mistake from day one. This is the wrong abstraction layer to do this in. My alternate plan for this is to make all I/O operations require an IO interface parameter, similar to how allocations require an Allocator interface parameter today.
1 parent 5d38953
Changed files (1)
lib
lib/std/posix.zig
@@ -39,12 +39,8 @@ const linux = std.os.linux;
 const windows = std.os.windows;
 const wasi = std.os.wasi;
 
-/// Applications can override the `system` API layer in their root source file.
-/// Otherwise, when linking libc, this is the C API.
-/// When not linking libc, it is the OS-specific system interface.
-pub const system = if (@hasDecl(root, "os") and @hasDecl(root.os, "system") and root.os != @This())
-    root.os.system
-else if (use_libc)
+/// A libc-compatible API layer.
+pub const system = if (use_libc)
     std.c
 else switch (native_os) {
     .linux => linux,