Compare commits

..

6 Commits

Author SHA1 Message Date
Christian Clason
6d005e7036 update to libuv 1.53.0
Some checks are pending
CI / build (-Dbuild-tests -Dbuild-benchmarks, true, macos-latest, master) (push) Waiting to run
CI / build (ubuntu-latest, 0.14.1) (push) Waiting to run
CI / build (ubuntu-latest, 0.15.2) (push) Waiting to run
CI / build (ubuntu-latest, 0.16.0) (push) Waiting to run
CI / build (ubuntu-latest, master) (push) Waiting to run
CI / build (windows-latest, 0.14.1) (push) Waiting to run
CI / build (windows-latest, 0.15.2) (push) Waiting to run
CI / build (windows-latest, 0.16.0) (push) Waiting to run
CI / build (windows-latest, master) (push) Waiting to run
2026-09-28 10:40:17 +02:00
20f2c7a4e0 readme: update version support matrix 2026-09-27 12:59:32 -06:00
912ac2e2ed build: work around zig 0.17 optimize member name change 2026-09-27 12:59:32 -06:00
9424ac1237 build: correct package version to match libuv version 2026-09-27 12:59:32 -06:00
5dee030bb1 ci: explicitly build against zig 0.16.0 2026-09-27 12:59:32 -06:00
be1c14b525 ci: only build with zig-master macos-latest
The way that the macOS libc integration in zig works retroactively
breaks older zig versions on newer macOS due to linking errors. The
only version that is "guaranteed" to work on `macos-latest` is zig
`master`.
2026-09-27 12:19:40 -06:00
4 changed files with 30 additions and 12 deletions

View File

@@ -12,10 +12,10 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
zig-version: ["0.14.1", "0.15.2", "master"] zig-version: ["0.14.1", "0.15.2", "0.16.0", "master"]
os: [ubuntu-latest, windows-latest, macos-latest] os: [ubuntu-latest, windows-latest]
include: include:
- zig-version: "0.15.2" - zig-version: "master"
# -Dbuild-tests does not work when targeting Linux because the build # -Dbuild-tests does not work when targeting Linux because the build
# system doesn't preserve linker input file order, which causes the # system doesn't preserve linker input file order, which causes the
# linker to spew duplicate symbol errors. # linker to spew duplicate symbol errors.

View File

