Linus Groh
75df7e502c
std.c: Fix definition of stack_t on OpenBSD
...
The size field is not supposed to be signed.
See: https://man.openbsd.org/sigaltstack.2
2025-02-09 22:17:35 +01:00
Meghan Denny
933ba935c5
std.BoundedArray: popOrNull() -> pop() [v2] ( #22723 )
2025-02-09 11:46:15 +00:00
Jacob Young
4e4775d6bd
x86_64: implement conversions between scalar floats and ints
...
Closes #22797
2025-02-09 00:42:55 -08:00
Pat Tullmann
138d30bb47
wasi: fix wasm-wasi-musl constants
...
Zig's copy of the `SYMLINK_{NO,}FOLLOW` constants from wasi-musl was
wrong, as were the `IFIFO` and `IFSOCK` file type flags. Fix these up,
and add comments pointing to exactly where they come from (as the
wasi-musl source has lots of unused, different definitions of these
constants).
Add tests for the Zig convention that WASM preopen 3 is the current
working directory. This is true for WASM with or without libc.
Enable several fs and posix tests that are now passing (not necessarily
because of this change) on wasm targets.
Fixes #20890 .
2025-02-09 09:08:11 +01:00
Linus Groh
0af492a272
Merge pull request #22820 from linusg/uefi-tweaks
2025-02-09 08:03:54 +00:00
Andrew Kelley
604ed5281c
Merge pull request #22823 from ziglang/SmpAllocator-freelist-accounting
...
std.heap.SmpAllocator: back to simple free implementation
2025-02-08 21:27:22 -08:00
Don
b3a11018ae
Read System.keychain as well as SystemRootCertificates.keychain for MacOS CA Bundle
2025-02-09 04:16:56 +01:00
Linus Groh
0660f5b521
std.os.uefi: Drop 'Efi' prefix from type names
...
The UEFI spec only does this because C doesn't have namespaces, we don't
have that problem. Most type names were already omitting the prefix.
2025-02-09 02:30:32 +00:00
Linus Groh
0a7502e886
std.os.uefi: Adjust casing of remaining enum fields
...
Work towards #2101 .
2025-02-09 02:23:53 +00:00
Linus Groh
0874be1492
std.os.uefi: Adjust casing to match style guide in a few places
2025-02-09 02:23:02 +00:00
Andrew Kelley
42dbd35d3e
std.heap.SmpAllocator: back to simple free
...
In practice this is fine because eventually alloc wins the race and
grabs that massive freelist.
2025-02-08 16:46:56 -08:00
Andrew Kelley
b09e3efad4
std.heap.SmpAllocator: alternate freelist accounting
...
Freelist length accounting in alloc had a negative impact, especially
with the integer type bumped up to u16, so I changed the system to be
based on counting slabs rather than total allocations.
2025-02-08 16:20:51 -08:00
Andrew Kelley
bb5a4036e8
std.heap.SmpAllocator; fix freelist accounting
2025-02-08 15:07:03 -08:00
Linus Groh
88d42b6ae9
std.os.uefi: Add missing SystemTable revision constants
2025-02-08 21:02:17 +00:00
Linus Groh
43cc656ea6
std.Target: Bump UEFI max version to 2.11
...
This is the most recent version, released in December 2024.
https://uefi.org/specs/UEFI/2.11/
2025-02-08 21:02:17 +00:00
Andrew Kelley
ea1ce2df9b
Merge pull request #22808 from ziglang/fast-gpa
...
introduce std.heap.SmpAllocator
2025-02-08 04:54:38 -08:00
Tristan Ross
3fe981e1ad
std.os.uefi: fix allocators compiling
2025-02-08 12:33:36 +01:00
Andrew Kelley
8453fb09a2
build: bump max_rss of std lib tests to 5G
2025-02-07 23:35:31 -08:00
Jacob Young
ba5e64ff6b
x86_64: fix backend assertion failures
...
Fixes the backend portion of #22798
2025-02-07 23:30:35 -08:00
Alex Rønne Petersen
975cd9fc4f
musl: Align the stack pointer given to clone() on riscv.
2025-02-08 05:31:56 +01:00
Meghan Denny
a8af36ab10
std.ArrayHashMap: popOrNul() -> pop()
2025-02-07 17:52:19 -08:00
Meghan Denny
84d2c6dc72
std.MultiArrayList: popOrNull() -> pop()
2025-02-07 17:50:09 -08:00
Hugo Beauzée-Luyssen
a06a7108c8
generic glibc: guard memfd_create & mlock2 declarations
...
They were introduced in glibc 2.27
2025-02-08 01:02:28 +01:00
Andrew Kelley
bfabb703e3
don't try to test SmpAllocator in single threaded mode
2025-02-07 15:36:00 -08:00
Andrew Kelley
1754e014f5
std.heap.SmpAllocator: rotate on free sometimes
...
* slab length reduced to 64K
* track freelist length with u8s
* on free(), rotate if freelist length exceeds max_freelist_len
Prevents memory leakage in the scenario where one thread only allocates
and another thread only frees.
2025-02-07 14:41:49 -08:00
Andrew Kelley
a9d3005616
std.heap.SmpAllocator: fix detection of slab end
2025-02-07 14:41:49 -08:00
Andrew Kelley
3246150d45
std.heap.SmpAllocator: fix getCpuCount logic
...
it was always returning max_cpu_count
2025-02-07 14:41:49 -08:00
Andrew Kelley
88e2e60e88
std.heap.SmpAllocator: simplify by putting freelist node at start
2025-02-07 14:41:49 -08:00
Andrew Kelley
1ffae59fec
std.heap.SmpAllocator: fix using wrong size class indices
2025-02-07 14:41:49 -08:00
Andrew Kelley
839c453d88
std.heap.SmpAllocator: eliminate the global mutex
2025-02-07 14:41:49 -08:00
Andrew Kelley
60765a9ee2
std.heap.SmpAllocator: implement searching on alloc
...
rotate a couple times before resorting to mapping more memory.
2025-02-07 14:41:49 -08:00
Andrew Kelley
7360be19a4
compiler: use std.heap.smp_allocator
...
In main, now this allocator is chosen by default when compiling without
libc in ReleaseFast or ReleaseSmall, and not targeting WebAssembly.
2025-02-07 14:41:49 -08:00
Andrew Kelley
84bf7a6701
std.heap.SmpAllocator: 256K slab_len
...
and no need for special handling of wasi and windows since we don't ask
for anything more than page-aligned.
2025-02-07 12:20:12 -08:00
Andrew Kelley
3d7c5cf64a
std.heap: test smp_allocator
2025-02-07 12:20:12 -08:00
Andrew Kelley
51c4ffa410
add std.heap.SmpAllocator
...
An allocator intended to be used in -OReleaseFast mode when
multi-threading is enabled.
2025-02-07 12:20:12 -08:00
Andrew Kelley
6a6e72fff8
Merge pull request #20511 from archbirdplus
...
runtime page size detection
rework GeneralPurposeAllocator to reduce active mapping count
Allocator VTable API update
2025-02-07 06:21:51 -08:00
Alex Rønne Petersen
8ad0732954
Merge pull request #22771 from chouquette/chouquette/glibc_guard
...
glibc: guard more function declarations
2025-02-07 15:11:36 +01:00
Andrew Kelley
2d4954ad63
Merge pull request #22717 from jacobly0/x86_64-rewrite
...
x86_64: rewrite `@truncate`
2025-02-07 04:06:50 -08:00
Alex Rønne Petersen
42e48b83b1
Merge pull request #22787 from Rexicon226/add-hint
...
std.c: add `JIT` hint to macos `MAP`
2025-02-07 11:57:39 +01:00
Isaac Freund
87bbb49d5f
test: check @tagName() in callconv C function
...
This is a regression test for an x86_64 backend miscompilation when
using @tagName() in a callconv(.c) function with -fPIC.
2025-02-07 07:20:53 +01:00
Jacob Young
043e3b29ce
x86_64: fix calling convention typos
2025-02-07 07:20:53 +01:00
Kouosi Takayama
1ac97013db
fix: getEndPos return end position
2025-02-07 07:20:35 +01:00
Isaac Freund
b3c63e5de0
Dwarf: fix cross_section_relocs capacity
...
This ensure capacity call does not match the number of
appendAssumeCapacity() calls that follow it. Fix this.
This was discovered due to hitting the assertion failure in
appendAssumeCapacity() while building river.
I'm not sure how to isolate a minimal reproducer for a test.
2025-02-07 07:20:13 +01:00
Frank Plowman
bf7bc4ff01
langref/errorset: Replace subset description with union
...
The previous language using subsets was really just stating a couple
of the properties of the union of a group of sets, and with a minor
error at that.
2025-02-07 03:38:44 +01:00
Andrew Kelley
b8f5cfed45
std.heap.SbrkAllocator: fix typo
2025-02-06 14:50:55 -08:00
Andrew Kelley
e630b20c62
std.mem.Allocator.VTable: improve doc comment wording
2025-02-06 14:50:20 -08:00
Andrew Kelley
1bb8b4ad61
std.heap: fix wrong deprecation date
2025-02-06 14:47:22 -08:00
Andrew Kelley
ff8e759705
std.testing: don't ask wasm to stack trace
2025-02-06 14:46:16 -08:00
Andrew Kelley
d0e1a6a23d
std.heap.DebugAllocator: update unit tests for new impl
...
No longer need this windows-specific behavior.
2025-02-06 14:23:23 -08:00
Andrew Kelley
960190643a
std.heap.DebugAllocator: make page size configurable
2025-02-06 14:23:23 -08:00