Commit Graph
11601 Commits
Author SHA1 Message Date
Ian Johnson 293603f040 Autodoc: report syntax errors to user
Additionally, this commit streamlines the way unparseable files are handled, by giving them the AST of an empty file. This avoids bugs in the rest of the Autodoc logic trying to work with invalid ASTs.
2025-02-15 17:29:31 -05:00
Jacob Young 8c48376d64 x86_64: rewrite scalar and vector int @divTrunc 2025-02-15 03:45:21 -05:00
Benjamin Thompson 5ab5113077 added expectEqualDeep test coverage for issue 16625 (#22781) 2025-02-15 03:41:58 +01:00
LmanTW 13ad984b1f std: add containsAtLeastScalar to mem (#22826) 2025-02-15 03:40:55 +01:00
Alex Rønne Petersen 8a3aebaee0 musl: Apply Rich Felker's CVE-2025-26519 mitigation patches.
https://www.openwall.com/lists/oss-security/2025/02/13/2

Closes #22883.
2025-02-14 06:42:57 +01:00
Hugo Beauzée-Luyssen 462d26171b glibc: don't redirect fts to fts64 before glibc 2.23 2025-02-14 02:11:26 +01:00
Ali Cheraghi bffbc918ee std.time: more precise nanoTimestamp in windows 2025-02-13 16:55:58 +01:00
Andrew Kelley d12123a88c std.ArrayList: initial capacity based on cache line size
also std.MultiArrayList
2025-02-13 00:19:03 -08:00
wooster0 5b9b5e45cb std.fmt.digits2: optimize for ReleaseSmall
Difference:
```
$ cat x.zig
const std = @import("std");

pub const std_options = std.Options{ .keep_sigpipe = true };

pub fn main() void {
    std.io.getStdOut().writer().print("{d}\n", .{@intFromPtr(std.os.argv.ptr)}) catch {};
}
$ zig build-exe x.zig -OReleaseSmall -fsingle-threaded -fno-unwind-tables && wc -c x
2576 x
$ zig build-exe x.zig -OReleaseSmall -fsingle-threaded -fno-unwind-tables --zig-lib-dir ../zig/lib && wc -c x
2424 x
```
2025-02-12 14:45:38 -08:00
Jacob Young 348d1773ba std: remove special cases for stage2_x86_64 that are no longer needed 2025-02-12 09:48:17 -05:00
Andrew Kelley 53216d2f22 std.ArrayHashMap: base linear_scan_max on cache line size 2025-02-12 01:55:26 -08:00
Andrew Kelley 58f928814d Merge pull request #22862 from ziglang/fuzz
fuzzer: write inputs to shared memory before running
2025-02-11 23:36:53 -08:00
Alex Rønne Petersen db0d9c2126 Merge pull request #22857 from nikneym/master
linux(io_uring): port new functions from liburing
2025-02-12 07:57:10 +01:00
dweiller 6dc1a4db7f compiler-rt: fix memcpy generating recursive calls
When using the LLVM backend, array copies were lowered as calls to
`llvm.memcpy.*` builtin which could cause recursive calls to memcpy to
be generated (observed with `-target x86_64-linux -mcpu x86_64+avx512vl
--debug-rt`).

By instead performing these small fixed-size copies with integers or
vectors the LLVM backend does not generate calls to the `llvm.memcpy`
builtin, and so (with `-fno-builtin`) recursive calls to memcpy will
not be generated by LLVM.

The assertions and (test build) runtime safety have been removed as they
may cause (mutually) recursive calls to memcpy in debug builds since the
panic handler generates calls to llvm.memcpy.
2025-02-11 17:40:20 -08:00
Andrew Kelley c2a3d8cbb9 std.ArrayHashMap: introduce setKey
Only available in the "unmanaged" variant since the other one is
deprecated.
2025-02-11 17:24:59 -08:00
Meghan Denny b2b830e0e9 std.c: was missing calloc 2025-02-11 17:21:07 -08:00
Andrew Kelley d789f1e5cf fuzzer: write inputs to shared memory before running
breaking change to the fuzz testing API; it now passes a type-safe
context parameter to the fuzz function.

libfuzzer is reworked to select inputs from the entire corpus.

I tested that it's roughly as good as it was before in that it can find
the panics in the simple examples, as well as achieve decent coverage on
the tokenizer fuzz test.

however I think the next step here will be figuring out why so many
points of interest are missing from the tokenizer in both Debug and
ReleaseSafe modes.

does not quite close #20803 yet since there are some more important
things to be done, such as opening the previous corpus, continuing
fuzzing after finding bugs, storing the length of the inputs, etc.
2025-02-11 13:39:20 -08:00
Rafael Batiati 33f0d458cf std.elf: fix panic while parsing header
When parsing an invalid (e.g., corrupted) ELF header, `@enumFromInt` can panic casting the exhaustive enum `ET`.
2025-02-11 21:12:44 +00:00
saurabh 4162f401cb std.fmt: Add unit tests for all methods in the Parser struct 2025-02-11 13:34:56 +02:00
nikneym 408c817e1e linux/IoUring: add register_files_sparse 2025-02-11 13:19:05 +03:00
nikneym 6f6b85e298 linux/io_uring_sqe: add prep_files_update 2025-02-11 13:18:27 +03:00
nikneym ecfd9cef7d linux/io_uring_sqe: add prep_cancel_fd 2025-02-11 13:17:54 +03:00
Andrew Kelley 8d914ea734 compiler_rt memcpy: avoid infinite recursion
when compiled in debug mode (--debug-rt)
2025-02-10 22:58:49 -08:00
Andrew Kelley 1d8857bbe3 Merge pull request #22695 from alexrp/glibc-2-41
glibc 2.41
2025-02-10 17:32:55 -08:00
Jacob Young 5433e0438c cbe: fix ub triggered by mulw overflowing the promoted type
Closes #21914
2025-02-10 17:22:16 -08:00
rpkak 34644511bb std.fmt: remove placeholders from binary 2025-02-10 22:52:17 +01:00
Alex Rønne Petersen d4c85079c5 Merge pull request #22834 from krkk/hi-this-is-my-first-PR-and-heres-my-breaking-change-haha
std.c: Improve the description of getnameinfo() arguments: optional pointers and specialized `flags` type
2025-02-10 10:44:21 +01:00
Ryan Liptak 00316bfbf0 resinator: Fix some error message integration
Fixup for some of the changes in https://github.com/ziglang/zig/pull/22522
2025-02-10 01:37:04 -08:00
andrewkraevskii 6fa7d5d4ad std.mem: add missing check to lastIndexOfLinear 2025-02-10 09:27:26 +01:00
Meghan Denny 9142482372 std.ArrayList: popOrNull() -> pop() [v2] (#22720) 2025-02-10 04:21:31 +00:00
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
Karol Kosek 2ccfb1dafd std.c: Use std.c.NI as the flags type in getnameinfo
std.c.NI was never used in the source, so let's finally use it and make
the function more clear!

This is a breaking change, although a minor one: If you previously passed 0 here
(meaning no flags), then now you have to pass an empty struct (.{}) instead.
Otherwise, you probably used @bitCast() shenanigans here (like
@bitCast(c.NI { .NUMERICHOST = true }) and that will still work, but you can
also get rid of the @bitCast() now!
2025-02-09 16:40:21 +01:00
Karol Kosek 18ffd48b60 std.c: Support optional addr and host arguments in getnameinfo
The POSIX spec allows passing null here
https://pubs.opengroup.org/onlinepubs/9799919799/functions/getnameinfo.html
2025-02-09 16:06:38 +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
Alex Rønne Petersen 975cd9fc4f musl: Align the stack pointer given to clone() on riscv. 2025-02-08 05:31:56 +01:00