aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-10-29std.Io.net.HostName: implement DNS reply parsingAndrew Kelley
2025-10-29std.Io.Threaded.netReceive: recvmsg first, then pollAndrew Kelley
Calling recvmsg first means no poll syscall needed when messages are already in the operating system queue. Empirically, this happens when repeating a DNS query that has been already been made recently. In such case, poll() is never called!
2025-10-29std.Io.net: implement receiving connectionless messagesAndrew Kelley
2025-10-29std: fix msghdr and cmsghdr when using musl libcAndrew Kelley
glibc and linux kernel use size_t for some field lengths while POSIX and musl use int. This bug would have caused breakage the first time someone tried to call sendmsg on a 64-bit big endian system when linking musl libc. my opinion: * msghdr.iovlen: kernel and glibc have it right. This field should definitely be size_t. With int, the padding bytes are wasted for no reason. * msghdr.controllen: POSIX and musl have it right. 4 bytes is plenty for the length, and it saves 4 bytes next to flags. * cmsghdr.len: POSIX and musl have it right. 4 bytes is plenty for the length, and it saves 4 bytes since the other fields are also 32-bits each.
2025-10-29std.Io: implement netSendAndrew Kelley
2025-10-29std.os.linux: remove unnecessary warnings from sendmmsgAndrew Kelley
The one about INT_MAX is self-evident from the type system. The one about kernel having bad types doesn't seem accurate as I checked the source code and it uses size_t for all the appropriate types, matching the libc struct definition for msghdr and msghdr_const.
2025-10-29std.os.linux: remove sendmmsg workaroundAndrew Kelley
This "fix" is too opinionated to belong here. Better instead to document the pitfalls.
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.Thread.ResetEvent: make it more reusableAndrew 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-29std.net: fix parsing IPv6 addr "::"Andrew Kelley
2025-10-29Io.net: finish implementing IPv6 parsingAndrew 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-29Io.net: rework IPv6 parsing and printingAndrew Kelley
extract pure functional logic into pure functions and then layer the scope crap on top properly the formatting code incorrectly didn't do the reverse operation (if_indextoname). fix that with some TODO panics
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-29Io.net: implement sortLookupResultsAndrew Kelley
2025-10-29std: start moving fs.File to IoAndrew Kelley
2025-10-29std.Io.net: partially implement HostName.lookupAndrew Kelley
2025-10-29add some networkingAndrew Kelley
2025-10-29add std.testing.ioAndrew Kelley
2025-10-29std.Io: delete asyncParallelAndrew Kelley
2025-10-29std.Io: fix error handling and asyncParallel docsAndrew Kelley
2025-10-29std.Io: add asyncConcurrent and asyncParallelAndrew Kelley
2025-10-29std.Io.EventLoop: add aarch64 supportAndrew Kelley
2025-10-29std.Io.ThreadPool: fix asyncDetachedAndrew Kelley
2025-10-29std.Io: rename go to asyncDetachedAndrew Kelley
it's a better name because it's more descriptive, not a reference, and hints that it is less common than async
2025-10-29revert std.Thread.Pool for nowAndrew Kelley
and move the Io impl to a separate file
2025-10-29update to sync with masterAndrew Kelley
2025-10-29Io: update for new linked list APIAndrew Kelley
2025-10-29std.Io: remove `@ptrCast` workaroundsAndrew Kelley
thanks to d53cc5e5b2ac51793ea19a847d8cee409af1dee3
2025-10-29std.Io.EventLoop: implement selectAndrew Kelley
2025-10-29Io.EventLoop: select stubAndrew Kelley
2025-10-29introduce Io.select and implement it in thread poolAndrew Kelley
2025-10-29Io.Condition: implement full APIJacob Young
2025-10-29EventLoop: implement detached fibersJacob Young
2025-10-29EventLoop: let the allocator do its jobAndrew Kelley
to bucket and free fiber allocations
2025-10-29EventLoop: fix `std.Io.Condition` implementationJacob Young
1. a fiber can't put itself on a queue that allows it to be rescheduled 2. allow the idle fiber to unlock a mutex held by another fiber by ignoring reschedule requests originating from the idle fiber
2025-10-29EventLoop: revert incorrect optimizationJacob Young
2025-10-29EventLoop: remove broken mechanism for making deinit block on detachedAndrew Kelley
2025-10-29std.Io.Condition: change primitive to support only oneAndrew Kelley
and no timer
2025-10-29EventLoop: take DetachedClosure into account when allocatingAndrew Kelley
2025-10-29EventLoop: implement detached asyncAndrew Kelley
data races on deinit tho
2025-10-29Io: implement faster mutexJacob Young