Kiunganishi cha Mold 3.0 kimetolewa na kinaweza kutumika kama mbadala wa haraka na wazi wa kiunganishi cha GNU. Linux-mifumo. Mradi huu unatengenezwa na Rui Ueyama, mwandishi wa kiunganishi cha LLVM lld. Kipengele muhimu cha Mold ni kasi yake ya juu sana ya kuunganisha, ikizidi kwa kiasi kikubwa viunganishi vya dhahabu vya GNU na LLVM lld (kuunganisha katika Mold ni nusu ya kasi kama kunakili faili kwa kutumia huduma ya cp). Msimbo umeandikwa katika Rust na kusambazwa chini ya leseni ya MIT.
Kupunguza muda wa kuunganisha huboresha kwa kiasi kikubwa utumiaji wa miradi mikubwa kwa kupunguza muda wa kusubiri wakati wa utengenezaji wa faili zinazoweza kutekelezwa huku ukirekebisha na kujaribu mabadiliko. Motisha ya kuunda Mold ilitokana na kuchanganyikiwa kwa kulazimika kusubiri kuunganisha kukamilika baada ya kila mabadiliko ya msimbo, utendaji duni wa viunganishi vilivyopo kwenye mifumo ya msingi mingi, na hamu ya kujaribu usanifu tofauti wa kuunganisha bila kutumia mifumo tata kupita kiasi kama vile kuunganisha kwa hatua kwa hatua.
Mold hupata utendaji wa hali ya juu katika kukusanya faili zinazoweza kutekelezwa kutoka kwa idadi kubwa ya faili za vitu vilivyoandaliwa kwa kutumia algoriti za haraka, kufanya shughuli sambamba katika viini vya CPU vinavyopatikana, na kutumia miundo ya data yenye ufanisi zaidi. Kwa mfano, Mold hutumia mbinu ya kufanya hesabu nzito wakati huo huo na kunakili faili, kupakia faili za vitu kabla ya matumizi kwenye kumbukumbu, kutumia majedwali ya haraka ya hash kwa ubora wa alama, kuchanganua majedwali ya uhamisho katika uzi tofauti, na kutoa nakala rudufu za sehemu zilizounganishwa katika faili tofauti.
Tawi la Mold 3.0 linajulikana kwa kuandika upya msimbo kutoka C++ (C++20) hadi Rust. Mold 3.0 inaweza kutumika kama mbadala wa uwazi wa Mold 2.42.1, toleo la mwisho la C++, na inasaidia chaguo zote zilizopatikana hapo awali na usanifu lengwa. Mpito hadi Rust umewezesha kulinda mradi kutokana na matatizo yanayoweza kutokea wakati wa kushughulikia faili za vitu vilivyoharibika—katika hali ambapo toleo la C++ lilianguka kutokana na ufikiaji nje ya mipaka, utekelezaji wa Rust unasimama katika hatua ya ukaguzi wa mipaka. Utendaji wa utekelezaji wa Rust unalingana na toleo la C++.
Mbali na kuhamia Rust, lengo kuu katika kutengeneza tawi la 3.0 lilikuwa kuboresha utangamano na GNU ld na kuandaa mradi kwa ajili ya matumizi kama kiunganishi chaguo-msingi katika usambazaji. LinuxMfumo wa ujenzi umebadilishwa na Cargo, na mfumo wa majaribio umebadilishwa na mtihani wa mizigo, ukichukua nafasi ya ctest. Maktaba ya oneTBB imeondolewa kwenye utegemezi.
Chanzo: opennet.ru
