gccrs ir pilnīga alternatīva Rust valodas ieviešana, izmantojot GCC
Nesen tika paziņots, ka projekts "gccrs" , kura mērķis ir nodrošināt saskarni Rust valodai ar GCC (GNU Compiler Collection), ir ceļā uz integrāciju GCC 13. FOSDEM izstrādātāju konferencē šī mēneša sākumā inženieris Artūrs Koens sniedza prezentāciju par gccrs, izklāstot pašreizējo darba stāvokli.
Tiem, kas nav pazīstami ar gccrs projektu, tā ir pilnībā alternatīva Rust valodas ieviešana GCC virsū, kuras mērķis ir pilnībā integrēties GNU rīku ķēdē.
Šī projekta izcelsme ir kopienas centieni pirms vairākiem gadiem, kad Rust vēl bija 0.9 versijā; Mozilla radītā valoda tika pakļauta tik daudzām izmaiņām, ka kopienas centieniem kļuva grūti panākt.
Tagad, kad valoda ir stabila, ir pienācis laiks izveidot alternatīvus kompilatorus:
“Sākts 2014. gadā (un atsākts 2019. gadā), darbs turpinās kopš 2020. gada, un mēs esam pielikuši daudz pūļu un daudz progresējuši. Mēs esam augšupielādējuši pirmo gccrs versiju GCC. Tātad nākamreiz, kad instalēsit GCC 13, tajā būs gccrs.
Varat to izmantot un sākt uzlauzt to, varat ziņot par problēmām, kad tas neizbēgami avarē un briesmīgi nomirst. Viena liela lieta, ko mēs darām, ir darbs pie tā, lai rustc testa komplekts darbotos,” sacīja Arturs Koens savā prezentācijā FOSDEM konferencē šā mēneša sākumā.
Mērķis joprojām ir arī veiksmīgi palaist rustc kompilatora testu komplektu. Pēc Koena teiktā, Rust GCC saskarne ir paredzēta arī vecākai Rust libcore versijai 1.49.
Gccrs projekta bieži uzdotajos jautājumos ir norādīts, ka visām LLVM būvēšanas tehnoloģijām, ko izmanto Rust, "trūkst dažu ar GCC saderīgu aizmugursistēmu, tāpēc gccrs ieviešana var aizpildīt nepilnības, lai tās varētu izmantot integrētā izstrādē ".
Tomēr ņemiet vērā, ka Rust-GCC kompilators (gccrs) joprojām ir ļoti agrīnā stadijā un to vēl nevar izmantot faktisko Rust programmu apkopošanai.
GCC komanda pagājušā gada jūlijā nobalsoja par gccrs integrācijas apstiprināšanu kā būvēšanas komplektu. Šī projekta nozīmīgums slēpjas tā nozīmīgumā Linux kodolam. Faktiski Linux kodols parasti tiek veidots, izmantojot GCC, taču plāni atļaut Rust valodu izmantot līdzās C kodola kodam atmiņas drošības apsvērumu dēļ tiek pastāvīgi virzīti uz priekšu.
Projekts "Rust for Linux" pagājušā gada oktobrī oficiāli apvienojās galvenajā Linux 6.1 Git kokā, padarot Rust par otro valodu, kas veltīta Linux izstrādei, pēc 31 gadu ilgas, tikai C balstītas izstrādes.
“Mēs vēlamies, lai gccrs būtu īsts Rust kompilators, nevis rotaļlietu projekts vai kaut kas tāds, kas apkopo valodu, kas izskatās pēc Rust, bet nav Rust; mēs patiešām cenšamies panākt, lai šī testa komplekta darbotos," viņš piebilda. Prezentācijas laikā Koens arī sacīja, ka, lai gan GCC 13 Rust interfeiss ir labi iesākts, joprojām ir daudz darāmā. Aizņemtā verifikācijas koda šobrīd acīmredzami nav, atbalsts iebūvētajiem un iekšējiem moduļiem joprojām turpinās, un svarīgais pagrieziena punkts Rust koda kompilēšanai operētājsistēmai Linux vēl nav sasniegts.
Atgādinām, ka Rust for Linux projekta mērķis ir ieviest jaunu sistēmas programmēšanas valodu Linux kodolā. Pēc ekspertu domām, Rust ir galvenā īpašība, kas padara to ļoti interesantu apsvērt kā otro valodu Linux kodolam: tā nodrošina, ka nerodas nedefinēta uzvedība (ar nosacījumu, ka nedrošais kods ir normāls).
Tas ietver kļūdu neesamību, piemēram, pēc brīvas lietošanas, dubultās brīvās darbības, datu sacīkstes utt. Saistītās debates ir par iespēju atteikties no C par labu Rust valodai. Bet Linuss Torvalds, Linux radītājs, teica, ka tas nav projekta Rust for Linux noteiktais mērķis.
Visbeidzot, ir vērts pieminēt, ka, lai gan gccrs saskarne tika apvienota gaidāmajā GCC 13 laidienā, tā vēl nav tādā stāvoklī, lai lielākā daļa Rust izstrādātāju to faktiski varētu izmantot kā alternatīvu Rust oficiālajam LLVM kompilatoram.
Tam nevajadzētu būt līdz nākamajam gadam, vismaz ar GCC 14.
Avots: https://fosdem.org/