Nix Otomatis Tangani Separuh Kebutuhan Debugger

Judul asli: Nix wrote half of my debugger

Mengapa Ini Penting

Membuktikan Nix bisa jadi fondasi tooling debugging deterministik tanpa infrastruktur tambahan.

Farid Zakaria membangun Rewind VM, debugger deterministik untuk Nix build, dan menemukan separuh fitur utamanya sudah disediakan oleh Nix secara gratis.

Farid Zakaria, dalam posting blognya 7 Oktober 2026, menjelaskan bagaimana Rewind VM — sebuah virtual machine deterministik yang memperlakukan setiap Nix build sebagai fungsi murni dari inputnya — ternyata tidak perlu banyak kode tambahan untuk menjadi debugger lengkap. Setiap fitur baru yang ia tambahkan, mulai dari source panel, stack frames, bookmarks, tab Compare, hingga thread lanes, hampir selalu menemukan bahwa bagian tersulit sudah dikerjakan oleh Nix.

Ia mencontohkan race condition klasik: dua thread menyetor ke satu rekening bank secara bersamaan. Pada laptop 16-core miliknya, saldo hilang di 396 dari 1.000 percobaan. Rewind VM memperturb jadwal thread untuk mereproduksi kondisi ini secara konsisten, lalu mempersempit titik kegagalan hingga satu langkah eksekusi — dalam kasus ini, step 3237 dari total run — hanya dalam 11 detik.

Kunci utamanya: Nix derivation sudah mendefinisikan seluruh input program (source, compiler, library, kernel, konfigurasi VM). Rewind tinggal merealisasikan closure tersebut, mengemasnya ke image erofs read-only, dan menjalankan VM di atasnya. ID setiap run adalah hash dari inputnya, mirip store path Nix. Reprodusibilitas dan distribusi — dua hal paling sulit dalam debugging — sudah menjadi sifat bawaan Nix.

Sumber

fzakaria.com — Baca artikel asli →