From a83e29c5957b4bea22909ed441b57d246be78b1e Mon Sep 17 00:00:00 2001 From: Jacob Sandlund Date: Sat, 5 Jul 2025 10:07:42 -0400 Subject: [PATCH] remove dependency on Graphemes outside of unicode test/table --- src/build/GhosttyUnicodeTest.zig | 9 +++++++++ src/build/SharedDeps.zig | 4 ---- src/crash/sentry.zig | 2 +- src/font/shaper/web_canvas.zig | 7 +++---- src/global.zig | 4 ---- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/build/GhosttyUnicodeTest.zig b/src/build/GhosttyUnicodeTest.zig index 8421e9fae..4063c40ad 100644 --- a/src/build/GhosttyUnicodeTest.zig +++ b/src/build/GhosttyUnicodeTest.zig @@ -36,6 +36,15 @@ pub fn init(b: *std.Build, cfg: *const Config, deps: *const SharedDeps) !Unicode exe.root_module.addImport("ziglyph", dep.module("ziglyph")); } + // Add zg dependencies used just for unicode-test + if (b.lazyDependency("zg", .{ + .target = cfg.target, + .optimize = cfg.optimize, + })) |dep| { + exe.root_module.addImport("DisplayWidth", dep.module("DisplayWidth")); + exe.root_module.addImport("Graphemes", dep.module("Graphemes")); + } + // Add the old version of the unicode tables const old_unicode_tables = try UnicodeTables.init(b); old_unicode_tables.run.addArg("old"); diff --git a/src/build/SharedDeps.zig b/src/build/SharedDeps.zig index ce70e0a03..9d98a7c9c 100644 --- a/src/build/SharedDeps.zig +++ b/src/build/SharedDeps.zig @@ -416,12 +416,8 @@ pub fn add( .optimize = optimize, })) |dep| { step.root_module.addImport("CaseFolding", dep.module("CaseFolding")); - if (self.config.emit_unicode_test) { - step.root_module.addImport("DisplayWidth", dep.module("DisplayWidth")); - } step.root_module.addImport("Emoji", dep.module("Emoji")); step.root_module.addImport("GeneralCategories", dep.module("GeneralCategories")); - step.root_module.addImport("Graphemes", dep.module("Graphemes")); step.root_module.addImport("LetterCasing", dep.module("LetterCasing")); } if (b.lazyDependency("zf", .{ diff --git a/src/crash/sentry.zig b/src/crash/sentry.zig index 820c3e9a1..1b3fd68d8 100644 --- a/src/crash/sentry.zig +++ b/src/crash/sentry.zig @@ -58,7 +58,7 @@ pub fn init(gpa: Allocator) !void { // defer { // const end = std.time.Instant.now() catch unreachable; // // "[updateFrame critical time] \t" - // std.log.err("[sentry init time] start={}us duration={}ns", .{ start_micro, end.since(start) / std.time.ns_per_us }); + // std.log.err("[sentry init time] start={}us duration={}us", .{ start_micro, end.since(start) / std.time.ns_per_us }); // } // Must only start once diff --git a/src/font/shaper/web_canvas.zig b/src/font/shaper/web_canvas.zig index f6b39c7cd..e06ff9a99 100644 --- a/src/font/shaper/web_canvas.zig +++ b/src/font/shaper/web_canvas.zig @@ -4,7 +4,7 @@ const Allocator = std.mem.Allocator; const Graphemes = @import("Graphemes"); const font = @import("../main.zig"); const terminal = @import("../../terminal/main.zig"); -const zg = &@import("../../global.zig").state.zg; +const unicode = @import("../../unicode/main.zig"); const log = std.log.scoped(.font_shaper); @@ -112,7 +112,7 @@ pub const Shaper = struct { // font ligatures. However, we do support grapheme clustering. // This means we can render things like skin tone emoji but // we can't render things like single glyph "=>". - var break_state: Graphemes.State = .{}; + var break_state: unicode.GraphemeBreakState = .{}; var cp1: u21 = @intCast(codepoints[0]); var start: usize = 0; @@ -127,10 +127,9 @@ pub const Shaper = struct { const cp2: u21 = @intCast(codepoints[i]); defer cp1 = cp2; - break :blk Graphemes.graphemeBreak( + break :blk unicode.graphemeBreak( cp1, cp2, - zg.graphemes, &break_state, ); }; diff --git a/src/global.zig b/src/global.zig index cdd3541dc..85dc89ba4 100644 --- a/src/global.zig +++ b/src/global.zig @@ -13,7 +13,6 @@ const apprt = @import("apprt.zig"); const CaseFolding = @import("CaseFolding"); const Emoji = @import("Emoji"); const GeneralCategories = @import("GeneralCategories"); -const Graphemes = @import("Graphemes"); const LetterCasing = @import("LetterCasing"); const unicode = @import("unicode/main.zig"); @@ -232,7 +231,6 @@ pub const Zg = struct { case_folding: CaseFolding, emoji: Emoji, general_categories: GeneralCategories, - graphemes: Graphemes, letter_casing: LetterCasing, pub fn init(alloc: std.mem.Allocator) !Zg { @@ -240,7 +238,6 @@ pub const Zg = struct { .case_folding = try CaseFolding.init(alloc), .emoji = try Emoji.init(alloc), .general_categories = try GeneralCategories.init(alloc), - .graphemes = try Graphemes.init(alloc), .letter_casing = try LetterCasing.init(alloc), }; } @@ -249,7 +246,6 @@ pub const Zg = struct { self.case_folding.deinit(alloc); self.emoji.deinit(alloc); self.general_categories.deinit(alloc); - self.graphemes.deinit(alloc); self.letter_casing.deinit(alloc); }