Mold 3.0 komposiitori väljaanne, mida arendab LLVM lld arendaja

Väljaande Mold 3.0, mida saab kasutada kiirema ja läbipaistvama asendajana GNU linker'ile Linuxi süsteemides, on nüüd avaldatud. Projekti arendab Rui Ueyama, LLVM lld linkeri autor. Moldi peamine omadus on väga kõrge objekti failide sidumise kiirus, mis ületab oluliselt GNU gold ja LLVM lld linkereid (sidumine Moldis toimub kiirusel, mis on vaid kaks korda aeglasem kui lihtne failide kopeerimine utiliidiga cp). Kood on kirjutatud Rusti keeles ja jagatakse MIT litsentsi alusel.

Komponeerimise aega vähendavad meetodid võimaldavad märkimisväärselt parandada suuremate projektide arenduse mugavust, vähendades ootamist täidetavate failide genereerimise protsessis, kui tehakse koodimuutusi ja testitakse. Moldi loomise motiiviks oli ärritus igakordse komponeerimise lõpetamist ootamisest pärast iga koodimuutust, samuti olemasolevate komponeerijate madal efektiivsus palju tuumadega süsteemides ning soov proovida põhjalikult erinevat sidumise arhitektuuri, vältides samal ajal liiga keeruliste mudelite, nagu inkrementaalne komponeerimine, kasutamist.

Moldis saavutatakse kõrge täitmisvõime suurt hulka kompilatori ettevalmistatud objekti faile sisaldava täidetava faili koostamisel kiiremate algoritmide kasutamise, saadaval olevate CPU tuumade vaheliste toimingute aktiivse paralleelimise ja tõhusamate andmestruktuuride rakendamise kaudu. Näiteks on Moldis kasutusele võetud intensiivsete arvutuste samaaegne täitmine failide kopeerimisega, objekti failide eellaadimine mällu, kiirete rippude tabelite kasutamine sümbolite lahendamiseks, liikumise tabelite skaneerimine eraldi lõimes ning eri failidesse koondatud sektsioonide duplikaatide elimineerimine.

Mold 3.0 harbinger on koodibaasi ümberkirjutamine C++ (C++20) keelest Rusti keelde. Mold 3.0 saab kasutada transparantse asendusena Mold 2.42.1-le, viimasele väljaandele C++ keeles, ning toetab kõiki varem saadaval olnud valikuid ja sihtaarkhitektuure. Üleminek Rustile on võimaldanud projekti kaitsta potentsiaalsete probleemide eest rikutud objektifailide töötlemisel - olukordades, kus C++ versioon lõpetas töö mälupiiridest väljaulatuvate aladega, Rusti versioon lõpetab töö piiride kontrollimise etapis. Rusti teostuse jõudlus on võrreldav C++ versiooniga.

Lisaks Rosti migratsioonile oli peamine eesmärk versiooni 3.0 arendamisel suurendada ühilduvust GNU ld-ga ja valmistada projekt ette võimalusele kasutada seda vaikekompilaatorina Linuxi distributsioonides. Ehitus süsteem on asendatud CMake’ist Cargo’ga ning testimissüsteem ctest-ist on muudetud cargo test’iks. Ühest sõltuvusest, oneTBB raamatukogust, on loobutud.

Allikas: opennet.ru

Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid 🔥 Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster