Ruby'nin kuruluş anlaşması hep aynıydı: statik garantilerden vazgeç, metaprogramming kazan ve yorumlayıcının bedel olduğunu kabul et. Yukihiro "Matz" Matsumoto şimdi bu anlaşmanın diğer tarafını tutan bir derleyici yayımladı — ve sayılar küçümsenecek gibi değil.
GitHub'da MIT lisansıyla yayımlanan Spinel, Ruby kaynak kodunu tek başına çalışan yerel bir çalıştırılabilir dosyaya derliyor. Kodu libprism ile ayrıştırıyor, tüm program için tip çıkarımını sabit noktaya kadar yürütüyor, tek bir C dosyası üretiyor ve sistemin `cc` derleyicisine veriyor. Sonuç yalnızca libc ve libm'e ihtiyaç duyuyor: Ruby çalışma zamanı yok, açılışta yüklenen gem yok. Derleyicinin kendisi tek ve kendi kendine yeten bir C ikilisi — kabuk sarmalayıcı yok, zincirlenmiş yardımcı süreç yok.
Depodaki ölçüm tablosuna göre, 17 Eylül 2026'da 32 çekirdekli bir Linux makinesinde gcc 13.3 ile alınan sonuçlar şöyle: Spinel, 28 ölçümde `--yjit` ile çalıştırılan CRuby 4.0.4'e karşı yaklaşık 8,5 kat, düz yorumlayıcıya karşı ise yaklaşık 15,2 kat geometrik ortalama hız sunuyor. Mandelbrot 938 ms yerine 18 ms; ao_render ışın izleyicisi YJIT'li 611 ms yerine 70 ms. Derlenmiş bir ikili yaklaşık 0,8 ms'de açılıyor. Depo 3.651 testin ve 62 ölçümün geçtiğini bildiriyor.
Proje, bu sayıların nereden geldiği konusunda alışılmadık derecede dürüst. Özyinelemeli fib 44,6 kat hızlı görünüyor ve README nedeni açıkça söylüyor: çağrı ağacının tamamı bir sabitin saf fonksiyonu olduğu için C derleyicisi işin çoğunu derleme sırasında katlıyor. Dar kalan hücreler de adıyla anılıyor — satır okuma ve hash güncellemeleriyle sınırlı io_wordcount 3,1 kat; ayırma işlemiyle sınırlı csv_process ve gcbench.
Spinel hızını, bir şeyleri elinden aldığı yerden kazanıyor. Tipler tüm program boyunca çıkarıldığı için küçük ve değişmez sınıflar — en fazla sekiz skaler alan — yığında C struct'ına dönüşüp çöp toplayıcıyı tamamen atlayabiliyor; README, beş alanlı bir sınıftan bir milyon ayırmanın 85 ms'den 2 ms'ye indiğini aktarıyor. Kısa metotlar satır içine alınıyor, döngü boyunca değişmeyen `arr.length` dışarı taşınıyor, `a + b + c + d` gibi zincirler tek ayırmaya çöküyor. İş parçacıkları gerçek: işletim sistemi çalışanları üzerinde M:N zamanlayıcı, GVL yok, iş çalma var, yaklaşık 10 ms'lik kesme kuantumu var — ve JRuby'de olduğu gibi, senkronize edilmemiş ortak değişiklik bir veri yarışı.
Fatura ise bir sınırlama listesi olarak geliyor. `eval` yok, string alan `instance_eval`/`class_eval` yok. `method_missing` yok; çalışma anında hesaplanan adla `define_method` veya `send` yok — gerçek ad verildiğinde çalışıyor. UTF-8/ASCII dışında kodlama yok. Tamsayılar yerel sabit genişlikte; `--int-overflow` seçeneği istisna fırlatma, sessizce sarma veya Bignum'a yükseltme arasında seçim yaptırıyor.
Araç ekosistemi bir derleyicinin ötesine geçmiş. `spin new` proje iskeleti kuruyor, `spin add` bağımlılıkları bir paket dizininden çözüyor, `spin test` anlık görüntü testlerini CRuby'yi referans alarak çalıştırıyor. Paketler ikilinin içine derlenen kaynak ağaçları; yani çalışma anında yükleme ve eklenti derleme adımı yok. `spinel diff` aynı programı hem CRuby hem Spinel altında çalıştırıp farkı etiketliyor — compile-error, crash, output-diff, nondeterministic. Dinamik bir dil için yazılmış bir derleyicinin üretim kodunda güven kazanmadan önce ihtiyaç duyduğu tam olarak bu.
Taşınabilirlik ise dürüst sınır. Linux ve macOS destekli; BSD'nin çalışması bekleniyor ama CI'da değil; Windows demek WSL demek. Çalışma zamanı POSIX varsayımlarına yaslanıyor: pthreads, regexp motoru için `<sys/mman.h>`, GC kökleri için GCC'nin `__attribute__((cleanup))` özelliği, fiber bağlam geçişi için satır içi assembly.
Bunun bir oyuncak olmadığına dair işaretler şimdiden var. Komşu bir proje olan roundhouse, Rails uygulamalarını düz Ruby'ye dönüştürüyor; README, 37signals'ın Campfire uygulamasının Spinel altında kendi test paketini tamamen geçtiğini ve güncel Lobsters'ın derlenip bağlandığını bildiriyor.
Spinel, Ruby'nin yerine geçen bir damla-değiştir çözüm değil ve yazarı da bunu iddia etmiyor — README bir vaat yerine `docs/limitations.md` dosyasını gösteriyor. Ama Ruby kullanıcılarının otuz yıldır sorduğu soruya bir sayı koyuyor: derleyici tipleri bilseydi bu dil ne kadar hızlı olurdu? Alt kümeye sığan programlar için cevap, bir milisaniyenin altında açılan ve döngüde hiç yorumlayıcı bulunmayan yerel bir ikili.
Deponun commit etiketleri, bakımcının yapay zekâ destekli commit'lerinde bir AI ortak yazarını da açıkça belirtiyor. Ölçüm tablolarının yanında tuhaf duran bu ayrıntı, 2026'da bir dil implementasyonunun nasıl yazıldığına dair de bir şey söylüyor.




