LLVM lld тарабынан иштелип чыккан Mold 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 менен шайкештикти жакшыртуу жана долбоорду дистрибуцияларда демейки шилтеме берүүчү катары колдонууга даярдоо болгон. LinuxBuild системасы Cargo менен алмаштырылды, ал эми тестирлөө системасы ctestтин ордуна cargo test менен алмаштырылды. oneTBB китепканасы көз карандылыктардан алынып салынды.

Source: opennet.ru

DDoS коргоосу, VPS VDS серверлери бар сайттар үчүн ишенимдүү хостинг сатып алыңыз 🔥 DDoS коргоосу, VPS VDS серверлери бар ишенимдүү веб-сайт хостингин сатып алыңыз | ProHoster