
Valen müəllifi yeni dilləri C ABI olmadan Rust-a bağladı
Valen proqramlaşdırma dilinin müəllifi və keçmiş Google mühəndisi Evan Ovadia yeni dillərin Rust-ın generik kodunu birbaşa çağıra bildiyi eksperimental üsul təqdim edib: Rust kompilyatoru C ABI yerinə kitabxana kimi işlədilir.
Valen proqramlaşdırma dilinin tərtibatçısı Evan Ovadia yeni dili C tətbiqi ikili interfeysi (C ABI) vasitəsilə çağırışlar etmədən birbaşa Rust-a bağlayan eksperimental üsul dərc edib. The Register bu iş barədə 25 sentyabr 2026-cı ildə yazıb.
Keçmiş Google mühəndisi və Mojo-nun əsas töhfəçilərindən olan Ovadia layihəni 17 sentyabr 2026-cı ildə dərc olunan bloq yazısında təsvir edib. "Golden Spike" adını 1869-cu ildə Yuta ştatında 17,6 karatlıq qızıl mıxın ABŞ-ın ilk transkontinental dəmir yolunu tamamladığı mərasimdən götürüb.

C ABI niyə generiklərdə dayanır
Kitabxanalar adətən dillər arasında C kimi keçir: Rust crate-i funksiyalarını extern "C", tiplərini repr(C) kimi təqdim edir və digər dillər onlara xarici funksiya interfeysi ilə müraciət edir. Lakin C-də generiklər yoxdur, ona görə generik Rust funksiyasını kənardan çağırmaq mümkün deyil; Rust-ın özünün stabil ABI-si də yoxdur.
Ovadia Rust-dan daha sürətli və rahat alternativ istəyir, eyni zamanda özünün wgpu əsaslı qrafika kitabxanası da daxil olmaqla Rust kitabxanalarından istifadə etmək istəyirdi. "Əsas sual, həll edilməli əsas sirr budur: dillər arası generikləri necə edək?" yazıb.
İki kompilyator, bir rəqs
C bağlantıları yaratmaq əvəzinə Valen kompilyatoru artıq rustc-ni birbaşa idarə edir. Valen import-larını oxuyur, uyğun use bəyanatları olan kiçik Rust lib.rs faylı yaradır və onu rustc_driver::run_compiler-ə ötürür; bu da Rust kompilyatorunu kitabxana kimi işlədir.
Ən çətin hissə instansiyalaşdırmadır: hər iki tərəf generik olduğu üçün iki kompilyator funksiyanın hansı konkret versiyalarının çağırıldığını birlikdə tapmalıdır. Ovadia bunu "rəqs" adlandırır: rustc-yə Valen-də yazılmış funksiya lazım olanda Valen-in monomorfizatoru onu yaradır. Bunun üçün o, rustc-yə təxminən 100 sətir əlavə callback qatıb; bunlar qapalı, qeyri-stabil API-lərə əsaslanır və upstream-ə düşə bilməz, deyə xəbərdarlıq edir.
İlk render və çatışmayanlar
Sübut Valen proqramının Rust pəncərəsi açması, Rust trait-ini tətbiq edən Valen closure-unu generik Rust dövrünə ötürməsi və öz qrafika kitabxanasından bir kadr çəkməsi ilə gəldi. "Qızıl mıx yerinə vuruldu və transkontinental kompilyator doğuldu" deyə yazıb.
Növbəti hədəf sərhəddə yaddaş təhlükəsizliyidir. Valen-də kompilyasiya vaxtı işləyən, paylaşılan dəyişən istinadlara icazə verən group borrowing istifadə olunur; prototip artıq Rust sərhədində müəyyən borrow yoxlaması edir. İti künclər də var: struct-lar sərhəddə sıfır ölçülü olmalıdır, generational references söndürülüb və mövcud Rust tipi hələ linear elan edilə bilmir. Repozitoriya Apache 2.0 lisenziyası ilə dərc olunub və hələ prototipdir.
SiTech — AI ilə gücləndirilmiş veb hazırlanması
Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.