Seorang developer solo telah merilis Kefir, sebuah compiler C17/C23 independen yang mendemonstrasikan kemampuan teknis yang mengesankan namun menghadapi hambatan performa yang signifikan. Proyek ini merupakan pencapaian langka dalam pengembangan compiler, di mana satu orang telah membangun toolchain lengkap dari nol tanpa framework eksternal atau dukungan institusional.
Spesifikasi Compiler Kefir:
- Dukungan Standar: C17/C23 dengan ekstensi GNU C
- Platform Target: Linux (glibc & musl), FreeBSD, OpenBSD, NetBSD
- Arsitektur: x86_64 dengan System-V ABI
- Ukuran Kode: 144k baris (260k termasuk pengujian)
- Lisensi: GNU GPLv3 untuk compiler, BSD-3 untuk runtime
- Dukungan Debug: Informasi debug DWARF-5
- Fitur Optimisasi: IR berbasis SSA, mem2reg, constant folding, eliminasi dead code, function inlining
Pencapaian Teknis Bertemu Kenyataan
Compiler ini mengimplementasikan standar C modern dengan fitur-fitur seperti optimisasi berbasis SSA, dukungan debug DWARF-5, dan generasi kode position-independent. Compiler ini berhasil mengkompilasi proyek-proyek open-source besar termasuk GNU coreutils, Git, Nginx, dan PostgreSQL. Namun, developer secara terbuka mengakui masalah serius pada kecepatan kompilasi yang membuatnya tidak praktis untuk banyak penggunaan dunia nyata.
Masalah performa berasal dari keputusan arsitektural yang dibuat selama pengembangan. Compiler ini mempertahankan representasi intermediate berbasis stack warisan yang diterjemahkan ke bentuk SSA, menciptakan overhead yang tidak perlu. Selain itu, codebase mengandung algoritma yang tidak dioptimalkan dan abstraksi yang terlalu rumit yang memprioritaskan kecepatan pengembangan daripada efisiensi runtime.
SSA (Static Single Assignment) adalah bentuk representasi intermediate yang digunakan dalam compiler di mana setiap variabel ditetapkan tepat sekali, membuat optimisasi lebih mudah diimplementasikan.
Masalah Kinerja yang Diketahui:
- Kecepatan Kompilasi: Digambarkan sebagai "mengerikan" oleh pengembang
- Arsitektur: IR berbasis stack lama yang diterjemahkan ke SSA menciptakan overhead
- Penggunaan Memori: Kesulitan dengan array besar (crash pada array dengan 10 juta elemen)
- Generasi Kode: Lebih baik dari TCC namun jauh lebih lambat dibanding GCC / Clang
- Optimisasi: Mengandung algoritma O(n²) dan jalur kode yang tidak dioptimalkan
Respons Komunitas dan Potensi Pasar
Meskipun ada keterbatasan performa, developer dalam komunitas melihat nilai dalam proyek ini. Beberapa menyarankan bahwa ini bisa menarik bagi organisasi yang fokus pada keamanan yang menginginkan kontrol atas seluruh software supply chain mereka, atau developer yang mencari alternatif compiler yang lebih dapat diprediksi dan dipahami dibanding toolchain dominan.
Mungkin ada minat nyata pada compiler ini dari orang/perusahaan yang sangat menghargai prediktabilitas dan stabilitas, ingin mengontrol seluruh software supply chain mereka, atau hanya menginginkan compiler yang lebih cepat untuk debug build mereka.
Proyek ini juga menghadapi tantangan deployment praktis. Pengguna melaporkan masalah instalasi dan masalah kompatibilitas dengan konfigurasi sistem yang berbeda, menyoroti kompleksitas mendukung lingkungan Linux dan BSD yang beragam.
Proyek Open Source yang Tervalidasi:
- GNU coreutils dan binutils
- Server web: Nginx
- Kontrol versi: Git
- Jaringan: Curl, OpenSSL, OpenSSH, Wget
- Database: PostgreSQL
- Bahasa pemrograman: OCaml, Perl, Tcl
- Berhasil melakukan bootstrap dari kompiler host di semua platform yang didukung
Filosofi Pengembangan dan Prospek Masa Depan
Developer memperlakukan Kefir lebih sebagai proyek seni daripada alat produksi, mengakui bahwa pengembangan full-time akan memerlukan pendanaan khusus. 144.000 baris kode (tidak termasuk tes) merepresentasikan upaya solo selama bertahun-tahun, namun maintainer tetap realistis tentang keterbatasan dan posisi pasar compiler saat ini.
Meskipun Kefir mungkin tidak menantang compiler yang sudah mapan seperti GCC atau Clang dalam hal performa, ini mendemonstrasikan bahwa pengembangan compiler independen masih memungkinkan. Proyek ini berfungsi sebagai pencapaian teknis sekaligus pengingat akan kompleksitas luar biasa yang terlibat dalam menciptakan alat pengembangan yang siap produksi.
Referensi: Kefir: solo-developed full C17/C23 compiler with extensive validation