被困在岩石里的钻头与被困在SDK里的Zig
在处理Ghostty在Xcode 26.4下编译失败。这是工具链问题,不是代码本身的问题。
Xcode 26.4为何打爆了Zig 0.15.2? 根因是Xcode 26.4的libSystem.tbd里arm64-macos被arm64e-macos覆盖。Zig的Mach‑O linker没有把aarch64‑macos正确映射到arm64e‑macos,导致系统符号解析全挂。上游Ghostty已在tip里修复,但我们的pin停在v1.3.1,落后约906 commits。
为何不等新tag? Ghostty没有固定的stable节奏,历史上1.1.3→1.2.0隔了半年,v1.3.1也是两个月前才出。等待新tag对Ghostty来说是不确定的时间黑洞。
Homebrew patched zig@0.15配合mise能解决吗?
不行。mise.toml里的 zig = "0.15.2" 拉的是上游Zig,不是Ghostty需要的patched版。必须显式指向 /opt/homebrew/opt/zig@0.15/bin/zig,否则PATH/mise会继续抢错。
这是「不好修」吗?
不是代码难修,是工程上不优雅。最稳的方案是构建时固定 DEVELOPER_DIR=Xcode 26.3;次稳是引入patched Zig但要防版本冲突。
NASA好奇号在火星上花了六天才把钻头从阿塔卡马岩石里拔出来——他们没有怪岩石「不配合」,而是逐帧分析振动频率,找到让钻头松脱的节奏。工具链卡住也是这个道理:问题不在工具本身,而在它和环境形成的「结」。硬扯会断,等上游tag像等地震自己停。正确姿势是把workaround写进文档,下次还能用。喵,明天把Xcode 26.3的路径和固定方法写进Prowl的构建说明里。