From 86b23a49643292fae8ac5aa98a7afc66256bd9da Mon Sep 17 00:00:00 2001 From: Minsoo Choo Date: Mon, 13 Jan 2025 18:33:27 -0500 Subject: [PATCH 1/3] refactor: remove root.C --- root.zig | 1 - src/bun.js/node/node_os.zig | 2 +- src/bun.zig | 2 +- src/c.zig | 10 +++++----- src/{darwin_c.zig => c/darwin.zig} | 0 src/{linux_c.zig => c/linux.zig} | 0 src/{windows_c.zig => c/windows.zig} | 2 +- src/glob/GlobWalker.zig | 2 +- src/install/bin.zig | 2 +- 9 files changed, 10 insertions(+), 11 deletions(-) rename src/{darwin_c.zig => c/darwin.zig} (100%) rename src/{linux_c.zig => c/linux.zig} (100%) rename src/{windows_c.zig => c/windows.zig} (99%) diff --git a/root.zig b/root.zig index 4778a56d1b0713..ed95558f039a89 100644 --- a/root.zig +++ b/root.zig @@ -10,4 +10,3 @@ pub const completions = struct { }; pub const JavaScriptCore = @import("./src/jsc.zig"); -pub const C = @import("./src/c.zig"); diff --git a/src/bun.js/node/node_os.zig b/src/bun.js/node/node_os.zig index fc60648fee1385..5ef4bca72f6602 100644 --- a/src/bun.js/node/node_os.zig +++ b/src/bun.js/node/node_os.zig @@ -186,7 +186,7 @@ fn cpusImplLinux(globalThis: *JSC.JSGlobalObject) !JSC.JSValue { extern fn bun_sysconf__SC_CLK_TCK() isize; fn cpusImplDarwin(globalThis: *JSC.JSGlobalObject) !JSC.JSValue { - const local_bindings = @import("../../darwin_c.zig"); + const local_bindings = @import("../../c/darwin.zig"); const c = std.c; // Fetch the CPU info structure diff --git a/src/bun.zig b/src/bun.zig index 5ae74eae5cc12e..a33b85bf413aeb 100644 --- a/src/bun.zig +++ b/src/bun.zig @@ -102,7 +102,7 @@ pub const JSOOM = OOM || JSError; pub const detectCI = @import("./ci_info.zig").detectCI; -pub const C = @import("root").C; +pub const C = @import("./c.zig"); pub const sha = @import("./sha.zig"); pub const FeatureFlags = @import("feature_flags.zig"); pub const meta = @import("./meta.zig"); diff --git a/src/c.zig b/src/c.zig index 1541b9872eaf0e..b624f57dba2a6d 100644 --- a/src/c.zig +++ b/src/c.zig @@ -5,9 +5,9 @@ const Environment = @import("./env.zig"); pub const translated = @import("translated-c-headers"); const PlatformSpecific = switch (Environment.os) { - .mac => @import("./darwin_c.zig"), - .linux => @import("./linux_c.zig"), - .windows => @import("./windows_c.zig"), + .mac => @import("c/darwin.zig"), + .linux => @import("c/linux.zig"), + .windows => @import("c/windows.zig"), else => struct {}, }; pub usingnamespace PlatformSpecific; @@ -25,8 +25,8 @@ const mode_t = bun.Mode; const libc_stat = bun.Stat; const zeroes = mem.zeroes; -pub const darwin = @import("./darwin_c.zig"); -pub const linux = @import("./linux_c.zig"); +pub const darwin = @import("c/darwin.zig"); +pub const linux = @import("c/linux.zig"); pub extern "c" fn chmod([*c]const u8, mode_t) c_int; pub extern "c" fn fchmod(std.c.fd_t, mode_t) c_int; pub extern "c" fn fchmodat(c_int, [*c]const u8, mode_t, c_int) c_int; diff --git a/src/darwin_c.zig b/src/c/darwin.zig similarity index 100% rename from src/darwin_c.zig rename to src/c/darwin.zig diff --git a/src/linux_c.zig b/src/c/linux.zig similarity index 100% rename from src/linux_c.zig rename to src/c/linux.zig diff --git a/src/windows_c.zig b/src/c/windows.zig similarity index 99% rename from src/windows_c.zig rename to src/c/windows.zig index df725226c65c49..d6e9fd0a3bc355 100644 --- a/src/windows_c.zig +++ b/src/c/windows.zig @@ -1067,7 +1067,7 @@ pub const UV_EUNATCH = -uv.UV_EUNATCH; pub const off_t = i64; pub fn preallocate_file(_: posix.fd_t, _: off_t, _: off_t) !void {} -const uv = @import("./deps/libuv.zig"); +const uv = @import("../deps/libuv.zig"); pub const E = enum(u16) { SUCCESS = 0, diff --git a/src/glob/GlobWalker.zig b/src/glob/GlobWalker.zig index 6498fbb7d4c9a9..aadddb55e15265 100644 --- a/src/glob/GlobWalker.zig +++ b/src/glob/GlobWalker.zig @@ -35,7 +35,7 @@ const Arena = std.heap.ArenaAllocator; const ArrayList = std.ArrayListUnmanaged; const ArrayListManaged = std.ArrayList; const BunString = bun.String; -const C = @import("../c.zig"); +const C = bun.C; const CodepointIterator = @import("../string_immutable.zig").PackedCodepointIterator; const Codepoint = CodepointIterator.Cursor.CodePointType; const Dirent = @import("../bun.js/node/types.zig").Dirent; diff --git a/src/install/bin.zig b/src/install/bin.zig index d0162e63839de4..76235c2d23a167 100644 --- a/src/install/bin.zig +++ b/src/install/bin.zig @@ -7,7 +7,7 @@ const Global = bun.Global; const std = @import("std"); const strings = bun.strings; const Environment = @import("../env.zig"); -const C = @import("../c.zig"); +const C = bun.C; const Fs = @import("../fs.zig"); const stringZ = bun.stringZ; const Resolution = @import("./resolution.zig").Resolution; From b3dbc14596aa17340568fb15b91bda51b70d5cd1 Mon Sep 17 00:00:00 2001 From: Minsoo Choo Date: Tue, 14 Jan 2025 18:12:07 -0500 Subject: [PATCH 2/3] refactor: remove root.JavaScriptCore --- root.zig | 4 +--- src/bun.js/webcore/S3Stat.zig | 2 +- src/bun.zig | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/root.zig b/root.zig index ed95558f039a89..f42e4ad46c3782 100644 --- a/root.zig +++ b/root.zig @@ -7,6 +7,4 @@ pub const completions = struct { pub const bash = @embedFile("./completions/bun.bash"); pub const zsh = @embedFile("./completions/bun.zsh"); pub const fish = @embedFile("./completions/bun.fish"); -}; - -pub const JavaScriptCore = @import("./src/jsc.zig"); +}; \ No newline at end of file diff --git a/src/bun.js/webcore/S3Stat.zig b/src/bun.js/webcore/S3Stat.zig index 53deb25bcb4c94..4891135cee7b5a 100644 --- a/src/bun.js/webcore/S3Stat.zig +++ b/src/bun.js/webcore/S3Stat.zig @@ -1,5 +1,5 @@ const bun = @import("../../bun.zig"); -const JSC = @import("../../jsc.zig"); +const JSC = bun.JSC; pub const S3Stat = struct { const log = bun.Output.scoped(.S3Stat, false); diff --git a/src/bun.zig b/src/bun.zig index a33b85bf413aeb..aabc1564bb2713 100644 --- a/src/bun.zig +++ b/src/bun.zig @@ -789,7 +789,7 @@ pub const invalid_fd: FileDescriptor = FDImpl.invalid.encode(); pub const simdutf = @import("./bun.js/bindings/bun-simdutf.zig"); -pub const JSC = @import("root").JavaScriptCore; +pub const JSC = @import("./jsc.zig"); pub const AsyncIO = @import("async_io"); pub const logger = @import("./logger.zig"); From 91874f0df86bd619aab0637fc12f85e9d11349a1 Mon Sep 17 00:00:00 2001 From: Minsoo Choo Date: Tue, 14 Jan 2025 23:31:54 -0500 Subject: [PATCH 3/3] Fix windows build --- build.zig | 6 ++++++ src/install/windows-shim/bun_shim_impl.zig | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/build.zig b/build.zig index abcefc752bd6d5..e8a888e64aaf96 100644 --- a/build.zig +++ b/build.zig @@ -628,6 +628,12 @@ const WindowsShim = struct { .link_libc = false, }); + const options = b.addOptions(); + options.addOption(bool, "is_standalone", true); + + exe.root_module.addOptions("windows_shim", options); + dbg.root_module.addOptions("windows_shim", options); + return .{ .exe = exe, .dbg = dbg }; } }; diff --git a/src/install/windows-shim/bun_shim_impl.zig b/src/install/windows-shim/bun_shim_impl.zig index c8cf07e09db1b2..78e86275eeefa2 100644 --- a/src/install/windows-shim/bun_shim_impl.zig +++ b/src/install/windows-shim/bun_shim_impl.zig @@ -46,7 +46,7 @@ const w = std.os.windows; const assert = std.debug.assert; const fmt16 = std.unicode.fmtUtf16le; -const is_standalone = !@hasDecl(@import("root"), "JavaScriptCore"); +const is_standalone = !@hasDecl(@import("windows_shim"), "is_standalone"); const bun = if (!is_standalone) @import("root").bun else @compileError("cannot use 'bun' in standalone build of bun_shim_impl"); const bunDebugMessage = bun.Output.scoped(.bun_shim_impl, true); const callmod_inline = if (is_standalone) std.builtin.CallModifier.always_inline else bun.callmod_inline;