Mold 1.1 je već objavljen, saznajte vijesti o ovom modernom Linkeru superiornom u odnosu na GNU gold i LLVM

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 sistemima.

U ovoj novoj verziji kalupa 1.1 je verzija koja sadrži nove funkcije, ispravke grešaka i poboljšanja performansi.

About Mold

kalup podržava sve karakteristike GNU linkera i ima veoma visoke performanse, pošto su veze koje pravi samo dvostruko sporije od jednostavnog kopiranja datoteka pomoću cp uslužnog programa.

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

Motivacija za kreiranje Mold-a bila je neugodnost čekanja da se link završi nakon svake promjene koda, kao i niska efikasnost postojećih linkera u višejezgarnim sistemima i želja da se testira fundamentalno drugačija arhitektura veze bez pribjegavanja nepotrebno komplikovanim modelima kao što je inkrementalno povezivanje.

Visoke performanse povezivanja izvršne datoteke sa velikim brojem objektnih datoteka koje je pripremio kompajler u Mold-u postiže se upotrebom bržih algoritama, aktivnom paralelizacijom operacija između dostupnih CPU jezgara i efikasnijom upotrebom struktura podataka.

Na primjer, 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 prilikom rješavanja znakova, skeniranje tabela preseljenja u zasebnom toku i uklanjanje duplikata sekcija koji se ponavljaju u različitim fajlovima.

Glavne novine Mould 1.1

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

LTO optimizacije se razlikuju uzimajući u obzir stanje svih fajlova uključenih u proces izgradnje, dok tradicionalni načini optimizacije optimizuju svaki fajl pojedinačno i ne uzimaju u obzir uslove za pozivanje funkcija definisanih u drugim datotekama.

Ranije, kada su se naišle na GCC ili LLVM datoteke srednjeg koda (IR), pozivali su se odgovarajući linkeri ld.bfd ili ld.lld, ali sada Mold samostalno rukuje IR datotekama 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đe je istaknuto da dodane opcije “–ovisnosti o ispisu” i “–zavisnosti o ispisu=puna” pZa generiranje informacija u CSV formatu o ovisnostima između ulaznih datoteka, koji se, na primjer, mogu koristiti za analizu razloga povezivanja prilikom povezivanja određenih objektnih datoteka ili dok radite 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 sekcija za premještanje adresa od ulaznih datoteka do konačnih datoteka za daljnje optimizacije koje će se primijeniti u fazi nakon povezivanja.

Od ostalih promjena koje se ističu:

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

Konačno ako ste zainteresirani da saznate više o tome, detalje možete provjeriti u sljedeći link.

Kako instalirati Mould?

Za one koji su zainteresirani za rad s Mold-om, mogu dobiti pomoćni program preuzimanjem i kompajliranjem 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 komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  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 obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.