Izdan je bil povezovalec Mold 3.0, ki ga je mogoče uporabiti kot hitrejšo in preglednejšo zamenjavo za povezovalec GNU. Linux-systems. Projekt razvija Rui Ueyama, avtor povezovalnika LLVM lld. Ključna značilnost Molda je izjemno visoka hitrost povezovanja, ki znatno prekaša povezovalnika GNU gold in LLVM lld (povezovanje v Moldu je le za polovico hitrejše od preprostega kopiranja datotek s pripomočkom cp). Koda je napisana v Rustu in distribuirana pod licenco MIT.
Zmanjšanje časa povezovanja znatno izboljša uporabnost velikih projektov z zmanjšanjem časa čakanja med ustvarjanjem izvedljivih datotek med odpravljanjem napak in testiranjem sprememb. Motivacija za ustvarjanje programa Mold je izhajala iz frustracije zaradi čakanja na dokončanje povezovanja po vsaki spremembi kode, slabe učinkovitosti obstoječih povezovalnikov na večjedrnih sistemih in želje po preizkusu bistveno drugačne arhitekture povezovanja, ne da bi se zatekli k preveč zapletenim modelom, kot je inkrementalno povezovanje.
Mold dosega visoko zmogljivost pri prevajanju izvedljivih datotek iz velikega števila objektnih datotek, ki jih pripravi prevajalnik, z uporabo hitrejših algoritmov, aktivnim vzporednim delovanjem med razpoložljivimi jedri procesorja in uporabo učinkovitejših podatkovnih struktur. Mold na primer izvaja tehniko za sočasno izvajanje intenzivnih izračunov s kopiranjem datotek, preventivnim nalaganjem objektnih datotek v pomnilnik, uporabo hitrih zgoščevalnih tabel za ločljivost simbolov, skeniranjem tabel premestitev v ločeni niti in odstranjevanjem podvojenih združenih odsekov v različnih datotekah.
Veja Mold 3.0 je znana po tem, da je prepisala kodno osnovo iz C++ (C++20) v Rust. Mold 3.0 se lahko uporablja kot prozorna zamenjava za Mold 2.42.1, zadnjo izdajo C++, in podpira vse prej razpoložljive možnosti in ciljne arhitekture. Prehod na Rust je omogočil zaščito projekta pred morebitnimi težavami pri ravnanju s poškodovanimi objektnimi datotekami – v primerih, ko se je različica C++ sesula zaradi dostopa zunaj meja, se implementacija Rust ustavi na stopnji preverjanja meja. Zmogljivost implementacije Rust je na ravni različice C++.
Poleg selitve na Rust je bil ključni cilj pri razvoju veje 3.0 izboljšanje združljivosti z GNU ld in priprava projekta za uporabo kot privzeti povezovalec v distribucijah. LinuxSistem za gradnjo je bil nadomeščen s Cargo, sistem za testiranje pa s Cargo test, ki je nadomestil ctest. Knjižnica oneTBB je bila odstranjena iz odvisnosti.
Vir: opennet.ru
