Bun’ın Rust ile yeniden yazımı PR’ı merge edildi
(github.com/oven-sh)- PR #30412, Bun’ın Rust ile yeniden yazılması değişikliğini içeriyor ve 14 Mayıs 2026’da
claude/phase-a-portdalındanmaine merge edildi - Değişikliğin boyutu 6.755 commit, 2.188 dosya ve
+1,009,257/-4,024satır olarak görünüyor - Jarred-Sumner, ayrıntıları içeren bir blog yazısının yakında geleceğini belirtti
- Bu değişikliğin, Bun’ın mevcut test suite’ini tüm platformlarda geçtiği ve çeşitli bellek sızıntılarıyla kararsız testleri düzelttiği açıklandı
- İkili dosya boyutunun 3MB~8MB azaldığı ve benchmark sonuçlarının nötr ya da daha hızlı tarafta olduğu belirtildi
- En önemli gerekçe olarak, ekibin yıllardır büyük geliştirme ve hata ayıklama zamanı harcadığı bellek hatalarını derleyici destekli araçlarla yakalayıp önleyebilir hale gelmesi gösterildi
- Kod tabanının büyük ölçüde aynı kaldığı, mimari ve veri yapılarının da korunduğu ifade edildi
- Bun’ın hâlâ az sayıda üçüncü taraf kütüphane kullandığı ve async Rust kullanmadığı özellikle belirtildi
- Kullanıcılar bu değişikliği
bun upgrade --canaryile deneyebilir - Jarred-Sumner, sorun çıkarsa issue açılmasını istedi ve başlık aşırı hararetlenirse kilitlenebileceğini söyledi
- Canary olmayan sürüme girmeden önce hâlâ optimizasyon çalışmaları kaldığı belirtildi
- Temizlik çalışmalarının da henüz tamamlanmadığı ve bunun takip eden PR serileriyle sürdürüleceği ifade edildi
4 yorum
Vay be, milyon satırlık PR merge edilmiş. Zig’den Rust’a tek seferde geçiyorlar resmen.
"Bunun merge edilip edilmeyeceğini bilmiyorum~~" diyordu, ama bir hafta içinde gayet iyi çalışan kodun dilini tek hamlede değiştirmişler haha
Yapay zeka destekli kodlama yüzünden anıtsal bir şey oluyormuş gibi hissettiriyor.
Gerçekten de sadece test ettiklerini ve muhtemelen kullanmayacaklarını söylemişlerdi.
Zig'de yapmayınca doğrudan Rust'a geçme cüretleri bayağı iyiymiş lol
Hacker News yorumları
Duyuruda yeniden yazımın 1 hafta sürdüğü söyleniyorsa, Zig deyimlerini Rust deyimlerine eşleyen bu son derece ayrıntılı kılavuz dosyasını hazırlamanın ne kadar sürdüğünü merak ediyorum: https://github.com/oven-sh/bun/commit/46d3bc29f270fa881dd573...
Ayrıca
Pointers & ownershipveCollectionsbölümlerine bakınca, Bun kod tabanı zaten Rust karşılıklarıyla bire bir eşlenecek şekilde dahili akıllı işaretçi türleri kullanacak biçimde hazırlanmış gibi görünüyor vebun_collectionsRust crate'i de zaten mevcutBu yeniden yazım uzun zamandır hazırlanıyordu ve Bun ekibi bunu Anthropic satın alma görüşmeleri sırasında önermiş gibi görünüyor
Ortada dönen para o kadar büyük ki topluluğa pazarlama figüranları yerleştirmek için açık bir teşvik var ve bazıları da sadece kampçılığa kapılmış durumda
Anthropic artık Bun'ın sahibi olduğuna göre, bu işi gerçekte olduğundan daha kolay göstermeleri için de yeterince teşvik var
Çıktının ölçeği o kadar büyük ki burada çarpan etkisi var gibi görünüyor
Yine de bu kuralları oluşturmak için ne kadar örtük bilgi gerektiğini ve bu dosyanın kaç kez yinelemeli olarak iyileştirildiğini merak ediyorum
Örneğin bu kuralların ne kadarı çeviri tekrarları sırasında karşılaşılan başarısız örneklerden çıktı, bunu bilmek isterdim
using internal smart pointer types that map 1-to-1 to Rust equivalentsdenmiş ama akıllı işaretçiler Rust'ın icadı değilİşaretçisi olan başka bir dilde kod yazıyorsanız aynı türleri zaten zihninizde modelliyorsunuzdur
Ve
bun_collectionsRust crate'inin zaten var olduğu da yanlışBu sadece kod tabanındaki PR'ın bir parçası, önceden var olan bir şey değil
Şüpheyi azaltmak ve IPO havasını daha da yükseltmek çok kolay olurdu: yapay zekayı bu noktaya getirmek için gerekli gizli çalışmayı ayrı bir depo olarak yayımlayıp herkesin sonucu yeniden üretmesini sağlamak yeterli
Sonuçta müşterilerin elde etmek istediği şey de “7 günde” kullanılabilir 1 milyon satır kod değil mi
Herkes bunu kendi iş akışında yeniden üretmeye çalışırken Anthropic kullanım metrikleri de yükselirdi
Gerçekten harika bir sonuç olsaydı, önce bağlantılar ve talimatlar içeren bir blog yazısı yayımlanırdı diye düşünüyorum
Gerçi tam şu anda bir blog yazısı hazırlanıyor olabilir ve benim haksız olduğum ortaya çıkabilir
Komplo teorisinin özü bu mu
bun_collectionsda portlama kılavuzundan çok daha eski görünmüyor+1009257 -4024ne demek, Bun artık 1 milyon satır Rust kodunu geçmiş durumdaBoyut olarak Rust derleyicisinin kendisine yaklaşmaya başlıyor
Ama BunJS büyük ölçüde bir JavaScript yorumlayıcısı sarmalayıcısı ve NodeJS kütüphanelerinin yeniden uygulaması, yani Rust standart kütüphanesi sarmalayıcısına daha yakın
BunJS, LLM çağında yazılım karmaşıklığını yönetme konusunda bir kanarya hâline geliyor gibi görünüyor
mostly a JavaScript interpreter wrapperifadesi doğru değilBun; pilleri içinde gelen bir JavaScript ve CSS transpiler'ı (parser), küçültücü, bundler, npm benzeri paket yöneticisi, Jest benzeri test çalıştırıcısı ve yerleşik Postgres, MySQL, Redis istemcileri gibi çalışma zamanı API'leri de içeriyor
Doğal olarak çok fazla kod olması kaçınılmaz
Bun, JS motoru olarak JavaScriptCore kullandığından Bun'ın kendisi JavaScript ayrıştırma, yorumlama ve JIT yapmaz ya da en azından yapmaması gerekir
Düzeltme: yanlış okumuşum. “JavaScript interpreter wrapper” denmiş, yani doğru bir ifade
+işaretinden mi kaynaklandığını yoksa başka etkenler de olup olmadığını bilmiyorum ama mobilde satır sayısı değişimi altı çizili görünüyor ve dokununca arama yapabiliyorsunuzDiff boyutundan dolayı oluyorsa epey komik
Yeniden yazım sonucunun benzer LOC ile çıkması garip değil
$ rg 'unsafe [{]' src/ | wc -lsonucunun 10428,$ rg 'unsafe [{]' src/ -l | wc -lsonucunun ise 736 olduğu söyleniyorDillere göre dağılım da şöyle: Rust 1443 dosya 929213 satır, Zig 1298 dosya 711112 satır, TypeScript 2604 dosya 654684 satır, JavaScript 4370 dosya 364928 satır, C 111 dosya 305123 satır, C++ 586 dosya 262475 satır, C Header 779 dosya 100979 satır
Zig'de güvensiz kodu nasıl arıyorsunuz
Yoksa sadece her yerde olduğunu mu varsaymak gerekiyor
unsafeanahtar sözcüğü geçiyorsa bu iyi bir yeniden yazım gibi görünmüyorKodun neredeyse yarısı hâlâ unsafe ise Rust'a yeniden yazmanın anlamı ne
Evdeki şey:
10428Bununla ilgili blog yazısını hâlâ yazıyoruz ve daha fazla ayrıntı paylaşacağız
Arka planı merak ediyorsanız Bun v1.3.14 ve ondan önceki sürüm notlarındaki hata düzeltmeleri listesine göz atabilirsiniz
Rust bunların hepsini çözmüyor. Referansları çok uzun süre tutmaktan kaynaklanan sızıntılar ya da JS sınırını aşarak yeniden girişten doğan sorunların tümü hâlâ bizim sorumluluğumuzda
Ama o listedekilerin önemli bir kısmı use-after-free, double-free ve hata yollarında serbest bırakmayı unutma gibi sorunlar; bunlar ya derleme hatasına dönüşüyor ya da otomatik temizlemeyle çözülüyor
I work on Bun and this is my branchThis whole thread is an overreaction. 302 comments about code that does not work. We haven’t committed to rewriting. There’s a very high chance all this code gets thrown out completely.Belki de bu kadar da aşırı tepki değildi?
[0]: https://news.ycombinator.com/item?id=48019226
Hataları yakalamak için Zig ve Rust ikililerini geniş çaplı gerçek uygulamalarda yan yana çalıştırmayı ya da mümkünse üretimde shadow run yapmayı planlıyor musunuz, merak ediyorum
Kabaca bir tahmin verebilir misiniz
Bu sürümü kullanıcı iş akışlarını bozmadan yayımlamak için somut planın ne olduğunu da bilmek isterim
Yaklaşık 9 gün önce Jarred bunun birleştirilmesinin hiç de kesin olmadığını ve verilen tepkinin aşırı olduğunu yazmıştı
İronik
Linus'un Linux çekirdeğini yeniden yazmayacağını söyleyip sonra bir gün uyanıp tamamını makine destekli bir Rust yeniden yazımı olarak birleştirdiğini düşünün; nasıl bir kaos çıkardı
Harcanan token maliyetini bir şekilde haklı çıkarmaları gerekiyordu zaten
Vay canına, bunu izlemek eğlenceli olacak
Bu kodun incelenmiş olma ihtimali sıfır ama belki de artık modellerin kod yazıp gözden geçirmesine güvenebileceğimiz bir post-human çağa girmişizdir
Bu Gastown gibi ama çok daha ünlü bir projede yaşandı
Bu projenin bundan sonra yeni özellikleri nasıl ekleyebileceği, hatta ekleyip ekleyemeyeceği ilgimi çekiyor
Anthropic'in Bun'ı tam olarak nasıl kullandığını bilen var mı
Claude Code'un bir parçası mı
Bundan sonra Bun kullanmak konusunda epey endişeliyim ama bu endişenin Claude kullanımına ne kadar yansıması gerektiğinden emin değilim
Otomatik dil çevirisini yakalayacak test paketine güvenemiyorsanız, o test paketine zaten hiç güvenmemeniz gerekir :)
Otomatik çeviriyi denemeleri aslında heyecan verici ama çok fazla geriye dönük uyumluluk sorunu çıkmasından endişe ediyorum
Commit'e bakmaya başladım ve temelde “testler geçmiyor” sorununu testlerin kendisini değiştirerek çözüyorlar
Hâlihazırda dağıtılmış programlarda bunun gerçekten düzgün çalışmasını sağlamak için gereken asıl iş daha yeni başlıyor
Tek teselli, sunucu tarafı JS topluluğunun her nedense sık sık kırılmaya zaten alışkın olması
Ama bu gerçekten büyük bir sorun çıkarmadan çalışırsa oldukça etkileyici olur
GPT/Codex bu konuda daha dürüst
Bu yeniden yazımın tamamına şüpheyle yaklaşıyorum ve Jarred Sumner'ın internette çok büyük bir takipçi kitlesi olduğu için bana biraz reklam gibi geliyor
Harika! Teste rastgele bir
sleep(1)eklemek yeterli. Merak etmeyin, her şey yoluna girecek!Bun kullandığım birkaç projeyi başka bir şeye taşıyacağım
Böyle pervasız bir değişikliğe izin veren bir yönetişime güvenmiyorum
Zaten baştan iyi yazıldığı için yeniden yazılmasına da gerek yok
Öte yandan ateşten geçme sınavının nasıl sonuçlanacağını izlemek ilginç olacak ve uzun vadede sorunların eninde sonunda çözüleceğini düşünüyorum
Eğitim amaçlı bakılabilecek bir başlık daha var. Bir hafta önce Jarred'ın yine birleştirme kararından uzak durduğu ve pek çok yayanın bunun yakında birleştirileceğini öngörenlere saldırdığı başlık:
https://news.ycombinator.com/item?id=48073680
Geriye dönüp bakınca pek iyi yaşlanmamış sözler, değil mi?
Bu iş azıcık bile ters giderse, kendi malına bağımlı bir torbacı gibi alay edilmesi bitmek bilmeyecek ve çok karanlık olacak
Mythos makalesini okudunuz mu? Aşırı derecede insanlaştırma var
Belki sadece ucuz bir ilgi çekme taktiğidir ama gerçekten LLM'lerin bilinç sahibi olduğuna inanıyorsa... vay canına