Commit Graph

36606 Commits

Author SHA1 Message Date
Jacob Young c13857e504 windows: type safety improvements and more ntdll functions 2025-12-12 01:58:21 -05:00
Alex Rønne Petersen 27e5047a88 musl: add nop after b to __dlsym in powerpc64 ldso code
https://www.openwall.com/lists/musl/2025/12/12/1
2025-12-12 02:10:41 +01:00
Alex Rønne Petersen 1add36403a musl: add nop after bl to start_c in powerpc64 crt code
https://www.openwall.com/lists/musl/2025/12/11/4
2025-12-12 00:52:07 +01:00
Alex Rønne Petersen c1daad3d68 aro: define _CALL_ELF to 2 for powerpc64(le) 2025-12-12 00:52:00 +01:00
Alex Rønne Petersen abc8ddcfa9 llvm: fix aliases not having linkage, visibility, etc set 2025-12-10 15:40:30 +01:00
Alex Rønne Petersen 2da956b84a build: bump compiler max_rss to 6_664_025_702 on x86_64-linux 2025-12-10 00:07:25 +01:00
Andrew Kelley 1608e31ca1 std: disable flaky tests
tracked by https://codeberg.org/ziglang/zig/issues/30141
2025-12-09 10:58:55 -08:00
jedisct1 d27c804d9f Merge pull request 'crypto.mlkem: return J(z||c) on implicit rejection' (#30155) from jedisct1/zig:mlkemrej into master
Reviewed-on: https://codeberg.org/ziglang/zig/pulls/30155
2025-12-09 16:28:14 +01:00
jedisct1 60a9a7e085 Merge pull request 'crypto: add missing sha2 arm early clobber' (#30152) from sinon/zig:arm-sha2-clobber into master
Reviewed-on: https://codeberg.org/ziglang/zig/pulls/30152
2025-12-09 10:44:55 +01:00
Frank Denis a0e9130b89 crypto.mlkem: return J(z||c) on implicit rejection
The ML-KEM decapsulation was returning z directly when implicit
rejection was triggered, but FIPS 203 specifies it should return
J(z || c) = SHAKE256(z || c).
2025-12-09 00:55:59 +01:00
David Rubin ae21089b97 crypto: add missing sha2 arm early clobber 2025-12-09 00:41:23 +04:00
Alex Rønne Petersen 7f36c4c7d3 Merge pull request 'add FreeBSD 15 libc support' (#30135) from alexrp/zig:freebsd-15 into master
Reviewed-on: https://codeberg.org/ziglang/zig/pulls/30135
2025-12-08 15:42:05 +01:00
pentuppup c2aeef04e5 sema: remove special case check in is_non_err 2025-12-08 14:59:55 +01:00
Alex Rønne Petersen 5d96a58f1d build: bump test-compiler-rt max_rss to 868_445_388 on x86_64-linux 2025-12-07 11:28:06 +01:00
Alex Rønne Petersen 81c52fd621 std.Target: bump max freebsd version to 15.0 2025-12-07 09:48:19 +01:00
Alex Rønne Petersen 5b8545e4d9 libc: update headers from freebsd 15 2025-12-07 09:32:28 +01:00
Alex Rønne Petersen c1862ce642 drop support for powerpc-freebsd-eabihf
FreeBSD 15 dropped this target. It also dropped x86-freebsd-none, but since that
target remains buildable and usable with the 32-bit compat layer, we keep it for
now.
2025-12-07 09:29:54 +01:00
Alex Rønne Petersen 51f62ea918 libc: update startup code from freebsd 15 2025-12-07 09:18:38 +01:00
Alex Rønne Petersen 2f20ee373b libc: deal with freebsd 15 changes (new libsys, libutil sover) 2025-12-07 09:18:35 +01:00
Alex Rønne Petersen 6906460d56 libc: add freebsd 15 abilists file 2025-12-07 09:18:19 +01:00
Pavel Verigo bf58a3bc08 stage2_wasm: revival, enabling tests 2025-12-07 07:21:15 +01:00
Pavel Verigo cc099afca5 sema: fix error_return_trace_index handling in zirCondBr 2025-12-07 07:20:59 +01:00
Alex Rønne Petersen a21d9408a3 build: bump test-zigc max_rss to 871_883_161 on x86_64-linux 2025-12-07 04:04:06 +01:00
Matthew Lugg b5ff96b4d2 std.heap: remove raw_c_allocator
After https://codeberg.org/ziglang/zig/pulls/30103, `raw_c_allocator` is
redundant. It existed to avoid overhead when you could assert that all
of your `Allocator` usage was going to be compatible with the C `malloc`
API, but the standard `c_allocator` is now able to avoid that overhead
*in the case* that your usage is compatible (and use the less efficient
path in the rare case where it's not), so there's no need for the raw
version anymore. Leaving it in `std.heap` at this point seems like it
would just be a footgun.
2025-12-06 22:08:40 +01:00
Matthew Lugg db15df5daa build_runner: don't dim the tree line of reused step
This was presumably unintentional, as the old behavior looked quite odd
when you noticed it. All of the line-drawing characters ought to be the
same color; only the step name/status is dimmed when a step is "reused"
(i.e. appears multiple times in the tree).
2025-12-06 14:22:47 +00:00
Matthew Lugg 65922a2d43 std: make stack unwinding faster on macOS
https://github.com/ziglang/zig/issues/26027#issuecomment-3571227050
tracked some bad performance in `DebugAllocator` on macOS down to a
function in dyld which `std.debug.SelfInfo` was calling into. It turns
out `dladdr`'s symbol lookup logic is horrendously slow (looking at its
source code, it appears to be doing a *linear scan* over all symbols in
the image?!). However, we don't actually need the symbol, so we want to
try and avoid this logic.

Luckily, dyld has more precise APIs for what we need! Unluckily, Apple,
in their infinite wisdom, decided they should be deprecated in favour of
`dladdr`, despite the latter being several times slower (and by "several
times", I have measured a 50x slowdown on repeated calls to `dladdr`
compared to the other API). But luckily again, the deprecated APIs are
still exposed.

So, after a careful analysis of the situation (reading dyld code and
cursing Apple engineers), I think it makes sense to just use these
deprecated APIs for now. If they ever go away, we can write our own
cache for this data to bypass Apple's awfully slow code, but I suspect
these functions will stick around for the foreseeable future.

Uh, and if `_dyld_get_image_header_containing_address` goes away,
there's also `dyld_image_header_containing_address`, which is a
seemingly identical function, exported by dyld just the same, but with a
separate (functionally identical) implementation, and not documented in
the public header file. Apple work in mysterious ways, I guess.
2025-12-06 10:41:42 +00:00
Alex Rønne Petersen 621e1d7b1e Compilation: fix appendFileSystemInput race between main thread and C object workers
Co-authored-by: Matthew Lugg <mlugg@mlugg.co.uk>
2025-12-06 09:54:43 +01:00
pentuppup 28c5cc390c detect comptime var references in asm input/output and improve errors 2025-12-06 09:42:51 +01:00
mlugg dbb4c8d151 Merge pull request 'Remove things deprecated during the 0.15 release cycle' (#30018) from linus/zig:remove-deprecated-stuff into master
Reviewed-on: https://codeberg.org/ziglang/zig/pulls/30018
2025-12-06 08:51:15 +01:00
Alex Rønne Petersen d41c16930d Merge pull request 'link: support --dependency-file linker option' (#30073) from alexrp/zig:elf-depfile into master
Reviewed-on: https://codeberg.org/ziglang/zig/pulls/30073
Reviewed-by: mlugg <mlugg@noreply.codeberg.org>
2025-12-06 08:32:25 +01:00
Alex Rønne Petersen 1e616096d4 build: bump test-zigc max_rss to 767_483_904 on x86_64-linux 2025-12-06 01:51:01 +01:00
Matthew Lugg 4ce7b57e86 std.heap: rework c_allocator
The main goal here was to avoid allocating padding and header space if
`malloc` already guarantees the alignment we need via `max_align_t`.
Previously, the compiler was using `std.heap.raw_c_allocator` as its GPA
in some cases depending on `std.c.max_align_t`, but that's pretty
fragile (it meant we had to encode our alignment requirements into
`src/main.zig`!). Perhaps more importantly, that solution is
unnecessarily restrictive: since Zig's `Allocator` API passes the
`Alignment` not only to `alloc`, but also to `free` etc, we are able to
use a different strategy depending on its value. So `c_allocator` can
simply compare the requested align to `Alignment.of(std.c.max_align_t)`,
and use a raw `malloc` call (no header needed!) if it will guarantee a
suitable alignment (which, in practice, will be true the vast majority
of the time).

So in short, this makes `std.heap.c_allocator` more memory efficient,
and probably removes any incentive to use `std.heap.raw_c_allocator`.

I also refactored the `c_allocator` implementation while doing this,
just to neaten things up a little.
2025-12-06 00:16:33 +01:00
Matthew Lugg ea94ac52c5 std.debug: skip manage resources correctly with cbe 2025-12-05 15:10:58 +01:00
Adrià Arrufat 02c5f05e2f std: replace usages of std.mem.indexOf with std.mem.find 2025-12-05 14:31:27 +01:00
Adrià Arrufat 1a420a8dca std.ascii: rename indexOf functions to find
This aligns with the recent changes in std.mem.find
2025-12-05 14:31:27 +01:00
Aidan Welch 032e3c9254 std.Io.Timestamp: when creating a Clock.Timestamp actually set .raw instead of the non-existant .nanoseconds 2025-12-05 14:14:01 +01:00
Luna Schwalbe adc5a39de2 Change github links to codeberg 2025-12-05 14:12:39 +01:00
Loris Cro 58e3c2cefd make Io.net.sendMany compile 2025-12-05 11:50:04 +01:00
Alex Rønne Petersen d22231c039 Compilation: track indirect file system inputs from clang's depfile
Co-authored-by: Matthew Lugg <mlugg@mlugg.co.uk>
2025-12-05 11:22:10 +01:00
Alex Rønne Petersen 38415911c1 compiler: handle -Xlinker args similarly to -Wl args 2025-12-05 11:04:51 +01:00
Alex Rønne Petersen 34f88722cd compiler: support --dependency-file linker option
closes https://github.com/ziglang/zig/issues/22213
2025-12-05 11:04:48 +01:00
Alex Rønne Petersen 4724774433 ci: apply workaround for #22213 to x86_64-linux scripts
This should be reverted on the next CI tarballs update.
2025-12-05 07:32:43 +01:00
Alex Rønne Petersen c166bb36f6 ci: reduce x86_64-linux timeouts
These excessive timeouts should no longer be necessary with the recent tuning of
job capacity and maxrss on these machines.
2025-12-04 20:52:34 +01:00
Alex Rønne Petersen 78cba86928 ci: set maxrss from $ZSF_MAX_RSS if provided by the runner
All of our runners now define this. When running a CI script locally, this will
not be set, so we default to 0, aka "all available system memory".
2025-12-04 20:06:48 +01:00
Alex Rønne Petersen 2728eb5d5e build: adjust max_rss on a per-CI-host basis
This avoids pessimizing concurrency on all machines due to e.g. the macOS
machine having high memory usage across the board due to 16K page size.

This also adds max_rss to test-unit and test-c-abi since those tend to eat a
decent chunk of memory too.
2025-12-04 20:06:12 +01:00
unplanned 688af04725 math.big: stronger asserts to reduce risks of aliasing 2025-12-04 10:28:42 +01:00
unplanned 73e82332d0 big.Mutable.setString optimization and simplification 2025-12-04 10:28:31 +01:00
Alex Rønne Petersen 44543800a5 std.process.Child: enable rusage collection for dragonfly, netbsd, openbsd 2025-12-04 03:46:36 +01:00
Alex Rønne Petersen 2659fadb95 std.c: add rusage for dragonfly, netbsd, openbsd 2025-12-04 03:46:36 +01:00
Alex Rønne Petersen 9eed87f93e std.process.Child: enable rusage collection for freebsd, illumos, serenity 2025-12-04 03:46:36 +01:00