Derxistina ForgeZero 1.9.0, amûrek avakirinê ji bo C û assembler

ForgeZero 1.9.0 (fz), amûrek avakirina xeta fermanê ye ji bo projeyên ku bi C, C++, û zimanên assembly (NASM, GAS, FASM) hatine nivîsandin, û hatiye berdan. Amûr ji bo karanîna bingehîn Makefile an pelên mîhengê yên din hewce nake. Koda projeyê bi Go hatiye nivîsandin û di bin lîsansa MIT de hatiye lîsanskirin.

ForgeZero cureyê pelê tespît dike û bixweber paşxaneya guncaw hildibijêre. Her pelê kodê di pelê objektê de tê berhevkirin, dûv re li ser hemî objektan ji bo sembolên gerdûnî yên dubare tê kontrolkirin û di pelê yekane yê bicîhkirî de tê girêdan. Pelên berhevkirî tenê piştî ku guhertin di pelên kodê yên têkildar de têne kirin têne hilanîn û ji nû ve têne berhevkirin. Bi vebijarkî, şopandina guhertina pergala pelan û ji nû ve berhevkirin piştî nûvekirina pelên kodê gengaz e.

Berhevkarên ku tên piştgirîkirin GCC, Clang, G++, û Clang++ ne; assembler NASM, GAS, û FASM ne; girêdanker LD, GCC, û Clang in; û arşîvkera AR tê piştgirîkirin. Hişyariyên mecbûrî ji bo C û C++ ev in: "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion". Paqijkerên AddressSanitizer û UndefinedBehaviorSanitizer bi xweber çalak in (ew dikarin bi ala -sanitize=false werin neçalak kirin). Platformên ku tên piştgirîkirin ev in: Linux, macOS, Windows (WSL2 û xwemalî ya ceribandinî).

Guhertinên sereke di guhertoya 1.9.0 de:

  • Ala "-target" lê zêde kir , ku ji bo her mîmarî bi amûrên pêşgira guncaw ve berhevkirina xaçerêyî çalak dike. fz bixweber navên berhevkar, girêdanker û arşîvker li gorî nasnameya diyarkirî destnîşan dike (mînak, "arm-linux-gnueabihf-gcc"). Hemî platformên hedef ên GNU yên standard têne piştgirî kirin, di nav de arm-linux-gnueabihf, aarch64-linux-gnu, û riscv64-linux-gnu.
  • Piştgiriya Protokola Servera Zimanî (LSP) hatiye bicîhkirin. Ala "-compile-commands" pelê compile_commands.json (Databasa Berhevkirinê) di koka projeyê de çêdike. Pel ji hêla ziman ve tê xwendin. pêşkêşkerên clangd û ccls, temamkirina otomatîk, navîgasyona kodê, û teşhîsê di edîtorên ku LSP piştgirî dikin (Neovim, VSCode, CLion, Emacs, hwd.) peyda dike.
  • Fermana fz "-update" niha berî sazkirina guhertoyek nû pelê ducarî yê heyî li /usr/local/bin/fz.old tomar dike, dihêle hûn bêyî ji nû ve sazkirinê vegerin guhertoya berê.
  • Çewtiyek di projeyên pir-pelrêk de hate rastkirin ku tê de pelên bi navên bingehîn ên wekhev ji jêrpelrêkên cûda pelên objeyên hevdu dinivîsandin. Navên pelên objeyan niha li gorî rêya tevahî ya nisbî ya pelê çavkaniyê têne çêkirin.
  • Ji bo çêkirina pelên yekane moda înteraktîf "fz -shell" hatiye bicîhanîn.
  • Berfirehiya ceribandinê ji bo fermanên SplitCommand, CmdSet, û CmdBuild hatiye zêdekirin. Berfirehiya ceribandinê ji bo pakêta girêdanê ji %17 zêde bûye bo %60, û berfirehiya ji bo hemî pakêtan ji %40 derbas bûye.
  • Ji bo ceribandina senaryoyên bi pêkhateyên toolchain-a wenda mekanîzmayeke şûna CheckTool zêde kir.

Guhertinên ji guhertoyên berê:

  • Guhertoya 1.8.0 komkirina pirtûkxaneyên statîk (-type static / -lib) pêk tîne, bêhempabûna navên pelên objeyan di projeyên pir-derhêner de misoger dike, û xeletiyên di binsîstema komkirinê de yên têkildarî derbasbûna rêya ".." rast dike.
  • Guhertoya 1.7.0 berhevkirina paralel (-j N, 0 - tespîtkirina otomatîk a jimara navokan), piştgiriya ji bo skrîptên girêdanê (-T) û navnîşanên xala ketinê (-Ttext), moda înteraktîf (fz -shell), hilbijartina eşkere ya formata derketinê (elf32, elf64, bin), berhevkirina pelên C++ (.cpp, .cc, .cxx) bi heman alayên hişyariyê yên hişk ên ji bo C zêde dike.
  • Guhertoya 1.6.0 destpêkirina projeyê (fz -init, creates .fz.yaml, .fzignore, README.md), piştgiriya formata bin (-format bin) ji bo bootloaders û firmware, û qadên mîhengkirinê libs, flags.cc, flags.asm, flags.ld zêde dike.
  • Guhertoya 1.5.0 gelek peldankên çavkaniyê (source_dirs), navnîşên pelên eşkere (source_files), şablonên têxe/derxe, qadek libs ji bo pirtûkxaneyên girêdanê, pelê .fzignore, û yekkirina pelên mîhengkirinê yên pir-astî pêşkêş dike.

Source: opennet.ru

Ji bo malperên bi parastina DDoS, serverên VPS VDS mêvandariya pêbawer bikirin 🔥 Hostinga malperê ya pêbawer bi parastina DDoS, serverên VPS VDS bikirin | ProHoster