@@ -59,8 +59,9 @@ pub fn build(b: *std.Build) void {
root_module.linkSystemLibrary("dbghelp", .{}); root_module.linkSystemLibrary("dbghelp", .{});
root_module.linkSystemLibrary("ole32", .{}); root_module.linkSystemLibrary("ole32", .{});
root_module.linkSystemLibrary("shell32", .{}); root_module.linkSystemLibrary("shell32", .{});
if (optimize == .Debug) if (isDebugBuild(optimize))
root_module.linkSystemLibrary("ucrtbased", .{}); root_module.linkSystemLibrary("ucrtbased", .{});
root_module.addCSourceFiles(.{ root_module.addCSourceFiles(.{
.root = src_root, .root = src_root,
.files = win_sources, .files = win_sources,
@@ -343,6 +344,14 @@ pub fn build(b: *std.Build) void {
} }
} }
// Kludge to work around optimization enum member naming change in zig 0.17
fn isDebugBuild(optimize: anytype) bool {
return if (comptime builtin.zig_version.major == 0 and builtin.zig_version.minor <= 16)
optimize == .Debug
else
return optimize == .debug;
}
const install_headers: []const []const u8 = &.{ const install_headers: []const []const u8 = &.{
"uv.h", "uv.h",
"uv/errno.h", "uv/errno.h",
@@ -609,6 +618,7 @@ const test_sources: []const []const u8 = &.{
"test-hrtime.c", "test-hrtime.c",
"test-idle.c", "test-idle.c",
"test-idna.c", "test-idna.c",
"test-io-64-safe.c",
"test-iouring-pollhup.c", "test-iouring-pollhup.c",
"test-ip4-addr.c", "test-ip4-addr.c",
"test-ip6-addr.c", "test-ip6-addr.c",
@@ -628,6 +638,7 @@ const test_sources: []const []const u8 = &.{
"test-mutexes.c", "test-mutexes.c",
"test-not-readable-nor-writable-on-read-error.c", "test-not-readable-nor-writable-on-read-error.c",
"test-not-writable-after-shutdown.c", "test-not-writable-after-shutdown.c",
"test-osx-resident-set-memory.c",
"test-osx-select.c", "test-osx-select.c",
"test-pass-always.c", "test-pass-always.c",
"test-ping-pong.c", "test-ping-pong.c",
@@ -642,6 +653,7 @@ const test_sources: []const []const u8 = &.{
"test-pipe-server-close.c", "test-pipe-server-close.c",
"test-pipe-set-fchmod.c", "test-pipe-set-fchmod.c",
"test-pipe-set-non-blocking.c", "test-pipe-set-non-blocking.c",
"test-pipe-write.c",
"test-platform-output.c", "test-platform-output.c",
"test-poll-close-doesnt-corrupt-stack.c", "test-poll-close-doesnt-corrupt-stack.c",
"test-poll-close.c", "test-poll-close.c",
@@ -667,6 +679,7 @@ const test_sources: []const []const u8 = &.{
"test-signal-pending-on-close.c", "test-signal-pending-on-close.c",
"test-signal.c", "test-signal.c",
"test-socket-buffer-size.c", "test-socket-buffer-size.c",
"test-sizeof.c",
"test-spawn.c", "test-spawn.c",
"test-stdio-over-pipes.c", "test-stdio-over-pipes.c",
"test-strscpy.c", "test-strscpy.c",
@@ -698,6 +711,7 @@ const test_sources: []const []const u8 = &.{
"test-tcp-unexpected-read.c", "test-tcp-unexpected-read.c",
"test-tcp-write-after-connect.c", "test-tcp-write-after-connect.c",
"test-tcp-write-fail.c", "test-tcp-write-fail.c",
"test-tcp-write-in-read-cb-backend-timeout.c",
"test-tcp-write-queue-order.c", "test-tcp-write-queue-order.c",
"test-tcp-write-to-half-open-connection.c", "test-tcp-write-to-half-open-connection.c",
"test-tcp-writealot.c", "test-tcp-writealot.c",
@@ -737,6 +751,7 @@ const test_sources: []const []const u8 = &.{
"test-udp-sendmmsg-error.c", "test-udp-sendmmsg-error.c",
"test-udp-send-unreachable.c", "test-udp-send-unreachable.c",
"test-udp-recv-cb-close-pollerr.c", "test-udp-recv-cb-close-pollerr.c",
"test-udp-send-fail.c",
"test-udp-try-send.c", "test-udp-try-send.c",
"test-udp-recv-in-a-row.c", "test-udp-recv-in-a-row.c",
"test-udp-recvmsg-unreachable-error.c", "test-udp-recvmsg-unreachable-error.c",
@@ -744,6 +759,8 @@ const test_sources: []const []const u8 = &.{
"test-uname.c", "test-uname.c",
"test-walk-handles.c", "test-walk-handles.c",
"test-watcher-cross-stop.c", "test-watcher-cross-stop.c",
"test-write-cancel.c",
}; };
const std = @import("std"); const std = @import("std");
const builtin = @import("builtin");

View File

@@ -1,12 +1,12 @@
.{ .{
.name = .libuv, .name = .libuv,
.fingerprint = 0x7CB3932CBFAADA86, .fingerprint = 0x7CB3932CBFAADA86,
.version = "1.52.0", .version = "1.53.0",
.minimum_zig_version = "0.14.0", .minimum_zig_version = "0.14.0",
.dependencies = .{ .dependencies = .{
.libuv = .{ .libuv = .{
.url = "git+https://github.com/libuv/libuv?ref=v1.52.1#a19ceeb13a3689cfd20bf96b283136cff08a0dc6", .url = "git+https://github.com/libuv/libuv?ref=v1.53.0#840404ce8ba7cc0204be52389a6cfff9f2c90fb6",
.hash = "N-V-__8AAF0TRQB7f11_kVHJXTkp9QLCD20udiPXEsoNg9cC", .hash = "N-V-__8AAJDFRwBAOnHfjLo8JKU56CoS83XDbuaNIxTM_WXo",
}, },
}, },
.paths = .{ .paths = .{

View File

@@ -39,8 +39,9 @@ your_exe.linkLibrary(libuv_dep.artifact("uv"));
> Compatible zig versions labeled `-dev` are maintained on a best-effort basis and are likely to break as the compiler and zig build system develop. Tag-based refs are immutable and will not be updated when the zig build system has a backward incompatible change. > Compatible zig versions labeled `-dev` are maintained on a best-effort basis and are likely to break as the compiler and zig build system develop. Tag-based refs are immutable and will not be updated when the zig build system has a backward incompatible change.
| Refname | libuv Version | Compatible Zig Version(s) | | Refname | libuv Version | Compatible Zig Version(s) |
|-----------|----------------|--------------------------------| | --------- | ------------- | ---------------------------------------- |
| `master` | `1.52.0` | `0.14.1`, `0.15.2`, `0.16-dev` | | `master` | `1.53.0` | `0.14.1`, `0.15.2`, `0.16.0`, `0.17-dev` |
| `v1.52.1` | `1.52.1` | `0.14.1`, `0.15.2`, `0.16.0`, `0.17-dev` |
| `v1.51.0` | `1.51.0` | `0.14.1`, `0.15.2`, `0.16-dev` | | `v1.51.0` | `1.51.0` | `0.14.1`, `0.15.2`, `0.16-dev` |
| `v1.50.0` | `1.50.0` | `0.14.1`, `0.15.2` | | `v1.50.0` | `1.50.0` | `0.14.1`, `0.15.2` |