aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Io.zig
AgeCommit message (Collapse)Author
2025-11-04Io.Queue: fix empty and full states being indistinguishable.Jacob Young
2025-10-30Io: fix some horrible data races and UAFs caused by `Condition` misuseJacob Young
2025-10-29std.Io: add unit test for selectAndrew Kelley
2025-10-29std.Io: fix Group.wait unsoundnessAndrew Kelley
Previously if a Group.wait was canceled, then a subsequent call to wait() or cancel() would trip an assertion in the synchronization code.
2025-10-29std.Io.Threaded: implement dirMakeOpenPath for WASIAndrew Kelley
and fix error code when file operation occurs on director handle
2025-10-29std.Io.Group: fix leak when wait is canceledAndrew Kelley
Only when the operation succeeds should the token field be set to null.
2025-10-29std.Io: make Evented equal void when unimplementedAndrew Kelley
This allows conditional compilation checks.
2025-10-29std.Io: more convenient sleepAndrew Kelley
2025-10-29std.Io: adjust concurrent error setAndrew Kelley
Now std.Io.Threaded can return error.ConcurrencyUnavailable rather than asserting. This is handy for logic that wants to try a concurrent implementation but then fall back to a synchronous one.
2025-10-29std.Io: add Kqueue implementationAndrew Kelley
2025-10-29std.Io: add dirMakePath and dirMakeOpenPathAndrew Kelley
2025-10-29std.Io: introduce openSelfExeAndrew Kelley
2025-10-29std.Io: add dirCloseAndrew Kelley
2025-10-29std.Io: add dirOpenDir and WASI implAndrew Kelley
2025-10-29std.Io.Threaded: implement dirMake for WASIAndrew Kelley
2025-10-29std.Io: add dirAccessAndrew Kelley
2025-10-29fix miscellaneous compilation failuresAndrew Kelley
2025-10-29std.Io: stub file writing rather than incorrect implAndrew Kelley
2025-10-29std.Io: rename EventLoop to IoUringAndrew Kelley
`std.Io.Evented` is introduced to select an appropriate Io implementation depending on OS
2025-10-29std.Io.Group: add cancellation support to "wait"Andrew Kelley
2025-10-29std.Io.Queue: add "uncancelable" variants to "get"Andrew Kelley
useful for resource management
2025-10-29std.Io: implement SelectAndrew Kelley
and finish implementation of HostName.connect
2025-10-29std.Io.net.HostName: move lookup to the interfaceAndrew Kelley
Unfortunately this can't be implemented "above the vtable" because various operating systems don't provide low level DNS resolution primitives such as just putting the list of nameservers in a file. Without libc on Linux it works great though! Anyway this also changes the API to be based on Io.Queue. By using a large enough buffer, reusable code can be written that does not require concurrent, yet takes advantage of responding to DNS queries as they come in. I sketched out a new implementation of `HostName.connect` to demonstrate this, but it will require an additional API (`Io.Select`) to be implemented in a future commit. This commit also introduces "uncancelable" variants for mutex locking, waiting on a condition, and putting items into a queue.
2025-10-29compiler: update for introduction of std.IoAndrew Kelley
only thing remaining is using libc dns resolution when linking libc
2025-10-29std.Io.Threaded: implement netListenUnixAndrew Kelley
2025-10-29std.Io.net.Stream.Reader: fix not using bufferAndrew Kelley
2025-10-29std: fix seekBy unit testAndrew Kelley
2025-10-29std.Io: add unix domain sockets APIAndrew Kelley
note that "reuseaddr" does nothing for these
2025-10-29std.Io: implement dirOpenFileAndrew Kelley
2025-10-29std.Io: implement dirStatPathAndrew Kelley
2025-10-29std.Io: bring back Timestamp but also keep Clock.TimestampAndrew Kelley
this feels better
2025-10-29std: updating to std.Io interfaceAndrew Kelley
got the build runner compiling
2025-10-29std.zig.system: upgrade to std.Io.ReaderAndrew Kelley
2025-10-29WIP: hack away at std.Io return flightAndrew Kelley
2025-10-29WIP: hack at std.Io on a planeAndrew Kelley
2025-10-29std.Io.net: implement receiving connectionless messagesAndrew Kelley
2025-10-29std.Io: implement netSendAndrew Kelley
2025-10-29std.Io.net: make netSend support multiple messagesAndrew Kelley
this lowers to sendmmsg on linux, and means Io.Group is no longer needed, resulting in a more efficient implementation.
2025-10-29std.Io.net.HostName: finish implementing DNS lookupAndrew Kelley
2025-10-29std.Io.Threaded: implement Group.cancelAndrew Kelley
2025-10-29std.Io: implement Group APIAndrew Kelley
2025-10-29std.Io: rename asyncConcurrent to concurrentAndrew Kelley
2025-10-29Io.net: implement more networkingAndrew Kelley
the next task is now implementing Io.Group
2025-10-29std.Io.net: progress towards DNS resolutionAndrew Kelley
2025-10-29Io.net: use resolve for IPv6Andrew Kelley
/etc/resolv.conf might have IPv6 addresses with scope in it, so this is needed.
2025-10-29std.Io: rename ThreadPool to ThreadedAndrew Kelley
2025-10-29std.Io: extract Dir to separate fileAndrew Kelley
2025-10-29Io.net: partial implementation of dns lookupAndrew Kelley
2025-10-29std: start moving fs.File to IoAndrew Kelley
2025-10-29std.Io.net: partially implement HostName.lookupAndrew Kelley