Hasty Briefsbeta

双语

We Rewrote the Ghostty GTK Application

9 hours ago
  • Ghostty的GTK应用被重写,完全从Zig融入GObject类型系统,从而实现了更丰富的功能、更高的稳定性和可维护性。
  • 此次重写通过将Zig拥有的Config结构包装在引用计数的GObject中,解决了内存管理错误,简化了配置重载和GUI更新。
  • 广泛使用Valgrind来验证每一项更改,识别内存泄漏和未定义访问,尤其是在C API边界处。
  • Zig自身的代码库在C API边界处仅有一个泄漏和一个未定义访问,凸显了Zig的内存安全特性。
  • 重写使得能够使用现代GTK UI技术如Blueprint,从而更容易添加GUI功能,例如标题栏标签和动画铃铛边框。
  • Valgrind捕获了微妙的问题,如不正确的GObject WeakRef清理,这可能导致罕见的崩溃,强调了跨C API时工具的必要性。
  • 新的GTK应用现在是源代码的默认构建,并将包含在Ghostty 1.2版本中。