gccrs bude integrovaný do GCC 13

gccrs

gccrs je kompletná alternatívna implementácia jazyka Rust cez GCC

Nedávno bolo oznámené, že projekt „gccrs“ , ktorého cieľom je poskytnúť rozhranie jazyka Rust pre GCC (GNU Compiler Collection), je na dobrej ceste k integrácii do GCC 13. Na konferencii vývojárov FOSDEM začiatkom tohto mesiaca inžinier Arthur Cohen predniesol prezentáciu o gccrs, v ktorej načrtol súčasný stav práce.

Pre tých, ktorí nie sú oboznámení s projektom gccrs, ide o kompletnú alternatívnu implementáciu jazyka Rust nad GCC s cieľom plnej integrácie do balíka nástrojov GNU.

Pôvod tohto projektu je snaha komunity pred niekoľkými rokmi, keď bol Rust ešte vo verzii 0.9; jazyk vytvorený Mozillou prešiel toľkými zmenami, že bolo pre komunitu ťažké ich dohnať.

Teraz, keď je jazyk stabilný, je čas vytvoriť alternatívne kompilátory:

„Začalo sa v roku 2014 (a znovu spustené v roku 2019), úsilie pokračuje od roku 2020 a vynaložili sme veľa úsilia a veľký pokrok. Nahrali sme prvú verziu gccrs v rámci GCC. Takže pri ďalšej inštalácii GCC 13 bude mať vo vnútri gccrs.

Môžete ho použiť a môžete ho začať hackovať, môžete nahlásiť problémy, keď sa nevyhnutne zrúti a hrozne zomrie. Jedna veľká vec, ktorú robíme, je, že pracujeme na tom, aby testovacia sada rustc fungovala,“ povedal Arthur Cohen počas svojej prezentácie na konferencii FOSDEM začiatkom tohto mesiaca.

Cieľom zostáva aj schopnosť úspešne spustiť testovaciu sadu kompilátora rustc. Podľa Cohena je rozhranie GCC v Ruste tiež zamerané na staršiu verziu knižnice Rust libcore 1.49.

V často kladených otázkach projektu gccrs sa uvádza, že všetkým technológiám zostavovania LLVM, ktoré Rust používa, „chýbajú niektoré backendy kompatibilné s GCC, takže implementácia gccrs môže vyplniť medzery pre použitie v integrovanom vývoji “.

Všimnite si však, že kompilátor Rust-GCC (gccrs) je stále vo veľmi ranom štádiu a zatiaľ sa nedá použiť na kompiláciu skutočných programov Rust.

Tím GCC v júli minulého roka hlasoval za schválenie integrácie gccrs ako balíka na zostavenie. Dôležitosť tohto projektu spočíva v jeho význame pre jadro Linuxu. V skutočnosti sa jadro Linuxu zvyčajne zostavuje s GCC, ale plány na povolenie použitia jazyka Rust spolu s jazykom C pre kód jadra z dôvodov bezpečnosti pamäte neustále napredujú.

Projekt „Rust for Linux“ sa oficiálne zlúčil do hlavného stromu Linux 6.1 Git v októbri minulého roka, čím sa Rust stal druhým jazykom venovaným vývoju Linuxu po 31 rokoch vývoja výlučne na báze C.

„Chceme, aby bol gccrs skutočným kompilátorom Rustu a nie hračkárskym projektom alebo niečím, čo kompiluje jazyk, ktorý vyzerá ako Rust, ale nie je Rust; skutočne sa snažíme, aby táto testovacia sada fungovala,“ dodal. Počas prezentácie Cohen tiež povedal, že zatiaľ čo rozhranie Rust GCC 13 je na dobrej ceste, stále je potrebné vykonať veľa práce. Požičaný verifikačný kód momentálne zjavne chýba, podpora pre vstavané a vnútorné moduly stále prebieha a dôležitý míľnik kompilácie Rust kódu pre Linux ešte nebol dosiahnutý.

Pripomeňme si, že projekt Rust pre Linux má za cieľ zaviesť nový systémový programovací jazyk do jadra Linuxu. Podľa odborníkov má Rust kľúčovú vlastnosť, ktorá ho robí veľmi zaujímavým na zváženie ako druhého jazyka pre jadro Linuxu: zabezpečuje, že sa nevyskytne žiadne nedefinované správanie (za predpokladu, že nebezpečný kód je v poriadku).

To zahŕňa absenciu chýb, ako je použitie bez použitia, dvojité uvoľnenie, závody s dátami atď. Súvisiace diskusie sa točia okolo možnosti vypustiť C v prospech jazyka Rust. Linus Torvalds, tvorca Linuxu, však povedal, že to nie je stanovený cieľ projektu Rust for Linux.

Na záver stojí za zmienku, že hoci bolo rozhranie gccrs zlúčené pre pripravované vydanie GCC 13, ešte nie je v stave, kedy by ho väčšina vývojárov Rustu mohla skutočne používať ako alternatívu k oficiálnemu kompilátoru LLVM Rustu.

Malo by to byť až budúci rok, aspoň s GCC 14 minimálne.

Zdroj: https://fosdem.org/


Pridať ako preferovaný zdroj v Google