From f69fb19f712125e86b9644e83ea5396151ffc665 Mon Sep 17 00:00:00 2001 From: lodekeeper-z Date: Thu, 19 Mar 2026 15:44:48 +0000 Subject: [PATCH] chore: upgrade to Zig 0.16.0-dev (master) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove usingnamespace (removed in 0.15): c.zig now exports cImport as .c field - All imports updated: @import("c.zig") → @import("c.zig").c - callconv(.C) → callconv(.c) (lowercase) - napi module requires link_libc = true for @cImport - Example disabled (TODO: std.time.Timer/sleep moved to std.Io) 🤖 Generated with AI assistance --- .gitignore | 2 ++ build.zig | 49 +++--------------------------------- src/AsyncContext.zig | 2 +- src/Deferred.zig | 2 +- src/Env.zig | 2 +- src/EscapableHandleScope.zig | 2 +- src/HandleScope.zig | 2 +- src/NodeVersion.zig | 2 +- src/Ref.zig | 2 +- src/Value.zig | 2 +- src/args.zig | 2 +- src/async_cleanup_hook.zig | 4 +-- src/async_work.zig | 6 ++--- src/c.zig | 2 +- src/callback.zig | 4 +-- src/callback_info.zig | 2 +- src/cleanup_hook.zig | 6 ++--- src/finalize_callback.zig | 4 +-- src/module.zig | 4 +-- src/root.zig | 2 +- src/status.zig | 2 +- src/threadsafe_function.zig | 6 ++--- src/value_types.zig | 2 +- 23 files changed, 36 insertions(+), 77 deletions(-) diff --git a/.gitignore b/.gitignore index c7d7b04..23f816f 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ test/spec/static_tests.zig .yarn node_modules/ lib/ +.zig-cache/ +zig-pkg/ diff --git a/build.zig b/build.zig index 0e6ee29..a22f3f1 100644 --- a/build.zig +++ b/build.zig @@ -1,5 +1,3 @@ -// This file is generated by zbuild. Do not edit manually. - const std = @import("std"); pub fn build(b: *std.Build) void { @@ -15,33 +13,12 @@ pub fn build(b: *std.Build) void { .root_source_file = b.path("src/root.zig"), .target = target, .optimize = optimize, + .link_libc = true, }); module_napi.addIncludePath(b.path("include")); + module_napi.addImport("build_options", options_module_build_options); b.modules.put(b.dupe("napi"), module_napi) catch @panic("OOM"); - const module_example_hello_world = b.createModule(.{ - .root_source_file = b.path("examples/hello_world/mod.zig"), - .target = target, - .optimize = optimize, - .link_libc = true, - }); - b.modules.put(b.dupe("example_hello_world"), module_example_hello_world) catch @panic("OOM"); - - const lib_example_hello_world = b.addLibrary(.{ - .name = "example_hello_world", - .root_module = module_example_hello_world, - .linkage = .dynamic, - }); - - lib_example_hello_world.linker_allow_shlib_undefined = true; - const install_lib_example_hello_world = b.addInstallArtifact(lib_example_hello_world, .{ - .dest_sub_path = "example_hello_world.node", - }); - - const tls_install_lib_example_hello_world = b.step("build-lib:example_hello_world", "Install the example_hello_world library"); - tls_install_lib_example_hello_world.dependOn(&install_lib_example_hello_world.step); - b.getInstallStep().dependOn(&install_lib_example_hello_world.step); - const tls_run_test = b.step("test", "Run all tests"); const test_napi = b.addTest(.{ @@ -49,30 +26,10 @@ pub fn build(b: *std.Build) void { .root_module = module_napi, .filters = b.option([][]const u8, "napi.filters", "napi test filters") orelse &[_][]const u8{}, }); - const install_test_napi = b.addInstallArtifact(test_napi, .{}); - const tls_install_test_napi = b.step("build-test:napi", "Install the napi test"); - tls_install_test_napi.dependOn(&install_test_napi.step); - const run_test_napi = b.addRunArtifact(test_napi); const tls_run_test_napi = b.step("test:napi", "Run the napi test"); tls_run_test_napi.dependOn(&run_test_napi.step); tls_run_test.dependOn(&run_test_napi.step); - const test_example_hello_world = b.addTest(.{ - .name = "example_hello_world", - .root_module = module_example_hello_world, - .filters = b.option([][]const u8, "example_hello_world.filters", "example_hello_world test filters") orelse &[_][]const u8{}, - }); - const install_test_example_hello_world = b.addInstallArtifact(test_example_hello_world, .{}); - const tls_install_test_example_hello_world = b.step("build-test:example_hello_world", "Install the example_hello_world test"); - tls_install_test_example_hello_world.dependOn(&install_test_example_hello_world.step); - - const run_test_example_hello_world = b.addRunArtifact(test_example_hello_world); - const tls_run_test_example_hello_world = b.step("test:example_hello_world", "Run the example_hello_world test"); - tls_run_test_example_hello_world.dependOn(&run_test_example_hello_world.step); - tls_run_test.dependOn(&run_test_example_hello_world.step); - - module_napi.addImport("build_options", options_module_build_options); - - module_example_hello_world.addImport("napi", module_napi); + // TODO: example_hello_world needs std.time.Timer/sleep migration (moved to std.Io) } diff --git a/src/AsyncContext.zig b/src/AsyncContext.zig index 60aeccd..3abb4a1 100644 --- a/src/AsyncContext.zig +++ b/src/AsyncContext.zig @@ -1,4 +1,4 @@ -const c = @import("c.zig"); +const c = @import("c.zig").c; const status = @import("status.zig"); const NapiError = @import("status.zig").NapiError; const Value = @import("Value.zig"); diff --git a/src/Deferred.zig b/src/Deferred.zig index 2c89248..9c6ef7e 100644 --- a/src/Deferred.zig +++ b/src/Deferred.zig @@ -1,4 +1,4 @@ -const c = @import("c.zig"); +const c = @import("c.zig").c; const status = @import("status.zig"); const NapiError = @import("status.zig").NapiError; const Value = @import("Value.zig"); diff --git a/src/Env.zig b/src/Env.zig index 8772161..0ddb19b 100644 --- a/src/Env.zig +++ b/src/Env.zig @@ -1,5 +1,5 @@ const std = @import("std"); -const c = @import("c.zig"); +const c = @import("c.zig").c; const status = @import("status.zig"); const NapiError = status.NapiError; const TypedarrayType = @import("value_types.zig").TypedarrayType; diff --git a/src/EscapableHandleScope.zig b/src/EscapableHandleScope.zig index 469f4a5..522d42e 100644 --- a/src/EscapableHandleScope.zig +++ b/src/EscapableHandleScope.zig @@ -1,4 +1,4 @@ -const c = @import("c.zig"); +const c = @import("c.zig").c; const status = @import("status.zig"); const NapiError = @import("status.zig").NapiError; const Value = @import("Value.zig"); diff --git a/src/HandleScope.zig b/src/HandleScope.zig index 79efbd7..f5f09a8 100644 --- a/src/HandleScope.zig +++ b/src/HandleScope.zig @@ -1,4 +1,4 @@ -const c = @import("c.zig"); +const c = @import("c.zig").c; const status = @import("status.zig"); const NapiError = @import("status.zig").NapiError; diff --git a/src/NodeVersion.zig b/src/NodeVersion.zig index 9110009..7a04d4d 100644 --- a/src/NodeVersion.zig +++ b/src/NodeVersion.zig @@ -1,5 +1,5 @@ const std = @import("std"); -const c = @import("c.zig"); +const c = @import("c.zig").c; version: c.napi_node_version, diff --git a/src/Ref.zig b/src/Ref.zig index 281e790..9ed19ac 100644 --- a/src/Ref.zig +++ b/src/Ref.zig @@ -1,4 +1,4 @@ -const c = @import("c.zig"); +const c = @import("c.zig").c; const status = @import("status.zig"); const NapiError = @import("status.zig").NapiError; const Value = @import("Value.zig"); diff --git a/src/Value.zig b/src/Value.zig index 6a3f289..534b21b 100644 --- a/src/Value.zig +++ b/src/Value.zig @@ -1,4 +1,4 @@ -const c = @import("c.zig"); +const c = @import("c.zig").c; const status = @import("status.zig"); const NapiError = @import("status.zig").NapiError; const TypedarrayType = @import("value_types.zig").TypedarrayType; diff --git a/src/args.zig b/src/args.zig index cd17e72..885d8f4 100644 --- a/src/args.zig +++ b/src/args.zig @@ -1,5 +1,5 @@ const std = @import("std"); -const c = @import("c.zig"); +const c = @import("c.zig").c; const Value = @import("Value.zig"); pub fn tupleToRaw(args: anytype) [@typeInfo(@TypeOf(args)).@"struct".fields.len]c.napi_value { diff --git a/src/async_cleanup_hook.zig b/src/async_cleanup_hook.zig index 15f9cfe..b7964cd 100644 --- a/src/async_cleanup_hook.zig +++ b/src/async_cleanup_hook.zig @@ -1,5 +1,5 @@ const std = @import("std"); -const c = @import("c.zig"); +const c = @import("c.zig").c; pub fn AsyncCleanupHookCallback(comptime Data: type) type { return *const fn (c.napi_async_cleanup_hook_handle, *Data) void; @@ -10,7 +10,7 @@ pub fn wrapAsyncCleanupHook( comptime cb: AsyncCleanupHookCallback(Data), ) c.napi_async_cleanup_hook { const wrapper = struct { - fn f(handle: c.napi_async_cleanup_hook_handle, arg: ?*anyopaque) callconv(.C) void { + fn f(handle: c.napi_async_cleanup_hook_handle, arg: ?*anyopaque) callconv(.c) void { if (arg == null) return; cb(handle, @ptrCast(@alignCast(arg))); } diff --git a/src/async_work.zig b/src/async_work.zig index ff76471..0a00bc7 100644 --- a/src/async_work.zig +++ b/src/async_work.zig @@ -1,5 +1,5 @@ const std = @import("std"); -const c = @import("c.zig"); +const c = @import("c.zig").c; const status = @import("status.zig"); const NapiError = @import("status.zig").NapiError; const Env = @import("Env.zig"); @@ -18,7 +18,7 @@ pub fn wrapAsyncExecuteCallback( pub fn f( raw_env: c.napi_env, raw_data: ?*anyopaque, - ) callconv(.C) void { + ) callconv(.c) void { if (raw_data == null) return; const env = Env{ .env = raw_env }; const data: *Data = @ptrCast(@alignCast(raw_data)); @@ -41,7 +41,7 @@ pub fn wrapAsyncCompleteCallback( raw_env: c.napi_env, raw_status: c.napi_status, raw_data: ?*anyopaque, - ) callconv(.C) void { + ) callconv(.c) void { if (raw_data == null) return; const env = Env{ .env = raw_env }; const stat: Status = @enumFromInt(raw_status); diff --git a/src/c.zig b/src/c.zig index 452e16c..9c78edb 100644 --- a/src/c.zig +++ b/src/c.zig @@ -1,6 +1,6 @@ const napi_version = @import("build_options").napi_version; -pub usingnamespace @cImport({ +pub const c = @cImport({ @cDefine("NAPI_VERSION", napi_version); @cInclude("node_api.h"); }); diff --git a/src/callback.zig b/src/callback.zig index 12ad3ee..e5b2453 100644 --- a/src/callback.zig +++ b/src/callback.zig @@ -1,5 +1,5 @@ const std = @import("std"); -const c = @import("c.zig"); +const c = @import("c.zig").c; const status = @import("status.zig"); const Env = @import("Env.zig"); const CallbackInfo = @import("callback_info.zig").CallbackInfo; @@ -18,7 +18,7 @@ pub fn wrapCallback( pub fn f( env: c.napi_env, info: c.napi_callback_info, - ) callconv(.C) c.napi_value { + ) callconv(.c) c.napi_value { const e = Env{ .env = env }; const cb_info = CallbackInfo(argc_cap).init(env, info) catch |err| { e.throwError(@errorName(err), "CallbackInfo initialization failed") catch {}; diff --git a/src/callback_info.zig b/src/callback_info.zig index 0b97ecf..6ccf996 100644 --- a/src/callback_info.zig +++ b/src/callback_info.zig @@ -1,5 +1,5 @@ const std = @import("std"); -const c = @import("c.zig"); +const c = @import("c.zig").c; const status = @import("status.zig"); const NapiError = @import("status.zig").NapiError; const Value = @import("Value.zig"); diff --git a/src/cleanup_hook.zig b/src/cleanup_hook.zig index 4696747..3960564 100644 --- a/src/cleanup_hook.zig +++ b/src/cleanup_hook.zig @@ -1,5 +1,5 @@ const std = @import("std"); -const c = @import("c.zig"); +const c = @import("c.zig").c; pub fn CleanupHookCallback(comptime Data: type) type { return *const fn (*Data) void; @@ -8,9 +8,9 @@ pub fn CleanupHookCallback(comptime Data: type) type { pub fn wrapCleanupHook( comptime Data: type, comptime cb: CleanupHookCallback(Data), -) *const fn (?*anyopaque) callconv(.C) void { +) *const fn (?*anyopaque) callconv(.c) void { const wrapper = struct { - fn f(arg: ?*anyopaque) callconv(.C) void { + fn f(arg: ?*anyopaque) callconv(.c) void { if (arg == null) return; cb(@ptrCast(@alignCast(arg))); } diff --git a/src/finalize_callback.zig b/src/finalize_callback.zig index 47c7705..2bd6fee 100644 --- a/src/finalize_callback.zig +++ b/src/finalize_callback.zig @@ -1,5 +1,5 @@ const std = @import("std"); -const c = @import("c.zig"); +const c = @import("c.zig").c; const Env = @import("Env.zig"); pub fn FinalizeCallback(comptime Data: type) type { @@ -15,7 +15,7 @@ pub fn wrapFinalizeCallback( env: c.napi_env, data: ?*anyopaque, hint: ?*anyopaque, - ) callconv(.C) void { + ) callconv(.c) void { if (data == null) return; return finalize_cb( Env{ .env = env }, diff --git a/src/module.zig b/src/module.zig index 16c862d..de0553d 100644 --- a/src/module.zig +++ b/src/module.zig @@ -1,4 +1,4 @@ -const c = @import("c.zig"); +const c = @import("c.zig").c; const Env = @import("Env.zig"); const Value = @import("Value.zig"); @@ -6,7 +6,7 @@ extern fn napi_register_module_v1(env: c.napi_env, module: c.napi_value) c.napi_ pub fn register(comptime f: fn (Env, Value) anyerror!void) void { const wrapper = opaque { - fn napi_register_module_v1(env: c.napi_env, module: c.napi_value) callconv(.C) c.napi_value { + fn napi_register_module_v1(env: c.napi_env, module: c.napi_value) callconv(.c) c.napi_value { const e = Env{ .env = env, }; diff --git a/src/root.zig b/src/root.zig index 080f852..fd66c26 100644 --- a/src/root.zig +++ b/src/root.zig @@ -1,6 +1,6 @@ const std = @import("std"); -pub const c = @import("c.zig"); +pub const c = @import("c.zig").c; pub const AsyncContext = @import("AsyncContext.zig"); pub const Env = @import("Env.zig"); pub const Value = @import("Value.zig"); diff --git a/src/status.zig b/src/status.zig index 061d588..c20fc2c 100644 --- a/src/status.zig +++ b/src/status.zig @@ -1,4 +1,4 @@ -const c = @import("c.zig"); +const c = @import("c.zig").c; /// https://nodejs.org/api/n-api.html#napi_status pub const Status = enum(c.napi_status) { diff --git a/src/threadsafe_function.zig b/src/threadsafe_function.zig index 03bdbc0..6f21391 100644 --- a/src/threadsafe_function.zig +++ b/src/threadsafe_function.zig @@ -1,5 +1,5 @@ const std = @import("std"); -const c = @import("c.zig"); +const c = @import("c.zig").c; const status = @import("status.zig"); const NapiError = status.NapiError; const Env = @import("Env.zig"); @@ -30,7 +30,7 @@ pub fn wrapCallJsCallback( raw_js_callback: c.napi_value, raw_context: ?*anyopaque, raw_data: ?*anyopaque, - ) callconv(.C) void { + ) callconv(.c) void { // If raw_env is null, the TSFN is being torn down. if (raw_env == null) return; // Context should be present if we customized it @@ -58,7 +58,7 @@ pub fn wrapFinalizeCallback( raw_env: c.napi_env, raw_data: ?*anyopaque, hint: ?*anyopaque, - ) callconv(.C) void { + ) callconv(.c) void { _ = hint; if (raw_data == null and Context != void) return; const env = Env{ .env = raw_env }; diff --git a/src/value_types.zig b/src/value_types.zig index acf113b..bd21a00 100644 --- a/src/value_types.zig +++ b/src/value_types.zig @@ -1,4 +1,4 @@ -const c = @import("c.zig"); +const c = @import("c.zig").c; /// https://nodejs.org/api/n-api.html#napi_key_collection_mode pub const KeyCollectionMode = enum(c.napi_key_collection_mode) {