gccrs yra visiškai alternatyvus Rust kalbos įgyvendinimas per GCC
Neseniai buvo paskelbta, kad projektas „gccrs“ , kuriuo siekiama sukurti „Rust“ kalbos sąsają su GCC (GNU kompiliatorių kolekcija), bus integruotas į GCC 13. Šį mėnesį vykusioje FOSDEM kūrėjų konferencijoje inžinierius Arthuras Cohenas skaitė pranešimą apie „gccrs“, kuriame apžvelgė dabartinę darbo būklę.
Tiems, kurie nėra susipažinę su „gccrs“ projektu, tai yra visiškai alternatyvus „Rust“ kalbos įgyvendinimas GCC pagrindu, siekiant visiškai integruotis į GNU įrankių grandinę.
Šio projekto kilmė – bendruomenės pastangos prieš kelerius metus, kai Rust dar buvo 0.9 versija; Mozilla sukurta kalba patyrė tiek daug pokyčių, kad bendruomenės pastangoms pasivyti tapo sunku.
Dabar, kai kalba yra stabili, laikas sukurti alternatyvius kompiliatorius:
„Pradėta 2014 m. (ir atnaujinta 2019 m.), pastangos tęsiasi nuo 2020 m. ir mes padarėme daug pastangų ir padarėme didelę pažangą. Į GCC įkėlėme pirmąją gccrs versiją. Taigi kitą kartą įdiegus GCC 13, jame bus gccrs.
Galite jį naudoti ir galite pradėti įsilaužti, galite pranešti apie problemas, kai jis neišvengiamai sugenda ir siaubingai miršta. Vienas didelis dalykas, kurį darome, yra tai, kad „rustc“ bandymų rinkinys veiktų“, – sakė Arthuras Cohenas per savo pranešimą FOSDEM konferencijoje anksčiau šį mėnesį.
Taip pat tikslu išlieka gebėjimas sėkmingai paleisti „rustc“ kompiliatoriaus testų rinkinį. Pasak Coheno, „Rust“ GCC sąsaja taip pat skirta senesnei „Rust libcore“ 1.49 versijai.
„gccrs“ projekto DUK pažymima, kad visos „LLVM“ kūrimo technologijos, kurias naudoja „Rust“, „trūksta kai kurių su GCC suderinamų posistemių, todėl „gccrs“ įdiegimas gali užpildyti spragas, skirtas naudoti integruotame kūrime “.
Tačiau atminkite, kad Rust-GCC kompiliatorius (gccrs) vis dar yra labai ankstyvoje stadijoje ir dar negali būti naudojamas tikroms Rust programoms kompiliuoti.
Praėjusių metų liepą GCC komanda balsavo už gccrs integraciją kaip kūrimo rinkinį. Šio projekto svarba slypi jo reikšmėje „Linux“ branduoliui. Tiesą sakant, „Linux“ branduolys paprastai kuriamas naudojant GCC, tačiau planai leisti naudoti „Rust“ kalbą kartu su C branduolio kodui, siekiant atminties saugumo, nuolat vystomi.
Projektas „Rust for Linux“ praėjusį spalį oficialiai susijungė į pagrindinį „Linux 6.1 Git“ medį, todėl „Rust“ tapo antrąja kalba, skirta „Linux“ kūrimui po 31 metus trukusio išskirtinai C pagrindu sukurto kūrimo.
„Mes norime, kad gccrs būtų tikras „Rust“ kompiliatorius, o ne žaislų projektas ar kažkas, kas kompiliuoja kalbą, kuri atrodo kaip „Rust“, bet nėra „Rust“; mes tikrai stengiamės, kad šis bandymų rinkinys veiktų“, – pridūrė jis. Pristatymo metu Cohenas taip pat sakė, kad nors GCC 13 „Rust“ sąsaja yra gera pradžia, dar reikia daug nuveikti. Pasiskolinto patvirtinimo kodo šiuo metu akivaizdžiai nėra, įtaisytųjų ir vidinių modulių palaikymas vis dar tebevyksta, o svarbus „Rust“ kodo, skirto „Linux“, kompiliavimo etapas, dar nepasiektas.
Primename, kad „Rust for Linux“ projekto tikslas – įdiegti naują sisteminio programavimo kalbą į „Linux“ branduolį. Ekspertų teigimu, „Rust“ turi svarbią savybę, dėl kurios ją labai įdomu svarstyti kaip antrąją „Linux“ branduolio kalbą: ji užtikrina, kad nevyksta neapibrėžtas elgesys (jei nesaugaus kodas yra protingas).
Tai apima klaidų nebuvimą, pvz., nenaudojamą naudojimą, dvigubą atlaisvinimą, duomenų lenktynes ir kt. Susijusios diskusijos sukasi apie galimybę atsisakyti C rūdžių kalbos naudai. Tačiau Linusas Torvaldsas, „Linux“ kūrėjas, teigė, kad tai nėra projekto „Rust for Linux“ tikslas.
Galiausiai verta paminėti, kad nors „gccrs“ sąsaja buvo sujungta būsimoje „GCC 13“ versijoje, ji dar nėra tokioje būsenoje, kad dauguma „Rust“ kūrėjų galėtų ją naudoti kaip alternatyvą oficialiam „Rust“ LLVM kompiliatoriui.
Tai neturėtų būti iki kitų metų, bent jau su GCC 14.
Šaltinis: https://fosdem.org/