Commit Graph

12751 Commits

Author SHA1 Message Date
Andrew Kelley 479e62e8ee std.Io.Threaded: debug file handle leaks 2026-01-11 00:40:46 -08:00
nash1111 9a7f14354e crypto: correct checkHostName docs about wildcard matching 2026-01-10 22:11:52 +01:00
Jakub Konka f3db3a087e std: ignore -fmacro-prefix-map flag when parsing NIX_CFLAGS_COMPILE
Since we ignore this flag in `clang_options_data.zig`, it makes
sense to ignore it for Nix as well. One thing I've been thinking about
is if it would make sense to somehow use `clang_options_data.zig` as
source of truth for handling Nix cflags too rather than slap more
hard-coded escape hatches.
2026-01-10 22:04:00 +01:00
InKryption 707823abdb fix semantic UAFs in std.Io.Threaded 2026-01-10 17:43:33 +01:00
Andrew Kelley 4d6d2922b8 std: move memory locking and memory protection to process
and introduce type safety for posix.PROT (mmap, mprotect)

progress towards #6600
2026-01-09 13:52:00 -08:00
Andrew Kelley 5e242f0551 Merge pull request 'libc: use common ctype.h implementation' (#30763) from GasInfinity/zig:libc-ascii-ctype into master
Reviewed-on: https://codeberg.org/ziglang/zig/pulls/30763
Reviewed-by: Andrew Kelley <andrew@ziglang.org>
2026-01-09 22:38:06 +01:00
Andrew Kelley 721bdb6256 Merge pull request 'crypto.scrypt: accept an std.Io parameter instead of direct entropy' (#30738) from jedisct1/zig:scryptfixes into master
Reviewed-on: https://codeberg.org/ziglang/zig/pulls/30738
Reviewed-by: Andrew Kelley <andrew@ziglang.org>
2026-01-09 09:39:35 +01:00
Andrew Kelley 7c0b42ba0c Merge pull request 'crypto.ed25519.Signer: get an std.io parameter rather than entropy' (#30736) from jedisct1/zig:edsigned into master
Reviewed-on: https://codeberg.org/ziglang/zig/pulls/30736
Reviewed-by: Andrew Kelley <andrew@ziglang.org>
2026-01-09 09:38:44 +01:00
Linus Groh 27039a014c std.c: Make clock_nanosleep available on serenity
Follow-up to https://codeberg.org/ziglang/zig/pulls/30746.

The TIMER_ABSTIME value was adjusted to match other systems in
https://github.com/SerenityOS/serenity/pull/26543.
2026-01-09 09:37:49 +01:00
Kevin Primm b929078dac std.Io.Threaded: Raise specific error when DNS lookup returns no A/AAAA records
closes #25948
2026-01-08 20:44:47 -08:00
Jon Parise efe649b13e std.Io.net: make HostName.validate RFC 1123-compliant
The implementation of HostName.validate was too generous. It considered
strings like ".example.com", "exa..mple.com", and "-example.com" to be
valid hostnames, which is incorrect according to RFC 1123 (the currently
accepted standard).

Reviewed-on: https://github.com/ziglang/zig/pull/25710
2026-01-08 20:40:32 -08:00
Matthew Lugg aebd84b525 build runner: refactor step evaluation logic
The previous logic was made really messy by the fact that upon entry to
the step eval worker, the step may not be ready to run, we may be racing
with other workers doing the same check, and we had already acquired our
RSS requirement even though we might not run. It also required iterating
all dependencies each time we were called to check whether we were even
ready to run yet.

A much better strategy is for each step to have an atomic counter
representing how many of its dependencies are yet to complete. When a
step completes (successfully or otherwise), it decrements this value for
all of its dependants, and if it drops any to 0, it schedules that step
to run. This means each step is scheduled exactly once, and only when
all of its dependencies have finished, reducing redundant checks and
hence contention. If the step being scheduled needs to claim RSS which
isn't available, then it is instead added to `memory_blocked_steps`,
which is iterated by the step worker after a step with an RSS claim
finishes.

This logic is more concise than before, simpler to understand, generally
more efficient, and fixes a bug in the RSS tracking. Also, as a nice
side effect, it should also play a little bit nicer with `Io.Threaded`'s
scheduling strategy, because we no longer spawn extremely short-lived
tasks all the time as we previously did.

Resolves: https://codeberg.org/ziglang/zig/issues/30742
2026-01-09 03:16:39 +01:00
Luna Schwalbe 04e73d03bd android: detect native ABI and API level correctly
ABI detection previously did not take into account the non-standard
directory structure of Android. This has been fixed.

The API level is detected by running `getprop ro.build.version.sdk`,
since we don't want to depend on bionic, and reading system properties
ourselves is not trivially possible.
2026-01-09 02:47:13 +01:00
Khitiara e8af0f2cc0 Fix format on uefi guid type, was hitting unreachable 2026-01-09 02:42:22 +01:00
GasInfinity e558e64ca0 feat(std.ascii): add isGraphical and isPunctuation 2026-01-09 02:27:31 +01:00
Andrew Kelley ecea8cc16d std.Io.Threaded: refactor some error handling 2026-01-08 13:35:47 -08:00
Andrew Kelley 09028bac29 std.Io.Threaded: fix init for single-threaded 2026-01-08 12:36:41 -08:00
Andrew Kelley 20baf049aa std.Io: add doc comments 2026-01-08 12:36:07 -08:00
Andrew Kelley 70af303a2b std.Io: move some decls around
This file has changed a lot since the previous release, and I resisted
the urge to do this until the conflicts would be minimized.
2026-01-08 12:35:57 -08:00
Andrew Kelley b0570b807f Merge pull request 'std.Io.Threaded: clock_nanosleep is not linux-only' (#30746) from clock_nanosleep into master
Reviewed-on: https://codeberg.org/ziglang/zig/pulls/30746
2026-01-08 21:00:36 +01:00
Andrew Kelley 1face9ad78 std.c.SIG: make it non-exhaustive
54a84964f8 did this for std.os.linux.SIG
but I neglected to also do it for std.c.SIG
2026-01-08 20:52:42 +01:00
Alex Rønne Petersen d1be8b138e Merge pull request 'enable x86_64-openbsd CI' (#30733) from alexrp/zig:openbsd-ci into master
Reviewed-on: https://codeberg.org/ziglang/zig/pulls/30733
2026-01-08 12:35:11 +01:00
Ian Johnson ac91799332 std.meta.hasUniqueRepresentation: consider enum tag type
Closes #30731
2026-01-08 09:24:12 +01:00
Andrew Kelley 6f7968f165 Merge branch "remove many std.posix functions"
Reviewed-on: https://codeberg.org/ziglang/zig/pulls/30741
2026-01-08 00:19:12 -08:00
Andrew Kelley 130fc7ef75 std.c: use {} rather than void for absent functions 2026-01-07 21:13:16 -08:00
Andrew Kelley 4319c8924e std.Io.Threaded: clock_nanosleep is not linux-only
clock_nanosleep is specified by POSIX but not implemented on these
hereby shamed operating systems:
* macOS
* OpenBSD (which defines TIMER_ABSTIME for some reason...?)
2026-01-07 21:13:16 -08:00
moriazoso 514b103edb std.Io.Threaded: correctly initialize PosixAddress/WsaAddress from sockaddr (#30722)
Resolves ziglang/zig#30672 - UB caused by `std.Io.Threaded.netLookupFallible` incorrectly initializing `PosixAddress`/`WsaAddress` from `*sockaddr`.

Reviewed-on: https://codeberg.org/ziglang/zig/pulls/30722
Co-authored-by: moriazoso <greysonmurray.dev@gmail.com>
Co-committed-by: moriazoso <greysonmurray.dev@gmail.com>
2026-01-08 06:01:44 +01:00
Andrew Kelley 6a5bb3ede3 std: find a better home for the "preopens" concept 2026-01-08 05:06:31 +01:00
Andrew Kelley ce89006035 std.Io.Kqueue: fix bitrot 2026-01-07 18:00:36 -08:00
Andrew Kelley c0092f5394 std.Io: expose Kqueue and IoUring directly 2026-01-07 17:33:07 -08:00
Andrew Kelley cbd75b484f std.posix: remove recvfrom, recvmsg
see #6600
2026-01-07 17:33:07 -08:00
Andrew Kelley d96d735338 posix: remove send, sendto, sendmsg
see #6600
2026-01-07 17:33:07 -08:00
Andrew Kelley 791baefff2 goodbye posix.nanosleep
see #6600
2026-01-07 17:33:07 -08:00
Andrew Kelley 45b931a23f goodbye posix.fork
see #6600

nobody should be using fork anyway, especially Redis
2026-01-07 17:33:07 -08:00
Andrew Kelley 3961fe3de9 std: move posix.kevent to Io.Kqueue 2026-01-07 17:33:07 -08:00
Andrew Kelley 2c6304efc7 std: move posix.kqueue to Io.Kqueue.createFileDescriptor 2026-01-07 17:33:07 -08:00
Andrew Kelley be0a4dc299 goodbye posix.fstatat
see #6600
2026-01-07 17:33:07 -08:00
Andrew Kelley 829afe98d1 std.posix: remove getsockopt, getsockoptError
see #6600
2026-01-07 17:33:07 -08:00
Andrew Kelley 02c260dd06 goodbye posix.getsockname
see #6600
2026-01-07 17:33:07 -08:00
Andrew Kelley 1b43f27a91 std.posix: delete epoll APIs
see #6600
2026-01-07 17:33:07 -08:00
Andrew Kelley 55ad03e261 goodbye posix.accept
see #6600
2026-01-07 17:33:06 -08:00
Andrew Kelley c89df809b9 goodbye posix.listen
see #6600
2026-01-07 17:33:06 -08:00
Andrew Kelley 4a49546f59 goodbye posix.bind
see #6600
2026-01-07 17:33:06 -08:00
Andrew Kelley ed4dfdcff0 goodbye posix.shutdown
see #6600
2026-01-07 17:33:06 -08:00
Andrew Kelley d10a730480 goodbye posix.socket
see #6600
2026-01-07 17:33:06 -08:00
Andrew Kelley ceae9600e3 std.posix: remove setuid, seteuid, setgid, setegid, getuid, etc
applications and libraries should reach for the lower level APIs instead
2026-01-07 17:33:06 -08:00
Andrew Kelley 213ef95346 goodbye posix.open
see #6600
2026-01-07 17:33:06 -08:00
Andrew Kelley 2f372b3dc0 goodbye posix.write
see #6600
2026-01-07 17:33:06 -08:00
Andrew Kelley 7248b4a4e4 std.fs: deprecate base64 APIs
100% of std.fs is now deprecated.
2026-01-07 17:33:06 -08:00
Andrew Kelley c44e12dcd3 std: find a better home for the "preopens" concept 2026-01-07 17:33:06 -08:00