Se paljastui hiljattain gccrs-projekti, jonka tavoitteena on tarjota käyttöliittymä Rust-kielelle GCC:lle (GNU Compiler Collection), on tulossa integroitumaan GCC 13:een. Aiemmin tässä kuussa pidetyssä FOSDEM-kehittäjäkonferenssissa insinööri Arthur Cohen piti esityksen gccrs:stä ja hahmotteli työn nykytilaa.
Niiden, jotka eivät ole tietoisia gccrs-projektista, heidän pitäisi tietää, että tämä on täydellinen vaihtoehtoinen Rust-kielen toteutus GCC:n päälle tavoitteena tulla täysin GNU-työkaluketjuksi.
Tämän projektin alkuperä on yhteisön ponnistelu useita vuosia sitten, kun Rust oli vielä versiossa 0.9; Mozillan luomaan kieleen tehtiin niin monia muutoksia, että yhteisön pyrkimysten saavuttaminen oli vaikeaa.
Nyt kun kieli on vakaa, on aika luoda vaihtoehtoisia kääntäjiä:
”Vuonna 2014 alkanut (ja käynnistetty uudelleen vuonna 2019), työ on jatkunut vuodesta 2020 lähtien, ja olemme tehneet paljon työtä ja edistyneet paljon. Olemme ladanneet ensimmäisen gccrs-version GCC:n sisällä. Joten kun seuraavan kerran asennat GCC 13:n, siinä on gccrs.
Voit käyttää sitä ja voit aloittaa hakkeroinnin, voit raportoida ongelmista, kun se väistämättä kaatuu ja kuolee hirveästi. Yksi suuri asia, jota teemme, on työskennellä rustc-testisarjan toimivuuden parantamiseksi", sanoi Arthur Cohen esitelmässään FOSDEM-konferenssissa aiemmin tässä kuussa.
Kyky suorittaa rustc-kääntäjätestipaketti onnistuneesti on myös edelleen tavoite. Cohenin mukaan Rustin GCC-käyttöliittymä viittaa myös vanhempaan Rust libcore -versioon 1.49.
gccrs-projektin UKK huomauttaa, että kaikista Rustin käyttämistä LLVM-koontiteknologioista "puuttuu joitakin GCC-yhteensopivia taustaohjelmia, joten gccrs-toteutus voi täyttää aukot käytettäväksi sulautetussa kehityksessä".
Huomaa kuitenkin, että Rust-GCC-kääntäjä (gccrs) on vielä hyvin varhaisessa vaiheessa eikä sitä voida vielä käyttää varsinaisten Rust-ohjelmien kääntämiseen.
GCC-tiimi äänesti viime heinäkuussa gccrs-integraation hyväksymisestä rakennussarjana. Tämän projektin merkitys on sen tärkeys Linux-ytimelle. Itse asiassa Linux-ydin on yleensä rakennettu GCC:llä, mutta suunnitelmat sallia Rust-kielen käyttö C:n rinnalla ytimen koodissa muistin turvallisuussyistä etenevät tasaisesti.
"Rust for Linux" -projekti sulautui virallisesti Linux 6.1 Git -puuhun viime lokakuussa, jolloin Rustista tuli toinen Linux-kehitykseen omistettu kieli 31 vuoden yksinomaan C-pohjaisen kehityksen jälkeen.
"Haluamme, että gccrs on todellinen Rust-kääntäjä, ei leluprojekti tai jotain, joka kääntää kielen, joka näyttää Rustilta, mutta ei ole ruostetta; yritämme todella saada tämän testisarjan toimimaan", hän lisäsi. Esityksen aikana Cohen sanoi myös, että vaikka GCC 13:n Rust-käyttöliittymä on alkanut hyvin, työtä on vielä paljon tehtävänä. Lainattu vahvistuskoodi puuttuu tällä hetkellä selvästi, tuki sisäänrakennetuille ja sisäisille moduuleille on edelleen käynnissä, ja tärkeä virstanpylväs Rust-koodin kääntämisessä Linuxille on vielä saavuttamatta.
Muistutuksena projektista "Rust for Linux" pyrkii tuomaan uuden järjestelmäohjelmointikielen Linux-ytimeen. Asiantuntijoiden mukaan Rust-kielellä on keskeinen ominaisuus, joka tekee siitä erittäin mielenkiintoista pitää sitä Linux-ytimen toisena kielenä: se varmistaa, ettei määrittelemätöntä käyttäytymistä tapahdu (niin kauan kuin turvaton koodi on järkevä).
Tämä sisältää virheiden puuttumisen, kuten jälkivapaan käytön, tuplavapaat, datakilpailut jne. Aiheeseen liittyvät keskustelut pyörivät mahdollisuudesta luopua C:stä ruosteen kielen hyväksi. Mutta Linuxin luoja Linus Torvalds sanoi, että se ei ole Rust for Linux -projektin ilmoitettu tavoite.
lopuksi, On syytä mainita, että vaikka gccrs-käyttöliittymä yhdistettiin GCC 13:n seuraavalle versiolle, se ei ole vielä siinä tilassa, jossa useimmat Rust-kehittäjät voisivat todella käyttää sitä vaihtoehtona Rustin viralliselle LLVM-kääntäjälle.
Sen pitäisi olla vasta ensi vuonna, ainakin GCC 14:n kanssa.
lähde: https://fosdem.org/