gccrs on Rust keele täielik alternatiivne rakendus GCC kaudu
Hiljuti teatati, et projekt "gccrs" , mille eesmärk on pakkuda Rusti keelele liidest GCC-le (GNU Compiler Collection), on plaanis integreerida GCC 13-sse. Selle kuu alguses toimunud FOSDEM-i arendajate konverentsil pidas insener Arthur Cohen gccrs-i kohta ettekande, milles kirjeldas töö praegust seisu.
Neile, kes pole gccrs projektiga tuttavad, on see Rusti keele täielik alternatiivne implementatsioon GCC peal, eesmärgiga see täielikult integreerida GNU tööriistaketti.
See projekt sai alguse kogukonna jõupingutustest mitu aastat tagasi, kui Rust oli veel versioonis 0.9; Mozilla loodud keeles tehti nii palju muudatusi, et kogukonna jõupingutustel oli raske järele jõuda.
Nüüd, kui keel on stabiilne, on aeg luua alternatiivsed kompilaatorid:
„2014. aastal alustatud (ja 2019. aastal taaskäivitatud) pingutused on kestnud alates 2020. aastast ning oleme teinud palju pingutusi ja palju edusamme. Oleme GCC-s üles laadinud gccrs-i esimese versiooni. Nii et järgmine kord, kui installite GCC 13, on selle sees gccrs.
Saate seda kasutada ja võite hakata seda häkkima, saate teatada probleemidest, kui see paratamatult jookseb kokku ja sureb kohutavalt. Üks suur asi, mida teeme, on rustc-testikomplekti toimimise nimel töötamine, ”ütles Arthur Cohen selle kuu alguses toimunud FOSDEMi konverentsil peetud ettekandes.
Samuti on eesmärgiks rustc kompilaatori testimiskomplekti edukas käivitamine. Coheni sõnul on Rusti GCC liides suunatud ka vanemale Rust libcore versioonile 1.49.
gccrs-projekti KKK-des märgitakse, et kõigil Rusti kasutatavatel LLVM-i ehitustehnoloogiatel "puuduvad mõned GCC-ga ühilduvad taustaprogrammid, seega saab gccrs-i implementatsioon täita lüngad integreeritud arenduses kasutamiseks ".
Pange tähele, et Rust-GCC kompilaator (gccrs) on alles väga varajases staadiumis ja seda ei saa veel kasutada tegelike Rusti programmide kompileerimiseks.
GCC meeskond hääletas eelmise aasta juulis gccrs-i integreerimise poolt ehituskomplektina. Selle projekti olulisus seisneb selle olulisuses Linuxi kerneli jaoks. Tegelikult ehitatakse Linuxi kernel tavaliselt GCC-ga, kuid plaanid lubada mälu turvalisuse huvides kerneli koodis Rusti keelt C kõrval kasutada edenevad pidevalt.
Projekt "Rust for Linux" ühines mullu oktoobris ametlikult peamise Linux 6.1 Git puuga, muutes Rusti pärast 31 aastat ainult C-põhist arendust teiseks Linuxi arendamisele pühendatud keeleks.
„Me tahame, et gccrs oleks tõeline Rusti kompilaator, mitte mänguasjaprojekt või midagi, mis koostaks keele, mis näeb välja nagu Rust, kuid mis pole Rust; püüame tõesti selle testikomplekti tööle panna, ”lisas ta. Esitlusel ütles Cohen ka, et kuigi GCC 13 Rust liides on hästi käima läinud, on veel palju tööd teha. Laenatud kinnituskood puudub praegu silmatorkavalt, sisseehitatud ja sisemiste moodulite tugi on endiselt pooleli ning Linuxi jaoks Rust-koodi koostamise oluline verstapost on veel saavutamata.
Meeldetuletuseks, projekti Rust for Linux eesmärk on tutvustada Linuxi kernelis uut süsteemi programmeerimiskeelt. Ekspertide sõnul on Rustil oluline omadus, mis muudab selle Linuxi kerneli teise keelena kaalumise väga huvitavaks: see tagab, et ei esine määratlemata käitumist (eeldusel, et ohtlik kood on mõistlik).
See hõlmab selliste vigade puudumist nagu järelkasutus, topeltvabad, andmejooksud jne. Seotud vaidlused keerlevad C-st loobumise võimaluse üle rooste keele kasuks. Kuid Linuxi looja Linus Torvalds ütles, et see pole projekti Rust for Linux eesmärk.
Lõpuks väärib mainimist, et kuigi gccrs-liides ühendati eelseisva GCC 13 väljalaske jaoks, pole see veel seisundis, kus enamik Rusti arendajaid saaks seda tegelikult Rusti ametliku LLVM-kompilaatori alternatiivina kasutada.
See peaks toimuma alles järgmisel aastal, vähemalt GCC 14 puhul.
Allikas: https://fosdem.org/