Lëshimi i kompozitorit Mold 3.0, i zhvilluar nga zhvilluesi LLVM lld

ËshtĂ« publikuar versioni 3.0 i lidhĂ«sit Mold, i cili mund tĂ« pĂ«rdoret si njĂ« zĂ«vendĂ«sim mĂ« tĂ« shpejtĂ« dhe transparent pĂ«r GNU linker nĂ« sistemet Linux. Projekti Ă«shtĂ« duke u zhvilluar nga Rui Ueyama, krijuesi i lidhĂ«sit LLVM lld. Karakteristika kyçe e Mold Ă«shtĂ« njĂ« shpejtĂ«si shumĂ« e lartĂ« e lidhjes sĂ« skedarĂ«ve objekt, e cila tejkalon dukshĂ«m lidhĂ«sit GNU gold dhe LLVM lld (lidhi nĂ« Mold bĂ«het me shpejtĂ«si, vetĂ«m dy herĂ« mĂ« ngadalĂ« se thjesht kopjimi i skedarĂ«ve me utilitarin cp). Kodi Ă«shtĂ« shkruar nĂ« gjuhĂ«n Rust dhe shpĂ«rndahet nĂ«n licencĂ«n MIT.

Reduktimi i kohës së lidhjes lejon një rritje të dukshme të lehtësisë së zhvillimit të projekteve të mëdha duke reduktuar pritjet gjatë krijimit të skedarëve ekzekutivë gjatë debugimit dhe testimit të ndryshimeve. Motivimi për krijimin e Mold-it lindi nga irritimi për pritjen e përfundimit të lidhjes pas çdo ndryshimi në kod, si dhe nga efikasiteti i ulët i lidhësve ekzistues në sisteme shumëbërthamëshe dhe dëshira për të provuar një arkitekturë tërësisht të re lidhjeje, pa resortuar në modele tepër komplekse, siç është lidhja inkrementale.

Performanca e lartë e lidhjes së skedarëve ekzekutivë nga një numër i madh skedarësh objekt të përgatitur nga kompileri në Mold arrihet duke përdorur algoritme më të shpejtë, duke zhvilluar operacione paralelel mes bërthamave CPU të disponueshme dhe duke përdorur struktura të dhënash më efikase. Për shembull, në Mold është implementuar teknika e ekzekutimit të llogaritjeve intensive njëkohësisht me kopjimin e skedarëve, ngarkimi parashikues i skedarëve objekt në memorie, përdorimi i tabelave të shpejta të hash-it për zgjidhjen e simboleve, skanimi i tabelave të lëvizjeve në një proces të veçantë dhe deduplikimi i seksioneve të përsëritura në skedarë të ndryshëm.

Dega Mold 3.0 Ă«shtĂ« e veçantĂ« pĂ«r rishkrimin e bazĂ«s sĂ« kodit nga C++ (C++20) nĂ« gjuhĂ«n Rust. Mold 3.0 mund tĂ« pĂ«rdoret si njĂ« zĂ«vendĂ«sim transparent pĂ«r Mold 2.42.1, lĂ«shimi mĂ« i fundit nĂ« gjuhĂ«n C++, dhe mbĂ«shtet tĂ« gjitha mundĂ«sitĂ« dhe arkitekturĂ«n e synuar qĂ« ishin nĂ« dispozicion mĂ« parĂ«. Kalimi nĂ« Rust siguroi projektin nga problemet e mundshme gjatĂ« trajtimit tĂ« skedarĂ«ve objekt tĂ« dĂ«mtuar — nĂ« situatat kur versioni nĂ« C++ pĂ«rfundonte me gabim pĂ«r shkak tĂ« qasjes nĂ« zona memorjeje jashtĂ« buferit, varianti nĂ« Rust ndalon punĂ«n nĂ« fazĂ«n e verifikimit tĂ« kufijve. Performanca e implementimit nĂ« Rust Ă«shtĂ« nĂ« tĂ« njĂ«jtin nivel me versionin nĂ« C++.

Përveç migrimit në Rust, qëllimi kryesor gjatë zhvillimit të degës 3.0 ishte të rritej kompatibiliteti me GNU ld dhe të përgatitej projekti për t'u përdorur si lidhës i paracaktuar në shpërndarjet Linux. Sistemi i ndërtimit është zëvendësuar nga CMake në Cargo, ndërsa sistemi i testeve nga ctest në cargo test. Biblioteka oneTBB është përjashtuar nga varësitë.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster