MĂ« 4 gusht u zhvillua publikuar Wild 0.10 â njĂ« ndĂ«rtues tĂ« lirĂ«, i shkruar nĂ« Rust dhe i destinuar kryesisht pĂ«r ndĂ«rtimin e shpejtĂ« tĂ« programeve nĂ« Linux. NdĂ«rtuesi kryen fazĂ«n pĂ«rfundimtare tĂ« ndĂ«rtimit: kombinon skedarĂ«t objektĂ« dhe bibliotekat nĂ« njĂ« skedar ekzekutiv tĂ« gatshĂ«m ose njĂ« bibliotekĂ« tĂ« ndarĂ«. Wild mund tĂ« pĂ«rdoret si zĂ«vendĂ«sim pĂ«r GNU ld, LLD dhe Mold, edhe pse qĂ«llimi pĂ«rfundimtar i shpallur nga krijuesit Ă«shtĂ« ndĂ«rtimi inkremental â ende nuk Ă«shtĂ« realizuar.
Â
NjĂ« nga risitĂ« kryesore ishte mbĂ«shtetje e parametrave âgdb-index dhe âno-gdb-index. Kur aktivizohet kjo mundĂ«si, Wild krijon nĂ« skedarin e outputit njĂ« seksion .gdb_index me indeksin e informacionit tĂ« ndihmĂ«sit. FalĂ« kĂ«saj, GDB mund tĂ« gjejĂ« mĂ« shpejt simbolet e nevojshme nĂ« programe tĂ« mĂ«dha, pa formuar indekse veçmas pas ndĂ«rtimit. Realizimi mbĂ«shtet versionin e nĂ«ntĂ« tĂ« formatit GDB Index; operacionet e skanimit, bashkimit dhe shkruarjes sĂ« indekseve janĂ« paralelizuar.
Â
ĂshtĂ« zgjeruar ndjeshĂ«m puna me skenarĂ«t e ndĂ«rtuesit. ĂshtĂ« shtuar mbĂ«shtetje pĂ«r:
- seksionet /DISCARD/ për përjashtimin e seksioneve hyrëse të panevojshme;
- kokat përdoruese të programeve PHDRS;
- funksionet SIZEOF_HEADERS, DEFINED dhe SEGMENT_START;
- fjalën kyçe AT dhe funksionin LOADADDR;
- shprehjet kushtore me operatorin ternar;
- komandat SORT, SORT_BY_NAME dhe SORT_BY_ALIGNMENT;
- simbolin __bss_start;
- modelin e mbushjes së seksioneve të outputit;
- komandat OUTPUT_FORMAT dhe OUTPUT_ARCH;
- disa numërues relativë të adresës aktuale.
Â
Përputhshmëria e plotë me GNU ld ende nuk është arritur. Për shembull, disa mundësi të komandës MEMORY, seksionet OVERLAY dhe disa metoda vendosjeje të seksioneve mbeten të paplota. Krijuesit mbajnë veçmas një tabelë mundësish, të nevojshme për ndërtimin e bërthamës së Linux.
Â
PĂ«rformanca Ă«shtĂ« pĂ«rmirĂ«suar kur vendosen rezultatet e ndĂ«rtimit nĂ« Btrfs dhe VFAT. Wild tani automatikisht pĂ«rdor modalitetin âno-mmap-output-file dhe nuk e mapon skedarin e outputit nĂ« memorie pĂ«rmes mmap. NĂ« provimin e kryer nga zhvilluesi pĂ«r ndĂ«rtimin Zed nĂ« Btrfs, koha u zvogĂ«lua nga rreth 2,6â2,8 nĂ« 1,5â1,8 sekonda. MegjithatĂ«, autori i ndryshimit paralajmĂ«ron se edhe pas optimizimit, Btrfs nĂ« kĂ«tĂ« skenar mbetet ndjeshĂ«m mĂ« i ngadaltĂ« se tmpfs; pĂ«r Ext4 dhe XFS, pĂ«rdorimi i mmap, pĂ«rkundrazi, rezultoi mĂ« i favorshĂ«m.
Transferimi i Wild nĂ« formate dhe platforma tĂ« tjera po vazhdon. Versioni eksperimental pĂ«r WebAssembly tani Ă«shtĂ« nĂ« gjendje tĂ« kompozitĂ« njĂ« varg programesh, ndĂ«rsa porta pĂ«r Mach-O po mbĂ«shtet skedarĂ« ekzekutivĂ« tĂ« thjeshtĂ«. ĂshtĂ« nisur puna pĂ«r platformat e synuara 32-bit, qĂ« mĂ« vonĂ« do tĂ« thjeshtojĂ« pĂ«rdorimin e Wild nĂ« zhvillimin e sistemeve tĂ« integruara. Po ashtu, Ă«shtĂ« shtuar pĂ«rpunimi fillestar i skedarĂ«ve objekt PowerPC64 ELFv2 dhe Ă«shtĂ« vazhduar zhvillimi i mbĂ«shtetjes pĂ«r Mach-O, duke pĂ«rfshirĂ« skedarĂ«t objekt universale dhe kompozitimin e drejtpĂ«rdrejtĂ« me biblioteka dinamike. KĂ«to porte nuk duhet tĂ« merren ende si tĂ« gatshme pĂ«r pĂ«rdorim tĂ« pĂ«rditshĂ«m.
Versioni bibliotekar i mblodhësit libwild tani mund të marrë skedarët hyrës dhe të ruajë rezultatin drejtpërdrejt në memorje. Kjo u lejon programeve të tjera të inkuadrojnë Wild pa nevojën e krijimit të skedarëve ndërmjetës në disk. Për më tepër, biblioteka nuk e kalon më rezervuarin global të thread-eve Rayon, ndërsa mbështetje për kompresimin Zstandard mund të çaktivizohet gjatë ndërtimit.
Në kjo lëshim përfshihen shumë rregullime për x86-64, AArch64, RISC-V dhe LoongArch64. Janë eliminuar gabimet në përpunimin e TLS, PLT, LTO, informacionit të kompresuar për debugging, përputhjeve të mëdha dhe lëvizjeve në objekte PIE dhe të ndara. Janë rregulluar crash-e të mundshme gjatë analizës së skenarëve të mblodhësit dhe gabime në formimin e seksioneve .tbss, .strtab dhe .eh_frame.
Â
Wild mbështet Linux në arkitekturën x86-64, AArch64 dhe RISC-V; mbështetje për LoongArch64 dhe PowerPC64LE për momentin është e shënuar si fillestare. Mund të instaloni mblodhësin nga arkivat e gatshme, përmes cargo-binstall, Homebrew, Nix ose komandës cargo install --locked wild-linker. Kodi burimor shpërndahet sipas zgjedhjes së përdoruesit nën licencat Apache 2.0 ose MIT.
Â
Burimi: linux.org.ru
