| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2025-10-29 | std.Io.net.HostName: implement DNS reply parsing | Andrew Kelley | |
| 2025-10-29 | std.Io.Threaded.netReceive: recvmsg first, then poll | Andrew 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-29 | std.Io.net: implement receiving connectionless messages | Andrew Kelley | |
| 2025-10-29 | std: fix msghdr and cmsghdr when using musl libc | Andrew 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-29 | std.Io: implement netSend | Andrew Kelley | |
| 2025-10-29 | std.os.linux: remove unnecessary warnings from sendmmsg | Andrew 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-29 | std.os.linux: remove sendmmsg workaround | Andrew Kelley | |
| This "fix" is too opinionated to belong here. Better instead to document the pitfalls. | |||
| 2025-10-29 | std.Io.net: make netSend support multiple messages | Andrew Kelley | |
| this lowers to sendmmsg on linux, and means Io.Group is no longer needed, resulting in a more efficient implementation. | |||
| 2025-10-29 | std.Io.net.HostName: finish implementing DNS lookup | Andrew Kelley | |
| 2025-10-29 | std.Io.Threaded: implement Group.cancel | Andrew Kelley | |
| 2025-10-29 | std.Io: implement Group API | Andrew Kelley | |
| 2025-10-29 | std.Thread.ResetEvent: make it more reusable | Andrew Kelley | |
| 2025-10-29 | std.Io: rename asyncConcurrent to concurrent | Andrew Kelley | |
| 2025-10-29 | Io.net: implement more networking | Andrew Kelley | |
| the next task is now implementing Io.Group | |||
| 2025-10-29 | std.Io.net: progress towards DNS resolution | Andrew Kelley | |
| 2025-10-29 | std.net: fix parsing IPv6 addr "::" | Andrew Kelley | |
| 2025-10-29 | Io.net: finish implementing IPv6 parsing | Andrew Kelley | |
| 2025-10-29 | Io.net: use resolve for IPv6 | Andrew Kelley | |
| /etc/resolv.conf might have IPv6 addresses with scope in it, so this is needed. | |||
| 2025-10-29 | Io.net: rework IPv6 parsing and printing | Andrew 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-29 | std.Io: rename ThreadPool to Threaded | Andrew Kelley | |
| 2025-10-29 | std.Io: extract Dir to separate file | Andrew Kelley | |
| 2025-10-29 | Io.net: partial implementation of dns lookup | Andrew Kelley | |
| 2025-10-29 | Io.net: implement sortLookupResults | Andrew Kelley | |
| 2025-10-29 | std: start moving fs.File to Io | Andrew Kelley | |
| 2025-10-29 | std.Io.net: partially implement HostName.lookup | Andrew Kelley | |
| 2025-10-29 | add some networking | Andrew Kelley | |
| 2025-10-29 | add std.testing.io | Andrew Kelley | |
| 2025-10-29 | std.Io: delete asyncParallel | Andrew Kelley | |
| 2025-10-29 | std.Io: fix error handling and asyncParallel docs | Andrew Kelley | |
| 2025-10-29 | std.Io: add asyncConcurrent and asyncParallel | Andrew Kelley | |
| 2025-10-29 | std.Io.EventLoop: add aarch64 support | Andrew Kelley | |
| 2025-10-29 | std.Io.ThreadPool: fix asyncDetached | Andrew Kelley | |
| 2025-10-29 | std.Io: rename go to asyncDetached | Andrew 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-29 | revert std.Thread.Pool for now | Andrew Kelley | |
| and move the Io impl to a separate file | |||
| 2025-10-29 | update to sync with master | Andrew Kelley | |
| 2025-10-29 | Io: update for new linked list API | Andrew Kelley | |
| 2025-10-29 | std.Io: remove `@ptrCast` workarounds | Andrew Kelley | |
| thanks to d53cc5e5b2ac51793ea19a847d8cee409af1dee3 | |||
| 2025-10-29 | std.Io.EventLoop: implement select | Andrew Kelley | |
| 2025-10-29 | Io.EventLoop: select stub | Andrew Kelley | |
| 2025-10-29 | introduce Io.select and implement it in thread pool | Andrew Kelley | |
| 2025-10-29 | Io.Condition: implement full API | Jacob Young | |
| 2025-10-29 | EventLoop: implement detached fibers | Jacob Young | |
| 2025-10-29 | EventLoop: let the allocator do its job | Andrew Kelley | |
| to bucket and free fiber allocations | |||
| 2025-10-29 | EventLoop: fix `std.Io.Condition` implementation | Jacob 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-29 | EventLoop: revert incorrect optimization | Jacob Young | |
| 2025-10-29 | EventLoop: remove broken mechanism for making deinit block on detached | Andrew Kelley | |
| 2025-10-29 | std.Io.Condition: change primitive to support only one | Andrew Kelley | |
| and no timer | |||
| 2025-10-29 | EventLoop: take DetachedClosure into account when allocating | Andrew Kelley | |
| 2025-10-29 | EventLoop: implement detached async | Andrew Kelley | |
| data races on deinit tho | |||
| 2025-10-29 | Io: implement faster mutex | Jacob Young | |
