Nemrégiben a hír ezt megszakította az ÖET Irányító Bizottsága jóváhagyta a gccrs megvalósításának felvételét (GCC Rust) a Rust fordítóból a GCC magban.
Azzal GCC (GNU fordítógyűjtemény) már van egy backend a Rust számára, az Antoni Boucher által alapított rustc_codegen_gcc projekten keresztül. Még mindig folyamatban lévő munkaként írják le, de 2021 szeptemberében beolvadt a fő Rust tárolóba.
Azoknak, akik nem ismerik a nyelvet Rozsda, tudniuk kellene, mi vanAz e a biztonságos memóriakezelésre összpontosít és biztosítja az eszközöket a magas szintű párhuzamosság eléréséhez. A biztonságos memóriakezelés, amely kizárja az olyan hibákat, mint például a memóriaterület elérése annak felszabadítása után, a nullmutatók hivatkozásának megszüntetése és a pufferhatárok túlcsordulása, a Rustban a fordítási időben érhető el a hivatkozások ellenőrzésével, az objektumok tulajdonjogának nyomon követésével és az objektumok élettartamának (hatóköreinek) figyelembevételével. ), valamint a memóriaelérés helyességének értékelése a kódvégrehajtás során.
Rozsda egész számok túlcsordulás elleni védelmét is biztosítja, megköveteli a változók inicializálását használat előtt, jobban kezeli a szabványos könyvtár hibáit, alapértelmezés szerint érvényesíti a hivatkozások és a megváltoztathatatlan változók fogalmát.
Az interfész integrálása után a szabványos GCC-ben Rust programok lefordítására használható az LLVM buildekkel épített rustc fordító telepítése nélkül.
2020 novembere óta teljes munkaidőben a GCC Rust front-endjén dolgozom, köszönhetően az Open Source Security, Inc. és az Embecosmnak. Ennek eredményeként azért írok erre a levelezőlistára, hogy mielőbb visszajelzést kérjek az itteni kollektív tapasztalatokról, hogy megtervezhessem a kezelőfelület GCC-be való feltöltésének útját.
Ennek a projektnek a jelentősége az általában GCC-vel épített Linux számára, ahol a memóriabiztonsági okokból a Rust C-vel együtt történő használatát lehetővé tévő tervek folyamatosan haladnak előre.
Ez azt jelenti, hogy a Rust fordító, rustc, használható a GCC háttérrendszerrel, A háttérrendszer a kódgenerátor, amely több CPU-architektúrát támogat, mint az LLVM, a Rust szokásos háttérfordítója, bár vannak korlátozások, például a GCC javított verziójának szükségessége.
Az alternatíva egy teljes GCC-eszközlánc. 2021 januárjában az Open Source Security, Inc, a Linux rendszermag Grsecurity nevű megerősített verziójának gyártója, azt mondta, hogy finanszírozni fogja a GCC-interfész "nyilvános fejlesztését" a Rust számára, azzal az indokkal, hogy javítja a biztonságot. különböző fordítóprogramok keverésére.
Az én szemszögemből, mint vezető ebben a front-endben, jelenleg mi vagyunk erős fejlesztés alatt áll, így ez megfelelő mennyiségű kódforgatást jelent még, és nem látom, hogy ez megváltozna, amíg nem tudjuk sikeresen lefordítani a libcore box még idén. Bár szívesen látnám egymást beolvadt a GCC 13-ba, biztos akarok lenni abban, hogy ez a projekt sikeres lesz minden, és ez azt jelentheti, hogy vissza kell térni a következő kiadási ablakhoz hogy megbizonyosodjon arról, hogy ez kezelhető, hogy minőségi front-endet állítson elő közösen másoknak.
A cég idézett egy tanulmányt, amely bemutatja, hogy "miként csökkenthető egy futási környezet általános biztonsága Rust vagy más nyelven írt kód bevezetésével, ahol a fordítóprogram nem biztosítja ugyanazt a bináris szintű biztonságot".
A gccrs fejlesztőit arra biztatjuk, hogy kezdjenek el dolgozni az ellenőrző csapatokkal és a GCC Change Release a javítások véglegesítésére és jóváhagyására a GCC-hez hozzáadandó kód technikai követelményeinek teljesítése szempontjából.
Feltéve, hogy a gccrs fejlesztése a tervek szerint folytatódik, és nem azonosítanak előre nem látható problémákat, a Rust nyelvű front-end beépül a jövő év májusára tervezett GCC 13 kiadásba. A GCC 13 Rust implementációja béta állapotú lesz, alapértelmezés szerint még nincs engedélyezve.
Végül ha érdekel, hogy többet tudjon meg róla a projektről a részletekről itt tájékozódhat a következő link.
Remek, remélem a megvalósítás sok programozó számára hasznos lesz.