Mould 1.1 tashmë është lëshuar, mësoni lajmet për këtë Linker modern superior ndaj arit GNU dhe LLVM

Disa ditë më parë u njoftua lëshimi i versionit të ri të Linker Mold 1.1 modern, i cili mund të përdoret si një zëvendësim më i shpejtë transparent për lidhësin GNU në sistemet Linux.

Në këtë version të ri të mykut 1.1 është një version që përmban veçori të reja, rregullime të gabimeve dhe përmirësime të performancës.

Rreth mykut

Myk mbështet të gjitha tiparet e lidhjes GNU dhe ka një performancë shumë të lartë, pasi lidhjet që bën janë vetëm dy herë më të shpejta sesa thjesht kopjimi i skedarëve me programin cp.

Në këtë mënyrë ulja e kohës së përpilimit përmirëson ndjeshëm lehtësinë e zhvillimit të projekteve të mëdha duke reduktuar kohën e pritjes në procesin e gjenerimit të skedarëve të ekzekutueshëm gjatë korrigjimit dhe testimit të ndryshimeve.

Motivimi për krijimin e Mold ishte bezdisja e pritjes për përfundimin e lidhjes pas çdo ndryshimi të kodit, si dhe efikasiteti i ulët i lidhësve ekzistues në sistemet me shumë bërthama dhe dëshira për të testuar një arkitekturë lidhjesh thelbësisht të ndryshme pa përdorur modele të komplikuara të panevojshme, si lidhja në rritje.

Performanca e lartë e lidhjes së një skedari të ekzekutueshëm nga një numër i madh skedarësh objektesh të përgatitur nga përpiluesi në Mold arrihet përmes përdorimit të algoritmeve më të shpejta, paralelizimit aktiv të operacioneve midis bërthamave të disponueshme të CPU-së dhe përdorimit të strukturave të të dhënave më efikase.

P.sh. Mold zbaton një teknikë për të kryer llogaritjet intensive në të njëjtën kohë me kopjimin e skedarëve, ngarkimin në mënyrë proaktive të skedarëve të objektit në memorie, duke përdorur tabela hash të shpejtë kur zgjidhni karaktere, skanimi i tabelave të zhvendosjes në një transmetim të veçantë dhe heqja e seksioneve që përsëriten në skedarë të ndryshëm.

Risitë kryesore të Mold 1.1

Në këtë version të ri të Mold 1.1 që prezantohet, theksohet se mbështetje për optimizimin e fazës së lidhjes (LTO, Link Time Optimization).

Optimizimet LTO ndryshojnë duke marrë parasysh gjendjen e të gjithë skedarëve të përfshirë në procesin e ndërtimit, ndërsa mënyrat tradicionale të optimizimit optimizojnë çdo skedar individualisht dhe nuk marrin parasysh kushtet për thirrjen e funksioneve të përcaktuara në skedarë të tjerë.

Më parë, kur haseshin skedarë të kodit të ndërmjetëm (IR) të GCC ose LLVM, thirreshin lidhësit e duhur ld.bfd ose ld.lld, por tani Mold trajton vetë skedarët IR dhe përdor API-në e shtojcës Linker, e përdorur gjithashtu në GNU ld dhe Lidhës ari GNU. Shpejtësia kur aktivizohet LTO është vetëm pak më e shpejtë se lidhësit e tjerë, pasi pjesa më e madhe e kohës harxhohet duke optimizuar kodin, jo duke u lidhur.

Theksohet gjithashtu se opsionet e shtuara “–print-varësi” dhe “–print-varësi=plotë” pPër të gjeneruar informacion në format CSV në lidhje me varësitë ndërmjet skedarëve hyrës, të cilët, për shembull, mund të përdoren për të analizuar arsyet e lidhjes kur lidhni skedarë të caktuar objektesh ose gjatë punës për të minimizuar varësitë midis skedarëve.

Një tjetër ndryshim që bie në sy nga versioni i ri është se mbështetje për arkitekturën RISC-V (RV64) në platformat pritës dhe të synuar.

Përveç kësaj, ne mund ta gjejmë edhe atë shtoi opsionin “–emit-relocs” për të mundësuar kopjimin e seksioneve të zhvendosjes së adresave nga skedarët e hyrjes tek skedarët përfundimtarë për optimizime të mëtejshme që do të aplikohen në fazën e post-lidhjes.

Nga ndryshimet e tjera që bien në sy:

  • U shtua opsioni “–shuffle-sections” për të randomizuar rendin e seksioneve përpara se të rregulloni adresat e tyre në hapësirën e adresave virtuale.
  • U shtuan opsionet “–warn-once” dhe “–warn-textrel”.
  • U hoq varësia nga libxxhash.

Më në fund nëse jeni të interesuar të dini më shumë për të, ju mund të kontrolloni detajet në lidhja vijuese.

Si të instaloni Mould?

Për ata që janë të interesuar të jenë në gjendje të punojnë me Mold, ata mund ta marrin programin duke shkarkuar dhe përpiluar kodin burimor. Për ta bërë këtë, thjesht hapni një terminal dhe shkruani sa vijon:

git clone https://github.com/rui314/mold.git
cd mold
git checkout v1.1.1
make -j$(nproc) CXX=clang++
sudo make install

Për të ditur përdorimin e mykut, mund të konsultoheni me dokumentacionin në këtë lidhje.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.