34608 Commits

Author SHA1 Message Date
Ryan Liptak
72017d4bd5
mem.replace: Document that input/output cannot overlap 2025-09-18 12:47:18 +02:00
Andrew Kelley
35de86906d
Merge pull request #25201 from jacobly0/x86_64-addsat
x86_64: fix strictness edge cases in `+|`
2025-09-18 12:47:18 +02:00
Jacob Young
b8bf2780a0
Elf: implement linksection
Closes #24330
2025-09-18 12:47:18 +02:00
Silver
e14540399c
fix handling of comptime-only union fields in Type.getUnionLayout (#25182)
Fixes #25180
2025-09-18 12:47:17 +02:00
mlugg
87ca304a02
llvm: fix tagged union payload size in debug info
Resolves: #24415
2025-09-18 00:01:28 +01:00
mlugg
83a3365bfd
std.math.big.int: normalize zero result for small multiplications
Resolves: #25221
2025-09-16 13:50:33 +02:00
George Huebner
05b7ca6356
bpf: use bitCast instead of intCast in ld_imm_impl
Any 32 bit immediate is allowed in a BPF instruction, including those
greater than the largest positive i32 value.
2025-09-16 13:50:08 +02:00
mlugg
4cfb58342a
frontend: fix reference tracking through coerced function bodies
This bug was manifesting for user as a nasty link error because they
were calling their application's main entry point as a coerced function,
which essentially broke reference tracking for the entire ZCU, causing
exported symbols to silently not get exported.

I've been a little unsure about how coerced functions should interact
with the unit graph before, but the solution is actually really obvious
now: they shouldn't! `Sema` is now responsible for unwrapping
possibly-coerced functions *before* queuing analysis or marking unit
references. This makes the reference graph optimal (there are no
redundant edges representing coerced versions of the same function) and
simplifies logic elsewhere at the expense of just a few lines in Sema.
2025-09-15 11:29:54 +01:00
Alex Rønne Petersen
965b2ab6c3
compiler-rt: export __aeabi_read_tp for arm-freebsd
FreeBSD normally provides this symbol in libc, but it's in the
FBSDprivate_1.0 namespace, so it doesn't get included in our abilists file.
Fortunately, the implementation is identical for Linux and FreeBSD, so we can
just provide it in compiler-rt.

It's interesting to note that the same is not true for NetBSD where the
implementation is more complex to support older Arm versions. But we do include
the symbol in our abilists file for NetBSD libc, so that's fine.

closes #25215
2025-09-12 02:35:41 +02:00
LukaTD
38185ee10f
langref: added missing newlines to destructuring tuples example
langref: added missing newlines to destructuring tuples example
2025-09-12 02:35:22 +02:00
Andrew Kelley
f06c3d8be7
std.debug.assertAligned: support const pointers 2025-09-12 02:33:35 +02:00
kcbanner
cbe1b4571b
webui: fixup build errors in fuzz / time_report 2025-09-12 02:32:06 +02:00
Andrew Kelley
52eb9e84fb
langref: update "Choosing an Allocator" section
and delete "Implementing an Allocator" section because it is out of
scope.
2025-09-12 02:30:20 +02:00
Luna Schwalbe
30ec163d14
BitcodeReader: parse blockinfo inside block
Call start/endBlock before/after `parseBlockInfoBlock` in order to not
use the current block context, which is wrong and leads to e.g. incorrect
abbrevlen being used.
2025-09-07 00:34:14 +02:00
Ryan Liptak
76e2764eb1
Fix -M and --dep splitting on every = instead of just the first
Before this commit, -Mfoo=bar=baz would be incorrectly split into mod_name: `foo` and root_src_orig: `bar`
After this commit, -Mfoo=bar=baz will be correctly split into mod_name: `foo` and root_src_orig: `bar=baz`

Closes #25059
2025-09-02 22:35:01 +02:00
Tadej Gašparovič
dcddbcaa60
Fix regression: std.http.Client basic authorization sending user:user instead of user:password when passed in URI 2025-09-02 22:34:51 +02:00
Brandon Mercer
b72a02c592
Populate MSG struct for OpenBSD (#25076)
* update the MSG struct with the correct values for openbsd

* add comment with link to sys/sys/socket.h

---------

Co-authored-by: Brandon Mercer <bmercer@eutonian.com>
2025-09-02 22:34:35 +02:00
Alex Rønne Petersen
d8d497ffe4
std.Thread: make unreachable errors in sleep() clearer 2025-09-02 22:33:35 +02:00
Alex Rønne Petersen
00fb5e34df
std.Target: fix alignment for int/long types on m68k 2025-09-02 22:32:17 +02:00
Andrew Kelley
61f4475233
LLVM backend:fix align 1 sret parameter load returned
closes #25067
2025-09-02 22:30:48 +02:00
Ryan Liptak
cbc3c0dc59
process.totalSystemMemory: Avoid overflow on Linux when totalram is a 32-bit usize
Fixes #25038
2025-08-29 00:13:01 +02:00
tokyo4j
cb9821a827
std.os.uefi: fix type error at MemoryType.format() 2025-08-29 00:12:44 +02:00
Alex Rønne Petersen
1231c8fbbd
std.os.linux: powerpc syscalls clobber ctr and xer
https://git.musl-libc.org/cgit/musl/commit/?id=f6944eb3c4ce1c97dc39dc36d32390dc9f70b67b
2025-08-29 00:12:39 +02:00
Jacob Young
49f0122e41
x86_64: fix multiplication overflow detection with adx
Closes #24965
2025-08-28 05:30:04 +02:00
Brandon Black
9dc3fce4c4
std.c: add correct SOMAXCONN for BSDs
Note the previous "28" here for openbsd was some kind of copy
error long ago.  That's the value of KERN.SOMAXCONN, which is an
entirely different thing.
2025-08-27 20:53:49 +02:00
Frank Denis
9c3e09cbee
Fix TLS 1.2 client key exchange to use negotiated named group (#25007)
The TLS 1.2 implementation was incorrectly hardcoded to always send the
secp256r1 public key in the client key exchange message, regardless of
which elliptic curve the server actually negotiated.

This caused TLS handshake failures with servers that preferred other curves
like X25519.

This fix:

- Tracks the negotiated named group from the server key exchange message
- Dynamically selects the correct public key (X25519, secp256r1, or
  secp384r1) based on what the server negotiated
- Properly constructs the client key exchange message with the
  appropriate key size for each curve type

Fixes TLS 1.2 connections to servers like ziglang.freetls.fastly.net
that prefer X25519 over secp256r1.
2025-08-27 20:53:42 +02:00
mlugg
a4cb636658
std.Build.WebServer: fix race
Just a typo: I wasn't actually using the duped message, so the message I
sent could be freed in this interval.
2025-08-26 21:17:38 +02:00
AdamGoertz
e323dbfd15
std.Build.Step.TranslateC: forward --cache-dir and --global-cache-dir flags 2025-08-26 17:56:23 +02:00
Ian Johnson
628357eeb6
std.Build.Step.Compile: fix race condition in args file creation
Fixes #23993

Previously, if multiple build processes tried to create the same args file, there was a race condition with the use of the non-atomic `writeFile` function which could cause a spawned compiler to read an empty or incomplete args file. This commit avoids the race condition by first writing to a temporary file with a random path and renaming it to the desired path.
2025-08-26 17:56:01 +02:00
Qun He
caa89c7601
os.linux: faccessat wrapper prefer to faccessat syscall when flags is zero.
This make `fs.Dir.access` has compatibility like the zig version before.

With this change the `zig build --search-prefix` command would work again like
the zig 0.14 version when used on Ubuntu22.04, kernel version 5.4.
2025-08-26 00:11:43 +02:00
Sardorbek Imomaliev
6f07cc95d0
add macOS handling for totalSystemMemory (#24903)
* add macos handling for totalSystemMemory

* fix return type cast for .freebsd in totalSystemMemory

* add handling for the whole Darwin family in totalSystemMemory
2025-08-26 00:11:34 +02:00
Alex Rønne Petersen
b2578329af
zig cc: don't pass -mcmodel for assembly files
It does nothing but generate a warning for these.
2025-08-26 00:11:27 +02:00
Becker A.
9ef2208e4b
Update powi.zig to fix docstring formatting
Without this change, the docs are formatted s.t. the text "Edge case rules ordered by precedence:" is appended onto the prior line of text "Underflow: Absolute value of result smaller than 1", instead of getting its own line.
2025-08-25 18:51:41 +02:00
Nathaniel Ketema
38173d63d3
fix: fix typo in comment by removing repeated 'business' word 2025-08-25 18:51:34 +02:00
87
d4e5d1e15c
lib: Reword documentation for realloc to clarify size
"byte size" is confusing. Clarify we mean number of items.
2025-08-25 18:51:26 +02:00
Arnau Camprubí
17928ef58b
Add test-obj to the help message 2025-08-25 18:51:20 +02:00
Alex Rønne Petersen
48600bc2b3
Compilation: avoid ZCU strategy for ubsan-rt in Windows DLLs 2025-08-25 18:51:09 +02:00
Alex Rønne Petersen
65af60edd0
ubsan-rt: export symbols with hidden visibility
see 092352ec63d3a4e9ff59a5d8ad8f119bf0eda468
2025-08-25 18:50:59 +02:00
Alex Rønne Petersen
f96321be90
std.zig.system: fix check for sparc "v8+" in getExternalExecutor()
Targeting v9 on sparc32 doesn't by itself imply "v8+" mode (64-bit instructions
in 32-bit code).
2025-08-25 18:50:48 +02:00
Erik Schlyter
a51e88c3b1
Fix #24999: copy left-overs before we XOR into c. (#25001)
It is important we copy the left-overs in the message *before* we XOR
it into the ciphertext, because if we're encrypting in-place (i.e., m ==
c), we will manipulate the message that will be used for tag generation.
This will generate faulty tags when message length doesn't conform with
16 byte blocks.
2025-08-25 18:50:36 +02:00
Alex Rønne Petersen
98585af51d
std.fs.Dir: fix updateFile() to flush the file before updating its times
AtomicFile.finish() calls flush() which renders any previous updateTimes() calls
useless. Regression introduced in f2a3ac7c0534a74ee544fdf6ef9d2176a8d62389.

Closes #24927.
2025-08-24 02:30:31 +02:00
John Benediktsson
38ef3f8997
Merge pull request #24926 from mrjbq7/http-fetch
http.Client: don't forget to flush
2025-08-22 23:23:18 +02:00
Justus Klausecker
cf542500f8
zig reduce: adapt to new Writer API 2025-08-22 04:19:31 +02:00
Raiden1411
c8ec7c1294
std: remove lossy int to float coercion on json parse 2025-08-22 04:19:22 +02:00
Lwazi Dube
913db1b1ca
std.os.uefi: Fix typo that causes compile time error #22809" 2025-08-21 12:49:34 +02:00
Carl Åstholm
e24d13cae7
Use readStreaming, not readPositional, for streaming file readVec on Windows 2025-08-21 01:20:25 +02:00
Andrew Kelley
409b194d6d start the 0.15.2 release cycle 2025-08-19 16:21:17 -07:00
Andrew Kelley
3db960767d Release 0.15.1 0.15.1 2025-08-19 16:20:53 -07:00
Justus Klausecker
43ced7d147 expose darwin.PT in std.c 2025-08-19 16:19:09 -07:00
Carl Åstholm
8af682b13a Fix bugs in Windows readVec implementations 2025-08-19 16:19:06 -07:00