De eerste stabiele release van de linker Mold, ontwikkeld door de ontwikkelaar van LLVM lld.

Rui Ueyama, auteur van de LLVM lld linker en de chibicc compiler, heeft de eerste stabiele release van de nieuwe, hoogpresterende linker Mold gepresenteerd. Deze is aanzienlijk sneller in het linken van objectbestanden dan de GNU gold en LLVM lld linkers. Het project wordt als klaar beschouwd voor productie-implementaties en kan worden gebruikt als een snellere transparante vervanging van de GNU linker op Linux-systemen. Onder de plannen voor de volgende belangrijke release is de ondersteuning van het macOS-platform, waarna de aanpassing van Mold voor Windows zal beginnen.

Mold is geschreven in C++ (C++20) en wordt verspreid onder de AGPLv3-licentie, die compatibel is met de GPLv3, maar niet met de GPLv2, omdat het openstelling van wijzigingen vereist bij de ontwikkeling van netwerksdiensten. Deze keuze wordt verklaard door de wens om financiering voor de ontwikkeling te verkrijgen — de auteur is bereid om de rechten op de code te verkopen voor herlicentiĆ«ring onder een permissieve licentie, zoals MIT, of om een aparte commerciĆ«le licentie aan te bieden voor degenen die niet tevreden zijn met AGPL.

Mold ondersteunt alle functionaliteiten van de GNU linker en onderscheidt zich door zeer hoge prestaties — het linken gebeurt met een snelheid die slechts twee keer zo traag is als het simpele kopiĆ«ren van bestanden met de cp-tool. Bijvoorbeeld, bij het bouwen van Chrome 96 (met een codegrootte van 1.89 GB) duurt het koppelen van uitvoerbare bestanden met debuginfo op een 8-core computer met GNU gold 53 seconden, met LLVM lld 11.7 seconden, en met Mold slechts 2.2 seconden (26 keer sneller dan GNU gold). Bij het linken van Clang 13 (3.18 GB) heeft GNU gold 64 seconden nodig, LLVM lld 5.8 seconden, en Mold 2.9 seconden. Voor het linken van Firefox 89 (1.64 GB) is 32.9 seconden nodig met GNU gold, 6.8 seconden met LLVM lld, en 1.4 seconden met Mold.

De eerste stabiele release van de linker Mold, ontwikkeld door de ontwikkelaar van LLVM lld.

Het verkorten van de linktijd maakt het aanzienlijk gemakkelijker om grote projecten te ontwikkelen door de wachttijd bij het genereren van uitvoerbare bestanden tijdens het debuggen en testen van wijzigingen te verkorten. De motivatie voor het creƫren van Mold was de frustratie over het wachten op de voltooiing van het linken na elke wijziging in de code, evenals de lage efficiƫntie van de bestaande linkers op multicore-systemen en het verlangen om een fundamenteel andere architectuur voor linkers uit te proberen, zonder te hoeven vertrouwen op onnodig ingewikkelde modellen zoals incrementeel linken.

De hoge prestaties van de uitvoerbestandsindeling, verkregen uit een groot aantal door de compiler voorbereide objectbestanden in Mold, worden bereikt door het gebruik van snellere algoritmen, actieve parallelisatie van operaties tussen de beschikbare CPU-kernen en het toepassen van efficiƫntere datastructuren. Bijvoorbeeld, Mold implementeert een techniek die intensieve berekeningen gelijktijdig uitvoert met het kopiƫren van bestanden, het anticiperend laden van objectbestanden in het geheugen, het gebruik van snelle hash-tabellen bij het oplossen van symbolen, het scannen van verplaatsingstabellen in een aparte thread en deduplicatie van herhalende secties in verschillende bestanden.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster