Mould 1.1 har redan släppts, vet nyheten om denna moderna Linker överlägsen GNU guld och LLVM

För flera dagar sedan lanseringen av den nya versionen av modern Linker Mold 1.1 tillkännagavs, som kan användas som en snabbare transparent ersättning för GNU-linkern på Linux-system.

I denna nya version av mögel 1.1 är en version som Innehåller nya funktioner, buggfixar och prestandaförbättringar.

Om mögel

Mögel stöder alla funktioner i GNU-linkern och den har en mycket hög prestanda, eftersom länkarna den gör bara är dubbelt så snabba som att bara kopiera filer med cp-verktyget.

På detta sätt Att minska sammanställningstiden förbättrar avsevärt bekvämligheten med att utveckla stora projekt genom att minska väntetiden i den körbara filgenereringsprocessen vid felsökning och testning av ändringar.

Motivationen för att skapa Mold var irritationen över att behöva vänta på att länken skulle slutföras efter varje kodändring, samt den låga effektiviteten hos befintliga länkar i system med flera kärnor och önskan att testa en fundamentalt annorlunda länkarkitektur utan att tillgripa onödigt komplicerade modeller som inkrementell länkning.

Den höga prestandan att länka en körbar fil från ett stort antal kompilatorförberedda objektfiler i Mould uppnås genom användning av snabbare algoritmer, aktiv parallellisering av operationer mellan tillgängliga CPU-kärnor och användningen av datastrukturer mer effektiv.

T.ex. Mögel implementerar en teknik för att utföra intensiva beräkningar samtidigt med filkopiering, proaktivt ladda objektfiler till minnet, använda snabba hash-tabeller när du löser tecken, skanna flytttabeller i en separat ström och dedupliceringssektioner som upprepas i olika filer.

De viktigaste nya funktionerna i Mould 1.1

I den här nya versionen av Mould 1.1 som presenteras, sticker det ut att stöd för optimering i länkningsstadiet (LTO, länktidsoptimering).

LTO-optimeringar skiljer sig åt genom att ta hänsyn till tillståndet för alla filer som är involverade i kompileringsprocessen, medan traditionella optimeringslägen optimerar varje fil individuellt och inte tar hänsyn till villkoren för att anropa funktioner definierade i andra filer.

Tidigare, när GCC- eller LLVM-intermediate code-filer (IR) påträffades, anropades lämpliga ld.bfd- eller ld.lld-länkar, men nu hanterar Mould IR-filer på egen hand och använder Linker-plugin-API, som också används i GNU ld- och GNU-guldlänkar. Hastigheten när LTO är aktiverad är bara marginellt snabbare än andra länkar, eftersom den mesta tiden går åt till att optimera koden, inte länka.

Det framhävs också att alternativ lades till "–print-dependencies" och "–print-dependencies=full" pFör att generera information i CSV-format om beroenden mellan indatafiler, som till exempel kan användas för att analysera anslutningsskäl vid länkning av vissa objektfiler eller under arbete för att minimera beroenden mellan filer.

En annan av förändringarna som sticker ut från den nya versionen är att stöd för RISC-V (RV64) arkitektur på värd- och målplattformarna.

Utöver det kan vi också hitta det lagt till alternativet "–emit-relocs" för att möjliggöra kopiering av adressflyttningssektioner från indatafiler till slutliga filer så att ytterligare optimeringar tillämpas vid efterlänkningsstadiet.

Av de andra förändringarna som sticker ut:

  • Lade till alternativet "–shuffle-sektioner" för att slumpvisa ordningen på avsnitten innan de fixar deras adresser i det virtuella adressutrymmet.
  • Lade till "–warn-once" och "–warn-textrel" alternativ.
  • Tog bort libxxhash-beroendet.

Slutligen om du är intresserad av att veta mer om detkan du kontrollera detaljerna i följande länk.

Hur installerar man mögel?

För den som är intresserad av att kunna arbeta med Mould kan de skaffa verktyget genom att ladda ner och kompilera källkoden. För att göra detta, öppna bara en terminal och skriv följande:

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

För att veta användningen av mögel kan du konsultera dokumentationen i den här länken.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.