Wild 0.10


2

4 Gusht u mbajt promovimi Wild 0.10 — njĂ« lidhĂ«s i lirĂ«, i shkruar nĂ« Rust dhe i destinuar kryesisht pĂ«r ndĂ«rtimin e shpejtĂ« tĂ« programeve nĂ« Linux. LidhĂ«si 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 njĂ« zĂ«vendĂ«sim pĂ«r GNU ld, LLD dhe Mold, megjithatĂ« qĂ«llimi i deklaruar nga zhvilluesit Ă«shtĂ« kompozimi inkremental — aktualisht nuk Ă«shtĂ« realizuar.

NjĂ« nga risitĂ« kryesore ishte mbĂ«shtetje pĂ«r parametrat —gdb-index dhe —no-gdb-index. Duke aktivizuar kĂ«tĂ« funksionalitet, Wild krijon nĂ« skedarin e daljes njĂ« seksion .gdb_index me indeksin e informacionit tĂ« ndihmĂ«s. PĂ«r shkak tĂ« kĂ«saj, GDB mund tĂ« gjejĂ« mĂ« shpejt simbolet e nevojshme nĂ« programe tĂ« mĂ«dha, pa formuar njĂ« indeks veç e veç pas ndĂ«rtimit. Realizimi mbĂ«shtet versionin e nĂ«ntĂ« tĂ« formatit tĂ« Indeksit GDB; operacionet e skanimit, bashkimit dhe shkruajtjes sĂ« indeksit janĂ« bĂ«rĂ« tĂ« paralelizuara.

PunĂ«t me skenaret e lidhĂ«sit janĂ« zgjeruar ndjeshĂ«m. ËshtĂ« shtuar mbĂ«shtetje pĂ«r:

  • seksionet /DISCARD/ pĂ«r tĂ« pĂ«rjashtuar seksionet hyrĂ«se tĂ« panevojshme;
  • titujt e pĂ«rdoruesit 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;
  • shabllonet e mbushjes sĂ« seksioneve tĂ« daljes;
  • komandat OUTPUT_FORMAT dhe OUTPUT_ARCH;
  • disa numĂ«rues relativ tĂ« adresĂ«s aktuale.

Përputhshmëria e plotë me GNU ld nuk është arritur akoma. Për shembull, një pjesë e mundësive të komandës MEMORY, seksionet OVERLAY dhe disa mënyra të vendosjes së seksioneve mbeten të pa përfunduara. Zhvilluesit mbajnë veçmas një tabelë të mundësive të nevojshme për lidhjen e bërthamë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 vizaton skedarin e daljes nĂ«Memorie pĂ«rmes mmap. NĂ« njĂ« provim tĂ« realizuar nga zhvilluesi pĂ«r lidhjen Zed nĂ« Btrfs, koha u shkurtua nga rreth 2.6–2.8 deri nĂ« 1.5–1.8 sekonda. MegjithatĂ«, autori i ndryshimeve paralajmĂ«ron se edhe pas optimizimit, Btrfs nĂ« kĂ«tĂ« skenar mbetet dukshĂ«m mĂ« e ngadalshme se tmpfs; pĂ«r Ext4 dhe XFS, pĂ«rdorimi i mmap, nga ana tjetĂ«r, rezultoi mĂ« i favorshĂ«m.

Transferimi i Wild në formate dhe platforma të tjera vazhdon. Versioni eksperimental për WebAssembly tani është në gjendje të kompozitojë një sërë programesh, ndërsa porti për Mach-O mbështet skedarët e thjeshtë ekzekutivë. Ka filluar puna për platformat celulare 32-bit, gjë që e bën më të lehtë 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, përfshirë skedarët objekt universale dhe kompozimin e drejtpërdrejtë me bibliotekat dinamike. Këto porte nuk duhet të merren akoma si të gatshme për përdorim të përditshëm.

Varianti bibliotekor i lidhësit libwild tani mund të merrte skedarë hyrës dhe të ruante rezultatin direkt në memorje. Kjo lejon programe të tjera të integrojnë Wild pa nevojën për të krijuar skedarë të përkohshëm në disk. Për më tepër, biblioteka nuk e mbivendos më pellgun global të rrjedhave Rayon dhe mbështetja për kompresimin Zstandard mund të çaktivizohet gjatë ndërtimit.

Rilishti përmban shumë rregullime për x86-64, AArch64, RISC-V dhe LoongArch64. Janë eliminuar të metat në përpunimin e TLS, PLT, LTO, informacionit të kompresuar të rikuperimit, alinimeve të mëdha dhe zhvendosjeve në objekte PIE dhe të ndara. Janë rregulluar mbylljet e mundshme në rast të analizimit të skenarëve të lidhësit dhe gabimet 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 tani Ă«shtĂ« e shĂ«nuar si fillestare. LidhĂ«sin mund ta instaloni nga arkivat e gatshme, pĂ«rmes cargo-binstall, Homebrew, Nix ose me komandĂ«n 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

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster