gccrs este o implementare alternativă completă a limbajului Rust față de GCC
Recent s-a anunțat că proiectul „gccrs” , care își propune să ofere o interfață pentru limbajul Rust către GCC (GNU Compiler Collection), este pe cale să fie integrat în GCC 13. La conferința dezvoltatorilor FOSDEM de la începutul acestei luni, inginerul Arthur Cohen a susținut o prezentare despre gccrs, subliniind stadiul actual al lucrărilor.
Pentru cei care nu sunt familiarizați cu proiectul gccrs, acesta este o implementare alternativă completă a limbajului Rust pe GCC, cu scopul de a fi complet integrat în lanțul de instrumente GNU.
Originea acestui proiect este un efort comunității în urmă cu câțiva ani, când Rust era încă la versiunea 0.9; limba creată de Mozilla a fost supusă atât de multe schimbări încât a devenit dificil pentru un efort comunitar să ajungă din urmă.
Acum că limbajul este stabil, este timpul să creați compilatoare alternative:
„Început în 2014 (și relansat în 2019), efortul continuă din 2020 și am făcut mult efort și multe progrese. Am încărcat prima versiune de gccrs în GCC. Deci data viitoare când instalați GCC 13, acesta va avea gccrs înăuntru.
Îl poți folosi și poți începe să-l piratezi, poți raporta problemele când inevitabil se prăbușește și moare îngrozitor. Un lucru important pe care îl facem este să lucrăm la ca suita de testare rustc să funcționeze”, a spus Arthur Cohen în timpul prezentării sale la conferința FOSDEM la începutul acestei luni.
Capacitatea de a rula cu succes suita de teste a compilatorului rustc rămâne, de asemenea, un obiectiv. Potrivit lui Cohen, interfața GCC a Rust vizează și versiunea mai veche a libcore-ului Rust, versiunea 1.49.
Întrebările frecvente ale proiectului gccrs menționează că toate tehnologiile de construire LLVM, pe care Rust le folosește, „duc lipsă de backend-uri compatibile cu GCC, astfel încât o implementare gccrs poate umple golurile pentru utilizarea în dezvoltarea integrată ”.
Rețineți, totuși, că compilatorul Rust-GCC (gccrs) este încă într-un stadiu foarte incipient și nu poate fi folosit încă pentru a compila programe Rust reale.
Echipa GCC a votat în iulie anul trecut pentru a aproba integrarea gccrs ca suită de compilare. Importanța acestui proiect constă în semnificația sa pentru kernelul Linux. De fapt, kernelul Linux este de obicei construit cu GCC, dar planurile de a permite utilizarea limbajului Rust alături de C pentru codul kernelului, din motive de siguranță a memoriei, progresează constant.
Proiectul „Rust for Linux” a fuzionat oficial în arborele principal Linux 6.1 Git în octombrie anul trecut, făcând din Rust al doilea limbaj dedicat dezvoltării Linux, după 31 de ani de dezvoltare exclusiv bazată pe C.
„Vrem ca gccrs să fie un adevărat compilator Rust și nu un proiect de jucărie sau ceva care compilează un limbaj care arată ca Rust, dar nu este Rust; chiar încercăm să facem această suită de teste să funcționeze”, a adăugat el. În timpul prezentării, Cohen a mai spus că, deși interfața Rust a lui GCC 13 a început bine, mai este mult de lucru. Codul de verificare împrumutat lipsește în mod evident în acest moment, suportul pentru modulele încorporate și intrinseci este încă în desfășurare, iar piatra de hotar importantă a compilării codului Rust pentru Linux încă nu a fost atins.
Ca o reamintire, proiectul Rust pentru Linux își propune să introducă un nou limbaj de programare de sistem în kernelul Linux. Potrivit experților, Rust are o proprietate cheie care îl face foarte interesant de luat în considerare ca un al doilea limbaj pentru kernelul Linux: asigură că nu apare niciun comportament nedefinit (cu condiția ca codul nesigur să fie logic).
Aceasta include absența erorilor, cum ar fi utilizarea după gratuită, liberări duble, curse de date etc. Dezbaterile înrudite se învârt în jurul posibilității de a renunța la C în favoarea limbajului Rust. Dar Linus Torvalds, creatorul Linux, a spus că acesta nu este scopul declarat al proiectului Rust pentru Linux.
În cele din urmă, merită menționat faptul că, deși interfața gccrs a fost îmbinată pentru viitoarea versiune GCC 13, aceasta nu este încă într-o stare în care majoritatea dezvoltatorilor Rust să o poată utiliza ca alternativă la compilatorul oficial LLVM al Rust.
Nu ar trebui să fie până anul viitor, cel puțin cu GCC 14 cel puțin.
Sursă: https://fosdem.org/