Vrylating het plaasgevind Wilde Skakel 0.9.0 — 'n nuwe hoëprestasie-skakelaar geskryf in Rust. Die vrystelling is op GitHub gelys. 23 Mei 2026 jaarDie projek is geposisioneer as 'n skakel vir die versnelling van iteratiewe ontwikkeling: die outeurs wil uiteindelik inkrementele skakeling bereik, hoewel dit nog nie in die huidige weergawe geïmplementeer is nie. Die kode word versprei onder 'n dubbele lisensie. Apache 2.0 / MIT.
Die hoofverandering in Wild 0.9 is ondersteuning Skakel-inprop-API, 'n koppelvlak wat in die Gold-skakelaar bekendgestel is en ook deur GNU ld en Mold ondersteun word. Vir Wild maak dit die weg oop vir skakel-inprop LTO — skakeltydoptimalisering via 'n skakelinprop. Die ontwikkelaars meld spesifiek dat dit hoofsaaklik nuttig is vir C-, C++- en gemengdekodeprojekte, terwyl suiwer Rust-projekte tipies intern LTO uitvoer. Ondersteuning vir hierdie funksie het steeds bekende probleme, en skakeling via die inprop kan stadig wees.
'n Beduidende gedeelte van die werk in 0.9 het verband gehou met voorbereidings vir die oordrag van Wild verder as Linux/ELF. ELF-spesifieke logika is buite abstraksies geskuif, en werk aan ondersteuning het begin. Mach-O и WebAssemblyHierdie vermoëns is nog nie gereed vir praktiese gebruik nie, maar die eerste elemente het reeds verskyn: Mach-O-ontleding, seksie- en segmentverwerking, simbooltabel, kodehandtekening, vetbinêr, sowel as aanvanklike ondersteuning vir wasm-seksies, simbole en hervestigings.
Belangrike veranderinge in Wild Linker 0.9:
Ondersteuning vir skakel-inproppe. Ondersteuning vir skakel-inprop-API's is bygevoeg, wat nodig is vir die skakel-inprop-LTO en versoenbaarheid met sommige GCC/GNU ld/Mold-bouskripte. Ook is 'n paar probleme met betrekking tot inprop-terugroepe reggestel, insluitend die hele argief, ThinLTO, die oop lêerlimiet en die verwydering van dooie kode tydens LTO.
Groot uitbreiding van skakelskriptondersteuning. Die PROVIDE- en PROVIDE_HIDDEN-direktiewe, ASSERT-ontleding en -uitvoering, ondersteuning vir MEMORY-, ORIGIN-, LENGTH-, LOADADDR-, ALIGNOF-, SEGMENT_START-, K- en M-agtervoegsels in numeriese letterlikes, logiese, bisgewyse en unêre operateurs, en ooreenstemming deur invoerlêernaam word geïmplementeer. Dit bring Wild nader aan versoenbaarheid met komplekse skakelskripte wat dikwels in stelselsagteware en laevlakprojekte voorkom.
Verbeterings vir RISC-V, AArch64, x86-64 en LoongArch64. Bygevoegde RISC-V oproepontspanning, HI20-ontspanning, R_RISCV_ALIGN, kontrole vir botsende ISA-uitbreidings, addisionele AArch64-hervestigings, reeks-uitbreiding-thunks vir AArch64, hantering van 'n aantal x86-64-hervestigings met ontspannings, en reeks- en belyningsverduidelikings vir LoongArch64.
Nuwe versoenbaarheidsopsies. Ondersteuning bygevoeg vir --dependency-file, --auxiliary, --exclude-libs, --enable-new-dtags, --disable-new-dtags, --trace, --nmagic, --compress-debug-sections, --pack-dynamic-relocs=relr, --use-android-relr-tags, en die spasielose vorm -o/path.
Generering van staties bewegende voorwerpe. Ondersteuning bygevoeg vir die skep van statiese verskuifbare items—intermediêre objeklêers wat steeds aan verdere skakeling kan deelneem.
Prestasieverbeterings sonder om op 'n "vinnige" vrystelling te fokus. Die outeurs merk eksplisiet op dat 0.9 geen groot prestasieverbeterings ingesluit het nie, maar daar was ook geen agteruitgang nie. Plaaslike optimaliserings sluit in 'n vinnige pad vir nie-globale ooreenstemmings in weergaweskripte, 'n vermindering in die aantal atoombewerkings, parallelle berekening van seksie- en simbooladresse tydens ontspanningsskanderings, en verminderde herverwerking van reeds opgeloste seksies.
Baie versoenbaarheidsoplossings. Vaste hantering van swak ongedefinieerde simbole, .ctors/.dtors, RELRO, weergaweskripte, SFrame, IFUNC, --version/-v, ongedefinieerde simboolfoute, waarskuwings, ontfoutingshervestigings, .eh_frame, SHT_SYMTAB_SHNDX, statiese skakeling van dinamiese voorwerpe, en 'n aantal scenario's met skakelskripte.
Dokumentasie en projekbestuur. 'n Gedragskode, LLM-gebruiksbeleid, bestuursdokumentasie, 'n skakelskriptondersteuningsmatriks, instruksies vir die gebruik van -fuse-ld=wild met GCC 16.1, en installasie via Brew is bygevoeg. Die bewaarplek is ook na 'n aparte GitHub-organisasie, wild-linker, verskuif.
Op die oomblik is, Wild amptelik hoofsaaklik gefokus op Linux en ELF. Die projek se README-state ondersteun x86-64, ARM64, RISC-V riscv64gc en aanvanklike ondersteuning LoongArch64 op Linux; kan statiese binêre lêers, statiese-PIE, dinamies gekoppelde uitvoerbare lêers en .so-lêers bou, werk met ontfoutingsinligting, GNU-werkbediener en sommige skakelskripte. Inkrementele skakeling, meer komplekse skakelskripte, Mach-O en Windows word tans geklassifiseer as ongerealiseerde of onvoltooide geleenthede.
In praktiese terme brei Wild 0.9 versoenbaarheid met die bestaande bou-ekosisteem uit, begin dit verder as ELF uitbrei, en voeg ondersteuning by vir scenario's wat die skakelaar moeilik maak om te gebruik in groot C/C++ en gemengde projekte. Vir Rust-ontwikkelaars bly Wild interessant as 'n potensiële basis vir toekomstige inkrementele skakeling, en vir stelselontwikkelaars, as nog 'n vinnige mededinger vir GNU ld, LLD en Mold.
Bron: linux.org.ru
