Mold 1.1 er allerede blevet frigivet, kend nyheden om denne moderne Linker, der er bedre end GNU guld og LLVM

For flere dage siden udgivelsen af ​​den nye version af den moderne Linker Mold 1.1 blev annonceret, som kan bruges som en hurtigere gennemsigtig erstatning for GNU-linkeren på Linux-systemer.

I denne nye version af form 1.1 er en version, der indeholder nye funktioner, fejlrettelser og ydeevneforbedringer.

Om Skimmelsvamp

Mold understøtter alle funktionerne i GNU-linkeren og den har en meget høj ydeevne, da de links, den laver, kun er dobbelt så langsomme som blot at kopiere filer med cp-værktøjet.

På denne måde at reducere kompileringstiden forbedrer bekvemmeligheden ved at udvikle store projekter markant ved at reducere ventetiden i den eksekverbare filgenereringsprocessen ved fejlfinding og test af ændringer.

Motivationen for at skabe Mold var irritationen over at skulle vente på, at linket blev fuldført efter hver kodeændring, samt den lave effektivitet af eksisterende linkere i multicore-systemer og ønsket om at teste en fundamentalt anderledes linkarkitektur uden at ty til unødvendigt komplicerede modeller såsom inkrementel linking.

Den høje ydeevne ved at linke en eksekverbar fil fra et stort antal compiler-forberedte objektfiler i Mold opnås gennem brug af hurtigere algoritmer, aktiv parallelisering af operationer mellem tilgængelige CPU-kerner og mere effektiv brug af datastrukturer.

Fx Mold implementerer en teknik til at udføre intensive beregninger samtidigt med filkopiering, proaktiv indlæsning af objektfiler i hukommelsen, brug af hurtige hash-tabeller ved løsning af tegn, scanning af flyttetabeller i en separat strøm og deduplikering af sektioner der gentages i forskellige filer.

De vigtigste nyheder ved Skimmelsvamp 1.1

I denne nye version af Mold 1.1, der præsenteres, fremhæves det, at understøttelse af linkstadieoptimering (LTO, Link Time Optimization).

LTO-optimeringer adskiller sig ved at tage højde for tilstanden af ​​alle filer, der er involveret i byggeprocessen, mens traditionelle optimeringstilstande optimerer hver fil individuelt og ikke tager højde for betingelserne for at kalde funktioner defineret i andre filer.

Tidligere, når GCC- eller LLVM-intermediate code (IR)-filer blev stødt på, blev de relevante ld.bfd- eller ld.lld-linkere påkaldt, men nu håndterer Mold IR-filer alene og bruger Linker plugin API, der også bruges i GNU ld og GNU guldlinkere. Hastigheden, når LTO er aktiveret, er kun marginalt hurtigere end andre linkere, da det meste af tiden går med at optimere koden, ikke at linke.

Det fremhæves også, at indstillinger tilføjet "–print-dependencies" og "–print-dependencies=full" pAt generere information i CSV-format om afhængighederne mellem inputfiler, som for eksempel kan bruges til at analysere forbindelsesårsager ved sammenkædning af bestemte objektfiler eller mens der arbejdes på at minimere afhængigheder mellem filer.

En anden ændring, der skiller sig ud fra den nye version er, at understøttelse af RISC-V-arkitektur (RV64) på værts- og målplatformene.

Ud over det kan vi også finde det tilføjet "–emit-relocs" mulighed for at muliggøre kopiering af adresseflytningssektioner fra inputfiler til endelige filer for yderligere optimeringer, der skal anvendes på post-link-stadiet.

Af de andre ændringer, der skiller sig ud:

  • Tilføjet mulighed "–shuffle-sektioner" for at randomisere rækkefølgen af ​​sektioner, før de fikserer deres adresser i det virtuelle adresserum.
  • Tilføjet "–warn-once" og "–warn-textrel" muligheder.
  • Fjernet afhængighed af libxxhash.

Endelig hvis du er interesseret i at vide mere om det, kan du kontrollere detaljerne i følgende link.

Hvordan installeres Mould?

For dem, der er interesseret i at kunne arbejde med Mold, kan de få værktøjet ved at downloade og kompilere kildekoden. For at gøre dette skal du blot åbne en terminal og skrive følgende:

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

For at kende brugen af ​​Skimmelsvamp kan du konsultere dokumentationen i dette link.


Indholdet af artiklen overholder vores principper for redaktionel etik. Klik på for at rapportere en fejl her.

Vær den første til at kommentere

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort.

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.