Ang Mold 1.1 ay inilabas na, alamin ang balita ng modernong Linker na ito na higit sa GNU gold at LLVM

Ilang araw na ang nakakalipas ang paglabas ng bagong bersyon ng modernong Linker Mold 1.1 ay inihayag, na maaaring magamit bilang isang mas mabilis na transparent na kapalit para sa GNU linker sa mga Linux system.

Sa bagong bersyon na ito ng amag 1.1 ay isang bersyon na naglalaman ng mga bagong feature, pag-aayos ng bug, at pagpapahusay sa performance.

Tungkol sa Mould

Magkaroon ng amag Sinusuportahan ang lahat ng mga tampok ng GNU linker at ito ay may napakataas na pagganap, dahil ang mga link na ginagawa nito ay dalawang beses lamang mas mabagal kaysa sa simpleng pagkopya ng mga file gamit ang cp utility.

Sa ganitong paraan ang ang pagbabawas ng oras ng compilation ay makabuluhang nagpapabuti sa kaginhawahan ng pagbuo ng malalaking proyekto sa pamamagitan ng pagbabawas ng oras ng paghihintay sa executable na proseso ng pagbuo ng file kapag nagbabago ang pag-debug at pagsubok.

Ang motibasyon para sa paglikha ng Mould ay ang inis sa paghihintay na makumpleto ang link pagkatapos ng bawat pagbabago ng code, pati na rin ang mababang kahusayan ng mga umiiral na linker sa multicore system at ang pagnanais na subukan ang isang pangunahing naiibang arkitektura ng link nang hindi gumagamit ng hindi kinakailangang kumplikadong mga modelo tulad ng incremental linking.

Ang mataas na pagganap ng pag-link ng isang executable file mula sa isang malaking bilang ng mga compiler-prepared object file sa Mold ay nakakamit sa pamamagitan ng paggamit ng mas mabilis na mga algorithm, ang aktibong parallelization ng mga operasyon sa pagitan ng mga available na CPU core, at ang paggamit ng mga istruktura ng data na mas mahusay.

Hal Ang amag ay nagpapatupad ng isang pamamaraan upang magsagawa ng masinsinang mga kalkulasyon nang sabay-sabay sa pagkopya ng file, aktibong naglo-load ng mga object file sa memorya, gamit ang mabilis na hash table kapag nagre-resolve ng mga character, pag-scan ng mga talahanayan ng paglilipat sa isang hiwalay na stream at pag-deduplicate ng mga seksyon na paulit-ulit sa iba't ibang mga file.

Pangunahing novelties ng Mould 1.1

Sa bagong bersyon na ito ng Mold 1.1 na ipinakita, ito ay naka-highlight na ang suporta para sa pag-optimize ng yugto ng link (LTO, Link Time Optimization).

Ang mga pag-optimize ng LTO ay naiiba sa pamamagitan ng pagsasaalang-alang sa estado ng lahat ng mga file na kasangkot sa proseso ng pagbuo, habang ang mga tradisyonal na mode ng pag-optimize ay nag-i-optimize sa bawat file nang paisa-isa at hindi isinasaalang-alang ang mga kondisyon para sa mga function ng pagtawag na tinukoy sa iba pang mga file.

Dati, kapag na-encounter ang GCC o LLVM intermediate code (IR) na mga file, ang naaangkop na ld.bfd o ld.lld linker ay na-invoke, ngunit ngayon ay pinangangasiwaan ng Mold ang mga IR file nang mag-isa at ginagamit ang Linker plugin API, na ginagamit din sa GNU ld at GNU gold linkers. Ang bilis kapag pinagana ang LTO ay bahagyang mas mabilis kaysa sa iba pang mga linker, dahil karamihan sa oras ay ginugugol sa pag-optimize ng code, hindi sa pag-link.

Na-highlight din iyon idinagdag ang mga opsyon “–print-dependencies” at “–print-dependencies=full” pUpang makabuo ng impormasyon sa CSV format tungkol sa mga dependency sa pagitan ng mga input file, na maaaring, halimbawa, ay magamit upang suriin ang mga dahilan ng koneksyon kapag nagli-link ng ilang partikular na object file o habang nagtatrabaho upang mabawasan ang mga dependency sa pagitan ng mga file.

Ang isa pang pagbabago na kapansin-pansin mula sa bagong eversion ay ang suporta para sa RISC-V architecture (RV64) sa host at target na mga platform.

Bukod pa riyan, mahahanap din natin iyon nagdagdag ng opsyong “–emit-relocs” upang paganahin ang pagkopya ng mga seksyon ng paglilipat ng address mula sa mga input file hanggang sa mga huling file para sa karagdagang pag-optimize na mailalapat sa yugto ng post-link.

Sa iba pang mga pagbabago na namumukod-tangi:

  • Idinagdag ang opsyong “–shuffle-sections” upang i-randomize ang pagkakasunud-sunod ng mga seksyon bago ayusin ang kanilang mga address sa virtual address space.
  • Nagdagdag ng mga opsyon na “–warn-once” at “–warn-textrel”.
  • Inalis ang dependency sa libxxhash.

Sa wakas kung interesado kang malaman ang tungkol dito, maaari mong suriin ang mga detalye sa sumusunod na link.

Paano mag-install ng Mould?

Para sa mga interesadong makapagtrabaho sa Mold, maaari nilang makuha ang utility sa pamamagitan ng pag-download at pag-compile ng source code. Upang gawin ito, buksan lamang ang isang terminal at i-type ang sumusunod:

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

Upang malaman ang paggamit ng Mould, maaari kang sumangguni sa dokumentasyon sa link na ito


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.