ast-grep, Tree-sitter Çekirdeğini Rust'a Taşıdı: Ayrıştırma %30, Uygulama %22 Hızlandı
ast-grep, Tree-sitter'in C çekirdeğini yapay zeka desteğiyle Rust'a taşıdı; ayrıştırma %30, uygulama genel hızı %22 arttı.
Yapısal kod arama aracı ast-grep, dayandığı Tree-sitter ayrıştırıcısının C çekirdeğini Rust ile yeniden yazdı; kodun büyük kısmını insan yönlendirmesinde ChatGPT üretti. Ölçümlere göre ham ayrıştırma verimi yaklaşık %30, ağaç gezinme yaklaşık %10 arttı; tam ast-grep iş akışında (ayrıştırma + gezinme) CPU süresi yaklaşık %22 kısaldı, ancak çoğu senaryoda tepe bellek kullanımı (RSS) yükseldi.
Kazanımların bir bedeli var: tam anahat testinde RSS yaklaşık %30 arttı. Buna karşın projenin en büyük stres testinde (TypeScript derleyicisinin test paketi) daha önce 1 GiB'ı aşan tepe bellek kullanımı artık yaklaşık 91 MiB'a indi.
Yeni Rust çekirdeği, üst akış Tree-sitter'in birebir yerine geçmiyor: mevcut gramerlerin çalışmaya devam etmesi için ikili arayüz (ABI) uyumluluğu korundu, ancak artımlı yeniden ayrıştırma ve WebAssembly gramer yükleme kaldırıldı; uyumluluk için hâlâ unsafe kod ve ham işaretçiler gerekiyor. Hedef, editörler değil, dosyanın tamamını tek seferde analiz eden yapay zeka kodlama ajanları.
Yeniden yazım süreci de dikkat çekici: sıfırdan tasarım yerine mevcut C testleri davranış referansı olarak kullanıldı, kod parça parça (yardımcı fonksiyonlar, ağaç depolama, lexer, ayrıştırıcı yığını, gezinme, ayrıştırıcı döngüsü) Rust'a taşındı; bu yaklaşım, yapay zeka destekli kodlamanın böylesine iddialı bir yeniden yazımı tek bir mühendis için mümkün kılmasıyla ortaya çıktı.
Bu sentez, kaynağından yapay zeka tarafından üretildi; insan editör ya da elle onay adımı yoktur. Nasıl çalışıyoruz