Lotura basatia 0.9

Askatuta Lotura basatia 0.9.0 — Rust-en idatzitako errendimendu handiko estekatzaile berria. Bertsioa GitHub-en zerrendatuta dago. 23 May 2026 urtekoProiektua garapen iteratiboa bizkortzeko estekatzaile gisa kokatuta dago: egileek azken finean estekatze inkrementala lortu nahi dute, nahiz eta egungo bertsioan oraindik ez dagoen inplementatu. Kodea lizentzia bikoitz baten pean banatzen da. Apache 2.0 / MIT.

Wild 0.9-ren aldaketa nagusia laguntza da Estekatzaile Plugin APIa, Gold estekatzailean sartutako interfazea eta GNU ld eta Mold-ek ere onartzen dutena. Wildentzat, honek bidea irekitzen du estekatzaile-plugin LTO — lotura-denboraren optimizazioak estekatzaile-plugin baten bidez. Garatzaileek zehazki adierazten dute hau batez ere C, C++ eta kode mistoko proiektuetarako erabilgarria dela, Rust proiektu hutsek normalean LTO barnean egiten duten bitartean. Ezaugarri honen euskarria oraindik arazo ezagunak ditu, eta pluginaren bidezko estekak motela izan daiteke.

0.9ko lanaren zati handi bat Wild haratago transferitzeko prestaketekin lotuta zegoen. Linux/ELF. ELF-ren logika espezifikoa abstrakzioetatik kanpo mugitu da, eta laguntza lantzen hasi da. Mach-O и WebAssemblyGaitasun hauek ez daude oraindik prest erabilera praktikorako, baina lehen elementuak agertu dira dagoeneko: Mach-O parsing-a, atal eta segmentu prozesamendua, sinbolo taula, kode sinadura, fat bitarra, baita wasm atal, sinbolo eta birkokapenetarako hasierako laguntza ere.

Wild Linker 0.9-ren aldaketa nagusiak:

  • Estekatzaileen pluginen euskarria. Lotura-plugin APIetarako euskarria gehitu da, lotura-plugin LTOrako beharrezkoa dena, eta GCC/GNU ld/Mold eraikuntza-skript batzuekin bateragarritasuna. Plugin-dei-itzulerekin lotutako arazo batzuk ere konpondu dira, besteak beste, artxibo osoa, ThinLTO, fitxategi irekien muga eta LTOan zehar kode hila kentzea.

  • Estekatzaileen scripten laguntzaren hedapen handia. PROVIDE eta PROVIDE_HIDDEN direktibak, ASSERT analisia eta exekuzioa, MEMORY, ORIGIN, LENGTH, LOADADDR, ALIGNOF, SEGMENT_START, K eta M atzizkien euskarria literal numerikoetan, operadore logiko, bit-mailako eta unarioak, eta sarrera fitxategi izenen araberako parekatzea inplementatzen dira. Horri esker, Wild sistema softwarean eta maila baxuko proiektuetan maiz aurkitzen diren esteka-script konplexuekin bateragarritasun handiagoa lortzen da.

  • RISC-V, AArch64, x86-64 eta LoongArch64-rako hobekuntzak. RISC-V deien erlaxazioa, HI20 erlaxazioa, R_RISCV_ALIGN, ISA luzapen gatazkatsuak egiaztatzea, AArch64 birkokapen gehigarriak, AArch64-rako barruti-luzapen thunk-ak, erlaxazioekin x86-64 birkokapen batzuk kudeatzea eta LoongArch64-rako barruti eta lerrokatze argibideak gehitu dira.

  • Bateragarritasun aukera berriak. --dependency-file, --auxiliary, --exclude-libs, --enable-new-dtags, --disable-new-dtags, --trace, --nmagic, --compress-debug-sections, --pack-dynamic-relocs=relr, --use-android-relr-tags eta -o/path hutsune gabeko formaren euskarria gehitu da.

  • Objektu estatikoki mugitzen direnen sorrera. Birkokagarri estatikoak sortzeko laguntza gehitu da, hau da, lotura gehiagotan parte har dezaketen tarteko objektu-fitxategiak.

  • Errendimenduaren hobekuntzak "azkar" kaleratze batean zentratu gabe. Egileek berariaz adierazten dute 0.9 bertsioak ez zuela errendimendu hobekuntza handirik ekarri, baina ez zela degradaziorik ere egon. Optimizazio lokalen artean, honako hauek daude: bertsio-scriptetan parekatzaile ez-globaletarako bide azkarra, eragiketa atomikoen kopurua murriztea, atalen eta sinboloen helbideen kalkulu paraleloa erlaxazio-eskaneetan zehar, eta dagoeneko ebatzitako atalen birprozesamendu murriztua.

  • Bateragarritasun konponketa asko. Konpondu dira definitu gabeko sinbolo ahulen, .ctors/.dtors-en, RELROren, bertsio-skripten, SFrame-ren, IFUNC-ren, --version/-v-ren, definitu gabeko sinboloen erroreen, abisuen, arazketa-lekualdaketaren, .eh_frame-ren, SHT_SYMTAB_SHNDX-ren, objektu dinamikoen lotura estatikoen eta estekatzaile-skriptekin hainbat eszenatokiren kudeaketa.

  • Dokumentazioa eta proiektuen kudeaketa. Jokabide kode bat, LLM erabilera politika, gobernantza dokumentazioa, estekatzaileen scripten laguntza matrizea, -fuse-ld=wild GCC 16.1-ekin erabiltzeko argibideak eta Brew bidezko instalazioa gehitu dira. Biltegia GitHub-eko erakunde bereizi batera ere eraman da, wild-linker-era.

Gaur egun, Wild ofizialki batez ere horretan zentratuta Linux eta ELF. Proiektuaren README-k onartzen ditu x86-64, ARM64, RISC-V riscv64gc eta hasierako laguntza LoongArch64 on Linux; binario estatikoak, PIE estatikoak, dinamikoki lotutako exekutagarriak eta .so fitxategiak eraiki ditzake, arazketa-informazioarekin, GNU jobserver-ekin eta estekatzaile-skript batzuekin funtzionatzen du. Estekatze inkrementala, estekatzaile-skript konplexuagoak, Mach-O eta Windows gaur egun gauzatu gabeko edo amaitu gabeko aukera gisa sailkatzen dira.

Praktikan, Wild 0.9-k bateragarritasuna zabaltzen du dagoeneko eraikitzeko ekosistemarekin, ELF-tik haratago hedatzen hasten da eta lotura-emailea C/C++ proiektu handietan eta proiektu mistoetan erabiltzea zailtzen duten egoeretarako laguntza gehitzen du. Rust garatzaileentzat, Wild interesgarria izaten jarraitzen du etorkizuneko lotura inkrementalen oinarri potentzial gisa, eta sistema-garatzaileentzat, GNU ld, LLD eta Mold-en lehiakide azkar bat bezala.

Iturria: linux.org.ru

Erosi hosting fidagarria DDoS babesa duten guneetarako, VPS VDS zerbitzariak 🔥 Erosi webguneentzako ostatu fidagarria DDoS babesarekin, VPS VDS zerbitzariak | ProHoster