std.os (removed from the portable target)
The checked-in source still contains a POSIX-shaped std.os migration shim, but RFC 0065 removes that complete module from the public portable target. It is not an application API and is not a safe raw-I/O escape hatch.
The old surface represented standard streams, files, pipes, and sockets as interchangeable usize values. That model cannot express ownership, borrowing, resource kind, or lifetime; it is also not portable to Windows sockets/handles or WASI resources. A close/reuse race could make readiness registered for one integer observe a later unrelated resource.
Use nominal modules instead:
std.iofor process standard streams and sync byte interfaces;std.async.iofor generic async byte interfaces;std.fsandstd.async.fsfor capability-anchored files;std.netfor typed TCP/UDP resources;std.processfor child processes and nominal pipes.
SDK and runtime implementations may use private platform operations underneath those types. Their readiness registration is tied to a nominal resource and its generation and never appears as public readable(fd)/writable(fd) calls.
Raw interop is deferred to a separate platform RFC. It must distinguish owned and borrowed Unix descriptors, Windows sockets from Windows handles, and WASI resources. Until that contract exists, users cross a platform boundary through explicit unsafe extern "C" declarations rather than safe integer constructors or extractors.
Removed Surface
The target exports none of the historical stdin, stdout, stderr, errno, read, write, close, pipe, set_nonblocking, sync, or raw exit symbols from std.os. No compatibility re-export is provided.
Status
This page is a migration tombstone. The current source inventory may continue to list the private/transitional implementation until RFC 0065 is implemented, but the module is absent from the accepted public target and from the public module guide.