LLVM lld-ийн боловсруулсан хөгц 3.0 холбогчийг гаргах

Mold 3.0 холбогчийг гаргасан бөгөөд GNU холбогчийн оронд илүү хурдан, ил тод орлуулах боломжтой болсон. Linux-системүүд. Төслийг LLVM lld холбоос үүсгэгчийн зохиогч Руй Уеяма боловсруулж байна. Mold-ийн гол онцлог нь маш өндөр холболтын хурд бөгөөд GNU gold болон LLVM lld холбоос үүсгэгчдээс мэдэгдэхүйц давуу юм (Mold дээр холболт хийх нь cp хэрэгслээр файл хуулахаас хоёр дахин хурдан). Кодыг Rust хэл дээр бичиж, MIT лицензийн дагуу түгээдэг.

Холболтын хугацааг багасгах нь алдааг олж засварлах болон өөрчлөлтийг турших явцад гүйцэтгэгдэх файл үүсгэх үед хүлээх хугацааг багасгаснаар томоохон төслүүдийн хэрэглээг мэдэгдэхүйц сайжруулдаг. Хөгжүүлэлтийг бий болгох сэдэл нь кодын өөрчлөлт бүрийн дараа холболт дуусахыг хүлээх шаардлагатай болсон бухимдал, олон цөмт систем дээрх одоо байгаа холбогчдын муу гүйцэтгэл, инкрементал холболт гэх мэт хэт нарийн төвөгтэй загваруудыг ашиглахгүйгээр үндсээрээ өөр холболтын архитектурыг туршиж үзэх хүсэл эрмэлзлээс үүдэлтэй байв.

Mold нь илүү хурдан алгоритмуудыг ашиглах, боломжтой CPU цөмүүдийн хоорондох үйлдлүүдийг идэвхтэй зэрэгцээ болгох, илүү үр ашигтай өгөгдлийн бүтцийг ашиглах замаар олон тооны хөрвүүлэгчээр бэлтгэсэн объект файлуудаас гүйцэтгэгдэх файлуудыг хөрвүүлэх өндөр гүйцэтгэлд хүрдэг. Жишээлбэл, Mold нь файл хуулахтай зэрэгцэн эрчимтэй тооцоолол хийх, объект файлуудыг санах ой руу урьдчилан ачаалах, тэмдэгтийн нягтралд зориулж хурдан хэш хүснэгт ашиглах, тусдаа урсгал дахь нүүлгэн шилжүүлэлтийн хүснэгтүүдийг сканнердах, өөр өөр файлууд дээрх давхардсан нэгтгэсэн хэсгүүдийг арилгах аргыг хэрэгжүүлдэг.

Mold 3.0 салбар нь кодын санг C++ (C++20) хэлнээс Rust хэл рүү дахин бичдэгээрээ алдартай. Mold 3.0 хувилбарыг C++ хэлний сүүлийн хувилбар болох Mold 2.42.1 хувилбарын тунгалаг орлуулалт болгон ашиглаж болох бөгөөд өмнө нь боломжтой байсан бүх сонголтууд болон зорилтот архитектуруудыг дэмждэг. Rust руу шилжсэнээр эвдэрсэн объектын файлуудыг боловсруулах үед төслийг болзошгүй асуудлаас хамгаалах боломжтой болсон - C++ хувилбар нь хязгаараас гадуурх хандалтын улмаас гацсан тохиолдолд Rust хэрэгжилт нь хязгаарын шалгалтын шатанд зогсдог. Rust хэрэгжилтийн гүйцэтгэл нь C++ хувилбартай ижил түвшинд байна.

Rust руу шилжихээс гадна 3.0 салбарыг хөгжүүлэх гол зорилго нь GNU ld-тэй нийцтэй байдлыг сайжруулах, төслийг түгээлтийн анхдагч холбогч болгон ашиглахад бэлтгэх явдал байв. LinuxБүтээх системийг Cargo-оор, туршилтын системийг ctest-ийг орлож cargo test-ээр сольсон. oneTBB санг хамаарлуудаас хассан.

Эх сурвалж: opennet.ru

DDoS хамгаалалт, VPS VDS сервер бүхий сайтуудад найдвартай хостинг худалдаж аваарай 🔥 DDoS хамгаалалттай, VPS VDS сервертэй найдвартай вэбсайт хостинг худалдаж аваарай | ProHoster