Mold 1.1 je već objavljen, saznajte vijesti o ovom modernom Linkeru superiornijem od GNU zlata i LLVM-a

Prije nekoliko dana najavljeno je izdavanje nove verzije modernog Linker Mold 1.1, koji se može koristiti kao brža transparentna zamjena za GNU linker na Linux sustavima.

U ovoj novoj verziji kalupa 1.1 je verzija koja sadrži nove značajke, ispravke pogrešaka i poboljšanja performansi.

O plijesni

Kalup podržava sve značajke GNU linkera i ima vrlo visoke performanse, budući da su veze koje stvara samo dvostruko sporije od jednostavnog kopiranja datoteka pomoću cp uslužnog programa.

Na ovaj način smanjenje vremena kompilacije značajno poboljšava praktičnost razvoja velikih projekata smanjenjem vremena čekanja u procesu generiranja izvršne datoteke prilikom otklanjanja pogrešaka i testiranja promjena.

Motivacija za stvaranje Moulda bila je neugodnost čekanja da se link dovrši nakon svake promjene koda, kao i niska učinkovitost postojećih povezivača u višejezgrenim sustavima i želja da se testira bitno drugačija arhitektura veze bez pribjegavanja nepotrebno kompliciranim modelima kao što je inkrementalno povezivanje.

Visoka izvedba povezivanja izvršne datoteke s velikim brojem objektnih datoteka koje je pripremio kompajler u Moldu postiže se korištenjem bržih algoritama, aktivnom paralelizacijom operacija između dostupnih CPU jezgri i učinkovitijom upotrebom struktura podataka.

Npr. Mould implementira tehniku ​​za istovremeno izvođenje intenzivnih proračuna s kopiranjem datoteka, proaktivnim učitavanjem objektnih datoteka u memoriju, korištenjem brzih hash tablica pri razrješavanju znakova, skeniranje tablica premještanja u zasebnom toku i uklanjanje duplikata odjeljaka koje se ponavljaju u različitim datotekama.

Glavne novosti Moulda 1.1

U ovoj novoj verziji Mold 1.1 koja je predstavljena, ističe se da podrška za optimizaciju faze veze (LTO, Optimizacija vremena veze).

LTO optimizacije se razlikuju uzimajući u obzir stanje svih datoteka uključenih u proces izgradnje, dok tradicionalni načini optimizacije optimiziraju svaku datoteku pojedinačno i ne uzimaju u obzir uvjete za pozivanje funkcija definiranih u drugim datotekama.

Prije, kada su se naišle na datoteke GCC ili LLVM srednjeg koda (IR), pozivali su se odgovarajući linkeri ld.bfd ili ld.lld, ali sada Mold samostalno obrađuje IR datoteke i koristi API dodatka Linker, koji se također koristi u GNU ld i GNU zlatni linkeri. Brzina kada je LTO omogućen samo je neznatno brža od ostalih linkera, jer se većina vremena troši na optimizaciju koda, a ne na povezivanje.

Također je istaknuto da dodane opcije “–ovisnosti o ispisu” i “–ovisnosti o ispisu=puna” pZa generiranje informacija u CSV formatu o ovisnostima između ulaznih datoteka, što se, na primjer, može koristiti za analizu razloga povezivanja prilikom povezivanja određenih objektnih datoteka ili tijekom rada na minimiziranju ovisnosti između datoteka.

Još jedna promjena koja se izdvaja od nove verzije je da podrška za RISC-V arhitekturu (RV64) na host i ciljnoj platformi.

Osim toga, možemo pronaći i to dodana opcija “–emit-relocs” za omogućavanje kopiranja odjeljaka za premještanje adresa od ulaznih datoteka do konačnih datoteka za daljnje optimizacije koje će se primijeniti u fazi nakon povezivanja.

Od ostalih istaknutih promjena:

  • Dodana opcija “-shuffle-sections” za nasumični redoslijed odjeljaka prije fiksiranja njihovih adresa u virtualnom adresnom prostoru.
  • Dodane opcije “–warn-once” i “–warn-textrel”.
  • Uklonjena ovisnost o libxxhash.

Konačno ako vas zanima više o tome, detalje možete provjeriti u sljedeći link.

Kako instalirati Mould?

Za one koji su zainteresirani za rad s Moldom, mogu dobiti uslužni program preuzimanjem i prevođenjem izvornog koda. Da biste to učinili, jednostavno otvorite terminal i upišite sljedeće:

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

Da biste saznali kako se koristi Mould, možete pogledati dokumentaciju na ovom linku.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.