commit cba155510431104fcfe2f6b61e955bc4d42927fb (tree)
parent 5d389535e875f3d1b4865fc10fb79317b26c5ed7
Author: Andrew Kelley <andrew@ziglang.org>
Date: Tue, 19 Mar 2024 17:02:04 -0700
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.
Diffstat:
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/lib/std/posix.zig b/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,