From 16deea2761b305293b351c7fbe85d3a6a0f8ad57 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 30 Sep 2025 12:13:43 -0700 Subject: [PATCH] nuke ziglyph from orbit Since we now use uucode, we don't need ziglyph anymore. Ziglyph was kept around as a test-only dep so we can verify matching but this is complicating our Zig 0.15 upgrade because ziglyph doesn't support Zig 0.15. Let's just drop it. --- build.zig.zon | 5 --- build.zig.zon.json | 5 --- build.zig.zon.nix | 8 ----- build.zig.zon.txt | 1 - flatpak/zig-packages.json | 6 ---- src/build/SharedDeps.zig | 8 ----- src/unicode/props_uucode.zig | 57 ---------------------------------- src/unicode/symbols_uucode.zig | 26 ---------------- 8 files changed, 116 deletions(-) diff --git a/build.zig.zon b/build.zig.zon index 0e5fdfb1f..992284bf7 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -37,11 +37,6 @@ .hash = "N-V-__8AAB9YCQBaZtQjJZVndk-g_GDIK-NTZcIa63bFp9yZ", .lazy = true, }, - .ziglyph = .{ - .url = "https://deps.files.ghostty.org/ziglyph-b89d43d1e3fb01b6074bc1f7fc980324b04d26a5.tar.gz", - .hash = "ziglyph-0.11.2-AAAAAHPtHwB4Mbzn1KvOV7Wpjo82NYEc_v0WC8oCLrkf", - .lazy = true, - }, .uucode = .{ .url = "https://github.com/jacobsandlund/uucode/archive/190706c6b56f0842d29778007f74f7d3d1335fc5.tar.gz", .hash = "uucode-0.1.0-ZZjBPpAFQABNCvd9cVPBg4I7233Ays-NWfWphPNqGbyE", diff --git a/build.zig.zon.json b/build.zig.zon.json index 6e8ea3acc..83625f765 100644 --- a/build.zig.zon.json +++ b/build.zig.zon.json @@ -169,11 +169,6 @@ "url": "git+https://github.com/TUSF/zigimg#31268548fe3276c0e95f318a6c0d2ab10565b58d", "hash": "sha256-oblfr2FIzuqq0FLo/RrzCwUX1NJJuT53EwD3nP3KwN0=" }, - "ziglyph-0.11.2-AAAAAHPtHwB4Mbzn1KvOV7Wpjo82NYEc_v0WC8oCLrkf": { - "name": "ziglyph", - "url": "https://deps.files.ghostty.org/ziglyph-b89d43d1e3fb01b6074bc1f7fc980324b04d26a5.tar.gz", - "hash": "sha256-cse98+Ft8QUjX+P88yyYfaxJOJGQ9M7Ymw7jFxDz89k=" - }, "N-V-__8AAB0eQwD-0MdOEBmz7intriBReIsIDNlukNVoNu6o": { "name": "zlib", "url": "https://deps.files.ghostty.org/zlib-1220fed0c74e1019b3ee29edae2051788b080cd96e90d56836eea857b0b966742efb.tar.gz", diff --git a/build.zig.zon.nix b/build.zig.zon.nix index 4e0d2bede..abd5a37c5 100644 --- a/build.zig.zon.nix +++ b/build.zig.zon.nix @@ -354,14 +354,6 @@ in hash = "sha256-oblfr2FIzuqq0FLo/RrzCwUX1NJJuT53EwD3nP3KwN0="; }; } - { - name = "ziglyph-0.11.2-AAAAAHPtHwB4Mbzn1KvOV7Wpjo82NYEc_v0WC8oCLrkf"; - path = fetchZigArtifact { - name = "ziglyph"; - url = "https://deps.files.ghostty.org/ziglyph-b89d43d1e3fb01b6074bc1f7fc980324b04d26a5.tar.gz"; - hash = "sha256-cse98+Ft8QUjX+P88yyYfaxJOJGQ9M7Ymw7jFxDz89k="; - }; - } { name = "N-V-__8AAB0eQwD-0MdOEBmz7intriBReIsIDNlukNVoNu6o"; path = fetchZigArtifact { diff --git a/build.zig.zon.txt b/build.zig.zon.txt index 4d7e350a0..453a12347 100644 --- a/build.zig.zon.txt +++ b/build.zig.zon.txt @@ -25,7 +25,6 @@ https://deps.files.ghostty.org/wayland-9cb3d7aa9dc995ffafdbdef7ab86a949d0fb0e7d. https://deps.files.ghostty.org/wayland-protocols-258d8f88f2c8c25a830c6316f87d23ce1a0f12d9.tar.gz https://deps.files.ghostty.org/wuffs-122037b39d577ec2db3fd7b2130e7b69ef6cc1807d68607a7c232c958315d381b5cd.tar.gz https://deps.files.ghostty.org/zig_js-12205a66d423259567764fa0fc60c82be35365c21aeb76c5a7dc99698401f4f6fefc.tar.gz -https://deps.files.ghostty.org/ziglyph-b89d43d1e3fb01b6074bc1f7fc980324b04d26a5.tar.gz https://deps.files.ghostty.org/zlib-1220fed0c74e1019b3ee29edae2051788b080cd96e90d56836eea857b0b966742efb.tar.gz https://github.com/ghostty-org/zig-gobject/releases/download/2025-09-20-20-1/ghostty-gobject-2025-09-20-20-1.tar.zst https://github.com/jacobsandlund/uucode/archive/190706c6b56f0842d29778007f74f7d3d1335fc5.tar.gz diff --git a/flatpak/zig-packages.json b/flatpak/zig-packages.json index a6eaf846c..beea0dc04 100644 --- a/flatpak/zig-packages.json +++ b/flatpak/zig-packages.json @@ -203,12 +203,6 @@ "commit": "31268548fe3276c0e95f318a6c0d2ab10565b58d", "dest": "vendor/p/zigimg-0.1.0-lly-O6N2EABOxke8dqyzCwhtUCAafqP35zC7wsZ4Ddxj" }, - { - "type": "archive", - "url": "https://deps.files.ghostty.org/ziglyph-b89d43d1e3fb01b6074bc1f7fc980324b04d26a5.tar.gz", - "dest": "vendor/p/ziglyph-0.11.2-AAAAAHPtHwB4Mbzn1KvOV7Wpjo82NYEc_v0WC8oCLrkf", - "sha256": "72c7bdf3e16df105235fe3fcf32c987dac49389190f4ced89b0ee31710f3f3d9" - }, { "type": "archive", "url": "https://deps.files.ghostty.org/zlib-1220fed0c74e1019b3ee29edae2051788b080cd96e90d56836eea857b0b966742efb.tar.gz", diff --git a/src/build/SharedDeps.zig b/src/build/SharedDeps.zig index 7c0619b5e..9461d48b7 100644 --- a/src/build/SharedDeps.zig +++ b/src/build/SharedDeps.zig @@ -403,14 +403,6 @@ pub fn add( })) |dep| { step.root_module.addImport("z2d", dep.module("z2d")); } - if (step.kind == .@"test") { - if (b.lazyDependency("ziglyph", .{ - .target = step.root_module.resolved_target.?, - .optimize = step.root_module.optimize.?, - })) |dep| { - step.root_module.addImport("ziglyph", dep.module("ziglyph")); - } - } if (b.lazyDependency("uucode", .{ .target = target, .optimize = optimize, diff --git a/src/unicode/props_uucode.zig b/src/unicode/props_uucode.zig index 71edac4fb..ba0511ea4 100644 --- a/src/unicode/props_uucode.zig +++ b/src/unicode/props_uucode.zig @@ -114,60 +114,3 @@ test "unicode props: tables match uucode" { } } } - -test "unicode props: tables match ziglyph" { - if (std.valgrind.runningOnValgrind() > 0) return error.SkipZigTest; - - const testing = std.testing; - const table = @import("props_table.zig").table; - const ziglyph = @import("ziglyph"); - - const min = 0xFF + 1; // start outside ascii - const max = std.math.maxInt(u21) + 1; - for (min..max) |cp| { - const t = table.get(@intCast(cp)); - const zg = @min(2, @max(0, ziglyph.display_width.codePointWidth(@intCast(cp), .half))); - if (t.width != zg) { - - // Known exceptions - if (cp == 0x0897) continue; // non-spacing mark (t = 0) - if (cp == 0x2065) continue; // unassigned (t = 1) - if (cp >= 0x2630 and cp <= 0x2637) continue; // east asian width is wide (t = 2) - if (cp >= 0x268A and cp <= 0x268F) continue; // east asian width is wide (t = 2) - if (cp >= 0x2FFC and cp <= 0x2FFF) continue; // east asian width is wide (t = 2) - if (cp == 0x31E4 or cp == 0x31E5) continue; // east asian width is wide (t = 2) - if (cp == 0x31EF) continue; // east asian width is wide (t = 2) - if (cp >= 0x4DC0 and cp <= 0x4DFF) continue; // east asian width is wide (t = 2) - if (cp >= 0xFFF0 and cp <= 0xFFF8) continue; // unassigned (t = 1) - if (cp >= 0xFFF0 and cp <= 0xFFF8) continue; // unassigned (t = 1) - if (cp >= 0x10D69 and cp <= 0x10D6D) continue; // non-spacing mark, despite being east asian width normal (t = 0) - if (cp >= 0x10EFC and cp <= 0x10EFF) continue; // non-spacing mark, despite being east asian width normal (t = 0) - if (cp >= 0x113BB and cp <= 0x113C0) continue; // non-spacing mark, despite being east asian width normal (t = 0) - if (cp == 0x113CE) continue; // non-spacing mark, despite being east asian width normal (t = 0) - if (cp == 0x113D0) continue; // non-spacing mark, despite being east asian width normal (t = 0) - if (cp == 0x113D2) continue; // non-spacing mark, despite being east asian width normal (t = 0) - if (cp == 0x113E1) continue; // non-spacing mark, despite being east asian width normal (t = 0) - if (cp == 0x113E2) continue; // non-spacing mark, despite being east asian width normal (t = 0) - if (cp == 0x1171E) continue; // mark spacing combining (t = 1) - if (cp == 0x11F5A) continue; // non-spacing mark, despite being east asian width normal (t = 0) - if (cp == 0x1611E) continue; // non-spacing mark, despite being east asian width normal (t = 0) - if (cp == 0x1611F) continue; // non-spacing mark, despite being east asian width normal (t = 0) - if (cp >= 0x16120 and cp <= 0x1612F) continue; // non-spacing mark, despite being east asian width normal (t = 0) - if (cp >= 0xE0000 and cp <= 0xE0FFF) continue; // ziglyph ignores these with 0, but many are unassigned (t = 1) - if (cp == 0x18CFF) continue; // east asian width is wide (t = 2) - if (cp >= 0x1D300 and cp <= 0x1D376) continue; // east asian width is wide (t = 2) - if (cp == 0x1E5EE) continue; // non-spacing mark, despite being east asian width normal (t = 0) - if (cp == 0x1E5EF) continue; // non-spacing mark, despite being east asian width normal (t = 0) - if (cp == 0x1FA89) continue; // east asian width is wide (t = 2) - if (cp == 0x1FA8F) continue; // east asian width is wide (t = 2) - if (cp == 0x1FABE) continue; // east asian width is wide (t = 2) - if (cp == 0x1FAC6) continue; // east asian width is wide (t = 2) - if (cp == 0x1FADC) continue; // east asian width is wide (t = 2) - if (cp == 0x1FADF) continue; // east asian width is wide (t = 2) - if (cp == 0x1FAE9) continue; // east asian width is wide (t = 2) - - std.log.warn("mismatch cp=U+{x} t={} zg={}", .{ cp, t.width, zg }); - try testing.expect(false); - } - } -} diff --git a/src/unicode/symbols_uucode.zig b/src/unicode/symbols_uucode.zig index 985ed1380..3da019e81 100644 --- a/src/unicode/symbols_uucode.zig +++ b/src/unicode/symbols_uucode.zig @@ -59,29 +59,3 @@ test "unicode symbols: tables match uucode" { } } } - -test "unicode symbols: tables match ziglyph" { - if (std.valgrind.runningOnValgrind() > 0) return error.SkipZigTest; - - const testing = std.testing; - const table = @import("symbols_table.zig").table; - const ziglyph = @import("ziglyph"); - - for (0..std.math.maxInt(u21)) |cp_usize| { - const cp: u21 = @intCast(cp_usize); - const t = table.get(cp); - const zg = ziglyph.general_category.isPrivateUse(cp) or - ziglyph.blocks.isDingbats(cp) or - ziglyph.blocks.isEmoticons(cp) or - ziglyph.blocks.isMiscellaneousSymbols(cp) or - ziglyph.blocks.isEnclosedAlphanumerics(cp) or - ziglyph.blocks.isEnclosedAlphanumericSupplement(cp) or - ziglyph.blocks.isMiscellaneousSymbolsAndPictographs(cp) or - ziglyph.blocks.isTransportAndMapSymbols(cp); - - if (t != zg) { - std.log.warn("mismatch cp=U+{x} t={} zg={}", .{ cp, t, zg }); - try testing.expect(false); - } - } -}