Commit Graph
32709 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
Andrew Kelley e5174c7441 Merge pull request #22876 from jacobly0/x86_64-rewrite
x86_64: implement error set and enum safety
2025-02-15 12:33:09 -08:00
Jacob Young dcc9fe322e x86_64: rewrite unsafe scalar int multiplication 2025-02-15 04:13:21 -05:00
Jacob Young 5db585fcde x86_64: reuse integer @divTrunc for @divExact 2025-02-15 03:45:21 -05:00
Jacob Young f98f5a5f74 main: increase thread stack size for non-x86_64 backends
I observed a stack overflow during x86_64 CodeGen in a debug compiler
compiled by the llvm backend.  This happens while compiling
`main.buildOutputType` due to the Air being nested almost 500 levels.
2025-02-15 03:45:21 -05:00
Jacob Young 4ea18c22f9 x86_64: rewrite array access 2025-02-15 03:45:21 -05:00
Jacob Young 9f87aacaaf test: fix windows CI 2025-02-15 03:45:21 -05:00
Jacob Young f6bcc9dbcb x86_64: rewrite scalar and vector int @rem 2025-02-15 03:45:21 -05:00
Jacob Young 8c48376d64 x86_64: rewrite scalar and vector int @divTrunc 2025-02-15 03:45:21 -05:00
Jacob Young 9f121ec8fb x86_64: implement unsafe scalar and vector integer add/sub 2025-02-15 03:45:21 -05:00
Jacob Young 8159ff8b81 x86_64: implement error set and enum safety
This is all of the expected 0.14.0 progress on #21530, which can now be
postponed once this commit is merged.

This required rewriting the (un)wrap operations since the original
implementations were extremely buggy.

Also adds an easy way to retrigger Sema OPV bugs so that I don't have to
keep updating #22419 all the time.
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
Michael Lynch cb5547e3de Expand zig fetch usage help doc to explain URL (#22850)
The current zig fetch help docs tell the user to specify a package's URL, but it's unclear what the URL should be.

This change expands the help output to explain what URLs the zig fetch command can handle and provides examples of valid URLs.

Related: #20096

A git bundle file seems to be the more accurate term, as it's what git uses in its documentation: https://git-scm.com/docs/git-bundle
2025-02-13 13:06:10 -08: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
Andrew Kelley de8741271f Merge pull request #22873 from jacobly0/x86_64-rewrite
x86_64: implement conversions between float and int vectors
2025-02-12 13:54:03 -08:00
Jacob Young 13ca87e204 x86_64: implement conversions between float and int vectors 2025-02-12 10:11:54 -05: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
Andrew Kelley 5c39ccddda Compilation: disable error return tracing in rt libs 2025-02-11 12:42:17 -08:00
David Rubin 914f822025 link.Elf: implement non-alloc {SET,SUB}_ULEB128 2025-02-11 20:41:52 +01:00
Andrew Kelley 31c1320818 ZigLLVMTargetMachineEmitToFile: schedule sancov pass depending on mode
In debug mode, schedule it early. In release modes, schedule it late.
2025-02-11 11:13:41 -08: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
Jacob Young 8d078f1ba2 cbe: fix incomplete array element types
Can't imagine this working, but might as well try until I remember why.

Closes #21439
2025-02-10 17:21:32 -08:00
Jacob Young 74fbcd22e6 cbe: fix crash rendering argument names in lazy functions
Closes #19905
2025-02-10 17:20:52 -08:00
Jacob Young eb7963e4c7 cbe: emit linksection for @export
Closes #21490
2025-02-10 17:20:09 -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
Andrew Kelley c0448a6c7c CI: remove aarch64-windows checks for now
The devkit is a pain in the ass to keep online, I'll add this back
later.
2025-02-09 20:21:42 -08: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