Meħlus Linker Selvaġġ 0.9.0 — linker ġdid ta’ prestazzjoni għolja miktub f’Rust. Ir-rilaxx huwa elenkat fuq GitHub. 23 Mejju sena 2026Il-proġett huwa pożizzjonat bħala linker biex jaċċelera l-iżvilupp iterattiv: l-awturi fl-aħħar mill-aħħar iridu jiksbu linking inkrementali, għalkemm għadu mhux implimentat fil-verżjoni attwali. Il-kodiċi huwa mqassam taħt liċenzja doppja. Apache 2.0 / MIT.
Il-bidla ewlenija f'Wild 0.9 hija l-appoġġ API tal-Plugin tal-Linker, interfaċċja introdotta fil-linker Gold u appoġġjata wkoll minn GNU ld u Mold. Għal Wild, dan jiftaħ it-triq għal plugin tal-linker LTO — ottimizzazzjonijiet tal-ħin tal-linking permezz ta' plugin tal-linker. L-iżviluppaturi jiddikjaraw speċifikament li dan huwa primarjament utli għal proġetti C, C++, u ta' kodiċi mħallat, filwaqt li proġetti Rust puri tipikament iwettqu LTO internament. L-appoġġ għal din il-karatteristika għad għandu kwistjonijiet magħrufa, u l-linking permezz tal-plugin jista' jkun bil-mod.
Parti sinifikanti mix-xogħol f'0.9 kien relatat mat-tħejjijiet għat-trasferiment ta' Wild lil hinn minn Linux/ELF. Il-loġika speċifika għall-ELF ġiet imċaqalqa barra mill-astrazzjonijiet, u beda x-xogħol fuq l-appoġġ. Mach-O и Assemblaġġ tal-WebDawn il-kapaċitajiet għadhom mhumiex lesti għall-użu prattiku, iżda l-ewwel elementi diġà dehru: l-analiżi Mach-O, l-ipproċessar ta' sezzjonijiet u segmenti, it-tabella tas-simboli, il-firma tal-kodiċi, il-binarju tax-xaħam, kif ukoll appoġġ inizjali għal sezzjonijiet, simboli u rilokazzjonijiet wasm.
Tibdiliet ewlenin f'Wild Linker 0.9:
Appoġġ għall-plugins tal-linkers. Żied appoġġ għall-APIs tal-plugin tal-linker, li huwa neċessarju għall-LTO tal-plugin tal-linker u kompatibilità ma' xi skripts tal-bini tal-GCC/GNU ld/Mold. Ġew irranġati wkoll xi kwistjonijiet relatati mal-callbacks tal-plugin, inkluż whole-archive, ThinLTO, il-limitu tal-fajl miftuħ, u t-tneħħija tal-kodiċi mejjet waqt l-LTO.
Espansjoni kbira tal-appoġġ għall-iskripts tal-linker. Id-direttivi PROVIDE u PROVIDE_HIDDEN, l-analiżi u l-eżekuzzjoni ta' ASSERT, l-appoġġ għas-suffissi MEMORY, ORIGIN, LENGTH, LOADADDR, ALIGNOF, SEGMENT_START, K u M f'litterali numeriċi, operaturi loġiċi, bit-bit, u unarji, u t-tqabbil permezz ta' ismijiet ta' fajls tad-dħul huma implimentati. Dan iressaq lil Wild eqreb lejn il-kompatibilità ma' skripts ta' links kumplessi li spiss jinstabu fis-softwer tas-sistema u proġetti ta' livell baxx.
Titjib għal RISC-V, AArch64, x86-64 u LoongArch64. Żidna rilassament tas-sejħiet RISC-V, rilassament HI20, R_RISCV_ALIGN, iċċekkjar għal estensjonijiet ISA konfliġġenti, rilokazzjonijiet AArch64 addizzjonali, thunks ta' estensjonijiet ta' firxa għal AArch64, immaniġġjar ta' numru ta' rilokazzjonijiet x86-64 b'rilassamenti, u kjarifiki dwar il-firxa u l-allinjament għal LoongArch64.
Għażliet ġodda ta' kompatibilità. Żied appoġġ għal --dependency-file, --auxiliary, --exclude-libs, --enable-new-dtags, --disable-new-dtags, --trace, --nmagic, --compress-debug-sections, --pack-dynamic-relocs=relr, --use-android-relr-tags, u l-forma mingħajr spazju -o/path.
Ġenerazzjoni ta' oġġetti li jiċċaqalqu statikament. Żied l-appoġġ għall-ħolqien ta' fajls ta' oġġetti statiċi rilokabbli—fajls ta' oġġetti intermedji li xorta jistgħu jipparteċipaw f'aktar kollegamenti.
Titjib fil-prestazzjoni mingħajr ma niffokaw fuq rilaxx "veloċi". L-awturi jinnutaw espliċitament li l-verżjoni 0.9 ma inkludiet l-ebda titjib ewlieni fil-prestazzjoni, iżda lanqas ma kien hemm degradazzjoni. L-ottimizzazzjonijiet lokali jinkludu mogħdija mgħaġġla għal tqabbil mhux globali fl-iskripts tal-verżjoni, tnaqqis fin-numru ta' operazzjonijiet atomiċi, kalkolu parallel tal-indirizzi tas-sezzjoni u tas-simboli waqt skens ta' rilassament, u pproċessar mill-ġdid imnaqqas ta' sezzjonijiet diġà riżolti.
Ħafna tiswijiet ta' kompatibilità. Immaniġġjar irranġat ta' simboli dgħajfa mhux definiti, .ctors/.dtors, RELRO, skripts tal-verżjoni, SFrame, IFUNC, --version/-v, żbalji fis-simboli mhux definiti, twissijiet, rilokazzjonijiet tad-debug, .eh_frame, SHT_SYMTAB_SHNDX, kollegament statiku ta' oġġett dinamiku, u numru ta' xenarji bi skripts tal-linker.
Dokumentazzjoni u ġestjoni tal-proġetti. Żdiedu kodiċi ta' kondotta, politika dwar l-użu tal-LLM, dokumentazzjoni dwar il-governanza, matriċi ta' appoġġ għall-iskripts tal-linker, struzzjonijiet għall-użu ta' -fuse-ld=wild ma' GCC 16.1, u installazzjoni permezz ta' Brew. Ir-repożitorju ġie mċaqlaq ukoll għal organizzazzjoni separata tal-GitHub, wild-linker.
Fil-mument, Wild uffiċjalment iffukat primarjament fuq Linux u ELF. L-istati README tal-proġett jappoġġjaw x86-64, ARM64, RISC-V riscv64gc u appoġġ inizjali LoongArch64 fuq Linux; jista' jibni binarji statiċi, static-PIE, eżekutibbli marbuta dinamikament, u fajls .so, jaħdem b'informazzjoni ta' debug, GNU jobserver, u xi skripts ta' linker. Linking inkrementali, skripts ta' linker aktar kumplessi, Mach-O, u Windows bħalissa huma kklassifikati bħala opportunitajiet mhux realizzati jew mhux lesti.
Fil-prattika, Wild 0.9 tespandi l-kompatibilità mal-ekosistema tal-bini eżistenti, tibda tespandi lil hinn mill-ELF, u żżid appoġġ għal xenarji li jagħmlu l-linker diffiċli biex jintuża fi proġetti kbar ta' C/C++ u proġetti mħallta. Għall-iżviluppaturi ta' Rust, Wild jibqa' interessanti bħala bażi potenzjali għal linking inkrementali fil-futur, u għall-iżviluppaturi tas-sistema, bħala kompetitur ieħor veloċi għal GNU ld, LLD, u Mold.
Sors: linux.org.ru
