Hacker News Digest

Тег: #gobject

Постов: 1

We rewrote the Ghostty GTK application (mitchellh.com) 🔥 Горячее 💬 Длинная дискуссия

Ghostty GTK-часть переписана с нуля
Проект завершён: Linux/BSD-версия теперь полностью использует GObject из Zig и проверена Valgrind.

Что изменилось

  • Zig-структуры обёрнуты в GObject; память управляется счётчиками ссылок.
  • При обновлении конфига старый объект освобождается автоматически, когда исчезают ссылки.
  • Появились сигналы, свойства, действия GTK и современные UI-файлы Blueprint.
  • Новые виджеты добавляются быстрее (анимированная рамка, вкладки в заголовке и т.д.).

Valgrind Каждый коммит прогонялся под Valgrind.

  • Потребовался большой suppression-файл (в основном GTK/драйверы).
  • Найдены: утечка и неопределённое обращение в Zig-коде, ошибка WeakRef в GTK, которые иначе вызывали редкие краши.

by tosh • 14 августа 2025 г. в 21:19 • 410 points

ОригиналHN

#zig#gtk#gobject#valgrind#linux#bsd#memory-management

Комментарии (194)

  • Ghostty переписывает GUI на GTK/Zig, столкнувшись с проблемами GObject и управления памятью.
  • Участники обсуждают, что GTK навязывает свою ООП-модель и счётчики ссылок, что сложно сочетать с Zig/Rust.
  • Некоторые считают GTK не «родной» на Linux и предлагают Vala, Qt или собственный UI.
  • Пользователи жалуются на баги прокрутки, копирования, nano и отсутствие поиска.
  • Автор признаёт выбор GTK компромиссом ради кроссплатформенности и «родного» вида.