aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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
2025-10-29std.Io: add detached asyncAndrew Kelley
2025-10-29implement Mutex, Condition, and QueueAndrew Kelley
2025-10-29Io: implement sleep and fix cancel bugsJacob Young
2025-10-29EventLoop: implement thread-local queues and cancellationJacob Young
2025-10-29std.Io: introduce cancellationAndrew Kelley
2025-10-29better API for Io.asyncAndrew Kelley
2025-10-29EventLoop: fix futex usageJacob Young
How silly of me to forget that the kernel doesn't implement its own API. The scheduling is not great, but at least doesn't deadlock or hammer.
2025-10-29EventLoop: get file operations workingJacob Young
Something is horribly wrong with scheduling, as can be seen in the debug output, but at least it somehow manages to exit cleanly...
2025-10-29WIPAndrew Kelley
2025-10-29start adding fs functions to std.IoAndrew Kelley
2025-10-29free freeing wrong amount in thread pool implAndrew Kelley
2025-10-29EventLoop: move context after the async closureJacob Young
This avoids needing to store more sizes and alignments. Only the result alignment needs to be stored, because `Fiber` is at a fixed zero offset.
2025-10-29EventLoop: fix incorrect alignment panicJacob Young
When the previous fiber did not request to be registered as an awaiter, it may not have actually been a full blown `Fiber`, so only create the `Fiber` pointer when needed.
2025-10-29update threaded fibers impl to actually storing argsAndrew Kelley
sorry, something still not working correctly
2025-10-29fix context passing in threaded Io implAndrew Kelley
2025-10-29EventLoop: implement main idle fiberJacob Young
2025-10-29EventLoop: add threadsJacob Young
2025-10-29EventLoop: rewrite context switchingJacob Young
2025-10-29EventLoop: prepare for threadingJacob Young
2025-10-29demo: single-threaded green threads implementationAndrew Kelley
2025-10-29make thread pool satisfy async/await interfaceAndrew Kelley
2025-10-29introduce std.Io interfaceAndrew Kelley
which is planned to have all I/O operations in the interface, but for now has only async and await.
2025-10-29Merge pull request #25705 from squeek502/linked-list-remove-docsRyan Liptak
Document that `remove` of Singly/DoublyLinkedList relies on the node being in the list
2025-10-29Elf2: set ELFOSABI_OPENBSD for openbsdAlex Rønne Petersen
2025-10-29Elf2: set ELFOSABI_FREEBSD for ps4Alex Rønne Petersen
2025-10-29std.Target.aarch64: updates for LLVM 21.1.5Alex Rønne Petersen
2025-10-29Zcu: use shortest reference traceMatthew Lugg
The logic for computing reference traces was unintentionally finding the *longest* possible trace (approximately). I think I already tried to fix this before, but misunderstood how my own code works. Here, we fix it properly: by slightly reworking the logic to use one ArrayHashMap for both the result and the traversal queue, we trivially get a proper breadth-first traversal so that we can find the shortest possible reference trace for every referenced unit.
2025-10-28std.heap.debug_allocator outdated doc (#25634)Adrian
Fixed a relatively small outdated doc string, referring to the bucket linked list.
2025-10-28spirv: fix airWorkGroupSize to use workgroup_size builtinCooksey99
2025-10-28Merge pull request #25691 from GasInfinity-Forks/x86_16-gccAlex Rønne Petersen
feat: init x86_16 arch via CBE
2025-10-28Fix stale reference bug in `std.zig.system.resolveTargetQuery` (#25713)Sean
Co-authored-by: Alex Rønne Petersen <alex@alexrp.com>
2025-10-27remove all Oracle Solaris supportAlex Rønne Petersen
There is no straightforward way for the Zig team to access the Solaris system headers; to do this, one has to create an Oracle account, accept their EULA to download the installer ISO, and finally install it on a machine or VM. We do not have to jump through hoops like this for any other OS that we support, and no one on the team has expressed willingness to do it. As a result, we cannot audit any Solaris contributions to std.c or other similarly sensitive parts of the standard library. The best we would be able to do is assume that Solaris and illumos are 100% compatible with no way to verify that assumption. But at that point, the solaris and illumos OS tags would be functionally identical anyway. For Solaris especially, any contributions that involve APIs introduced after the OS was made closed-source would also be inherently more risky than equivalent contributions for other proprietary OSs due to the case of Google LLC v. Oracle America, Inc., wherein Oracle clearly demonstrated its willingness to pursue legal action against entities that merely copy API declarations. Finally, Oracle laid off most of the Solaris team in 2017; the OS has been in maintenance mode since, presumably to be retired completely sometime in the 2030s. For these reasons, this commit removes all Oracle Solaris support. Anyone who still wishes to use Zig on Solaris can try their luck by simply using illumos instead of solaris in target triples - chances are it'll work. But there will be no effort from the Zig team to support this use case; we recommend that people move to illumos instead.
2025-10-27feat: init x86_16 arch via CBEGasInfinity
2025-10-27feat: init 16-bit x86 support in `zig.h`GasInfinity
2025-10-27fix: make `compiler_rt` and `std.Io.Writer` compile on 16-bit platforms.GasInfinity
2025-10-27chore: make `std.zig.target.intByteSize` return an `u16`GasInfinity
2025-10-27Revert "std.Target: xtensa defaults to windowed ABI"Alex Rønne Petersen
This reverts commit c55e83eab1369373fe6db5072802c2fc1c4d7ebc. This was a misreading of XtensaFeatures.td on my part.
2025-10-26test: enable tsan standalone test for x86_64-freebsd and aarch64-freebsdAlex Rønne Petersen