zig/lib
Justus Klausecker 2fa2300ba4 std.heap.ArenaAllocator: Get rid of cmpxchg loop in hot path
This is achieved by bumping `end_index` by a large enough amount so that
a suitably aligned region of memory can always be provided. The potential
wasted space this creates is then recovered by a single cmpxchg. This is
always successful for single-threaded arenas which means that this version
still behaves exactly the same as the old single-threaded implementation
when only being accessed by one thread at a time. It can however fail when
another thread bumps `end_index` in the meantime. The observerd failure
rates under extreme load are:

2 Threads: 4-5%
3 Threads: 13-15%
4 Threads: 15-17%
5 Threads: 17-18%
6 Threads: 19-20%
7 Threads: 18-21%

This version offers ~25% faster performance under extreme load from 7 threads,
with diminishing speedups for less threads. The performance for 1 and 2
threads is nearly identical.
2026-02-26 15:30:55 +01:00
..
build-web fix fuzzing speed with prior runs 2026-02-13 17:58:09 -05:00
c libc malloc: introduce a canary 2026-02-14 09:25:41 +01:00
compiler Merge pull request 'rework fuzz testing to be smith based' (#31205) from gooncreeper/zig:integrated-smith into master 2026-02-25 20:23:36 +01:00
compiler_rt compiler_rt: Implemented missing handling of denormal numbers when dividing f128 (#30198) 2026-02-13 20:49:14 +01:00
docs ArrayList.writer() removed in 57dbc9e74a 2026-02-08 21:24:22 -08:00
include remove all IBM AIX and z/OS support 2025-10-29 14:25:51 +01:00
init rework fuzz testing to be smith based 2026-02-13 22:12:19 -05:00
libc zig libc: acosf 2026-02-13 11:30:14 -08:00
libcxx libcxx: use compiler's _LIBCPP_HAS_LIBRARY_ALIGNED_ALLOCATION when set 2025-11-14 02:02:59 +01:00
libcxxabi remove all IBM AIX and z/OS support 2025-10-29 14:25:51 +01:00
libtsan remove all IBM AIX and z/OS support 2025-10-29 14:25:51 +01:00
libunwind remove all IBM AIX and z/OS support 2025-10-29 14:25:51 +01:00
std std.heap.ArenaAllocator: Get rid of cmpxchg loop in hot path 2026-02-26 15:30:55 +01:00
c.zig libc: implement insque and remque in Zig 2026-02-12 21:35:36 -08:00
compiler_rt.zig compiler_rt: common -> compiler_rt 2026-02-09 20:03:15 -08:00
fuzzer.zig rework fuzz testing to be smith based 2026-02-13 22:12:19 -05:00
ubsan_rt.zig Coff: implement threadlocal variables 2025-10-10 22:47:47 -07:00
zig.h std.Threaded: replace more kernel32 functions with ntdll 2026-02-07 00:02:50 -05:00