ืืจื•ื™ืกื’ืขื’ืขื‘ืŸ ืคื•ืŸ ForgeZero 1.9.0, ื ื‘ื•ื™-ื’ืขืฆื™ื™ื’ ืคืืจ C ืื•ืŸ ืืกืขืžื‘ืœืขืจ

ForgeZero 1.9.0 (fz), ื ืงืืžืื ื“-ืœื™ื ื™ืข ื‘ื™ืœื“ ื’ืขืฆื™ื™ื’ ืคืืจ ืคืจืื™ืขืงื˜ืŸ ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ C, C++, ืื•ืŸ ืืกืขืžื‘ืœื™ ืฉืคืจืื›ืŸ (NASM, GAS, FASM), ืื™ื– ืืจื•ื™ืกื’ืขื’ืขื‘ืŸ ื’ืขื•ื•ืืจืŸ. ื“ืขืจ ื’ืขืฆื™ื™ื’ ื“ืืจืฃ ื ื™ืฉื˜ ืงื™ื™ืŸ Makefile ืื“ืขืจ ืื ื“ืขืจืข ืงืื ืคื™ื’ื•ืจืืฆื™ืข ื˜ืขืงืขืก ืคืืจ ื’ืจื•ื ื˜ืœืขื›ืข ื‘ืื ื•ืฅ. ื“ืขืจ ืคืจืื™ืขืงื˜ ืงืื•ื“ ืื™ื– ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ Go ืื•ืŸ ืื™ื– ืœื™ืฆืขื ืฆื™ืจื˜ ืื•ื ื˜ืขืจ ื“ืขืจ MIT ืœื™ืฆืขื ืฅ.

ForgeZero ื“ืขื˜ืขืงื˜ื™ืจื˜ ื“ืขื ื˜ืขืงืข ื˜ื™ืค ืื•ืŸ ืกืขืœืขืงื˜ื™ืจื˜ ืื•ื™ื˜ืืžืื˜ื™ืฉ ื“ืขื ืคืืกื™ื’ืŸ ื‘ืขืงืขื ื“. ื™ืขื“ืข ืงืื•ื“ ื˜ืขืงืข ื•ื•ืขืจื˜ ืงืืžืคื™ื™ืœื™ืจื˜ ืื™ืŸ ืืŸ ืื‘ื™ืขืงื˜ ื˜ืขืงืข, ื“ืขืจื ืืš ื’ืขื˜ืฉืขืงื˜ ืคืืจ ื“ื•ืคืœื™ืงืื˜ ื’ืœืื‘ืืœืข ืกื™ืžื‘ืืœืŸ ืื™ื‘ืขืจ ืืœืข ืื‘ื™ืขืงื˜ืŸ ืื•ืŸ ืคืืจื‘ื•ื ื“ืŸ ืื™ืŸ ืื™ื™ืŸ ืขืงืกืขืงื™ื•ื˜ืขื‘ืœ ื˜ืขืงืข. ืงืืžืคื™ื™ืœื™ืจื˜ืข ื˜ืขืงืขืก ื•ื•ืขืจืŸ ืงืขืฉื˜ ืื•ืŸ ืื™ื‘ืขืจืงืืžืคื™ืœื™ืจื˜ ื ืืจ ื ืื›ื“ืขื ื•ื•ืืก ืขื ื“ืขืจื•ื ื’ืขืŸ ื•ื•ืขืจืŸ ื’ืขืžืื›ื˜ ืฆื• ื“ื™ ืคืืจื‘ื•ื ื“ืขื ืข ืงืื•ื“ ื˜ืขืงืขืก. ืืคืฆื™ืื ืืœ, ื˜ืขืงืข ืกื™ืกื˜ืขื ืขื ื“ืขืจื•ื ื’ืขืŸ ื˜ืจืขืงื™ื ื’ ืื•ืŸ ืื™ื‘ืขืจืงืืžืคื™ืœืืฆื™ืข ื–ืขื ืขืŸ ืžืขื’ืœื™ืš ื ืืš ืงืื•ื“ ื˜ืขืงืข ืืคื“ืขื™ื˜ืก.

ื“ื™ ื’ืขืฉื˜ื™ืฆื˜ืข ืงืึธืžืคึผื™ื™ืœืขืจืก ื–ืขื ืขืŸ GCC, Clang, G++, ืื•ืŸ Clang++; ืึทืกืขืžื‘ืœืขืจืก ื–ืขื ืขืŸ NASM, GAS, ืื•ืŸ FASM; ืœื™ื ืงืขืจืก ื–ืขื ืขืŸ LD, GCC, ืื•ืŸ Clang; ืื•ืŸ ื“ืขืจ AR ืึทืจื›ื™ื•ื•ืขืจ ืื™ื– ื’ืขืฉื˜ื™ืฆื˜. ืคืืจืœืื ื’ื˜ืข ื•ื•ืึธืจืขื ื•ื ื’ืขืŸ ืคึฟืึทืจ C ืื•ืŸ C++ ื–ืขื ืขืŸ: "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion". ื“ื™ AddressSanitizer ืื•ืŸ UndefinedBehaviorSanitizer ืกืึทื ื™ื˜ื™ื™ื–ืขืจืก ื–ืขื ืขืŸ ืึทืงื˜ื™ื•ื•ื™ืจื˜ ื“ื•ืจืš ื“ื™ืคืึธืœื˜ (ื–ื™ื™ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื“ื™ืึทืงื˜ื™ื•ื•ื™ืจื˜ ืžื™ื˜ืŸ -sanitize=false ืคืึธืŸ). ื“ื™ ื’ืขืฉื˜ื™ืฆื˜ืข ืคึผืœืึทื˜ืคืึธืจืžืขืก ื–ืขื ืขืŸ: Linux, macOS, Windows (WSL2 ืื•ืŸ ืขืงืกืคึผืขืจื™ืžืขื ื˜ืึทืœ ื’ืขื‘ื•ื™ืจืŸ).

ื”ื•ื™ืคึผื˜ ืขื ื“ืขืจื•ื ื’ืขืŸ ืื™ืŸ ื•ื•ืขืจืกื™ืข 1.9.0:

  • ืฆื•ื’ืขื’ืขื‘ืŸ "-ื˜ืึทืจื’ืขื˜" ืคืึธืŸ , ื•ื•ืึธืก ืขืจืžืขื’ืœื™ื›ื˜ ืงืจืึธืก-ืงืึธืžืคึผื™ืœืึทืฆื™ืข ืคึฟืึทืจ ื™ืขื“ืขืจ ืึทืจื›ื™ื˜ืขืงื˜ื•ืจ ืžื™ื˜ ื“ื™ ืคึผืึทืกื™ืงืข ืคึผืจืขืคื™ืงืก ืžื›ืฉื™ืจื™ื. fz ื‘ืึทืฉื˜ื™ืžื˜ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ื“ื™ ื ืขืžืขืŸ ืคื•ืŸ ื“ื™ ืงืึธืžืคึผื™ื™ืœืขืจ, ืœื™ื ืงืขืจ ืื•ืŸ ืึทืจื›ื™ื•ื•ืขืจ ื‘ืึทื–ื™ืจื˜ ืื•ื™ืฃ ื“ืขื ืกืคึผืขืฆื™ืคึฟื™ืฉืŸ ืื™ื“ืขื ื˜ื™ืคึฟื™ืงืึทื˜ืึธืจ (ืœืžืฉืœ, "arm-linux-gnueabihf-gcc"). ืึทืœืข ื ืึธืจืžืึทืœืข GNU ืฆื™ืœ ืคึผืœืึทื˜ืคืึธืจืžืขืก ื•ื•ืขืจืŸ ื’ืขืฉื˜ื™ืฆื˜, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ arm-linux-gnueabihf, aarch64-linux-gnu, ืื•ืŸ riscv64-linux-gnu.
  • ืฉื˜ื™ืฆืข ืคืืจืŸ ืฉืคืจืืš ืกืขืจื•ื•ืขืจ ืคืจืื˜ืืงืืœ (LSP) ืื™ื– ืื™ืžืคืœืขืžืขื ื˜ื™ืจื˜ ื’ืขื•ื•ืืจืŸ. ื“ื™ "-compile-commands" ืคืืŸ ื“ื–ืฉืขื ืขืจื™ืจื˜ ื compile_commands.json (ืงืืžืคืœื™ื™ืฉืืŸ ื“ืื˜ืื‘ืื–ืข) ื˜ืขืงืข ืื™ืŸ ื“ืขื ืคืจืื™ืขืงื˜ ืจื•ื˜. ื“ื™ ื˜ืขืงืข ื•ื•ืขืจื˜ ื’ืขืœื™ื™ืขื ื˜ ื“ื•ืจืš ืฉืคืจืืš. ืกืขืจื•ื•ืขืจืก clangd ืื•ืŸ ccls, ื•ื•ืึธืก ืฆื•ืฉื˜ืขืœืŸ ืื•ื™ื˜ืึธืงืึธืžืคืœืขืฉืึทืŸ, ืงืึธื“ ื ืึทื•ื•ื™ื’ืึทืฆื™ืข, ืื•ืŸ ื“ื™ืึทื’ื ืึธืกื˜ื™ืง ืื™ืŸ ืจืขื“ืึทืงื˜ืึธืจืŸ ื•ื•ืึธืก ืฉื˜ื™ืฆืŸ LSP (Neovim, VSCode, CLion, Emacs, ืืื–"ื•ื•).
  • ื“ืขืจ fz "-update" ื‘ืึทืคึฟืขืœ ืจืึทื˜ืขื•ื•ืขื˜ ืื™ืฆื˜ ื“ื™ ืื™ืฆื˜ื™ืงืข ื‘ื™ื™ื ืขืจื™ ืฆื• /usr/local/bin/fz.old ืื™ื™ื“ืขืจ ืขืก ืื™ื ืกื˜ืึทืœื™ืจื˜ ืึท ื ื™ื™ืข ื•ื•ืขืจืกื™ืข, ืื•ืŸ ื“ืึธืก ืœืึธื–ื˜ ืื™ื™ืš ืฆื•ืจื™ืงื’ื™ื™ืŸ ืฆื• ื“ืขืจ ืคืจื™ืขืจื“ื™ืงืขืจ ื•ื•ืขืจืกื™ืข ืึธืŸ ืขืก ื•ื•ื™ื“ืขืจ ืื™ื ืกื˜ืึทืœื™ืจืŸ.
  • ื’ืขืคื™ืงืกื˜ ืึท ื‘ืึทื’ ืื™ืŸ ืžื•ืœื˜ื™-ื“ื™ืจืขืงื˜ืึธืจื™ ืคึผืจืึธื™ืขืงื˜ืŸ, ื•ื•ืื• ื˜ืขืงืขืก ืžื™ื˜ ืื™ื“ืขื ื˜ื™ืฉืข ื‘ืึทื–ืข ื ืขืžืขืŸ ืคื•ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืกื•ื‘ื“ื™ืจืขืงื˜ืึธืจื™ืขืก ื•ื•ืึธืœื˜ืŸ ืื™ื‘ืขืจืฉืจื™ื™ื‘ืŸ ืื™ื™ื ืขืจ ื“ืขื ืึทื ื“ืขืจื ืก ืึธื‘ื™ืขืงื˜ ื˜ืขืงืขืก. ืึธื‘ื™ืขืงื˜ ื˜ืขืงืข ื ืขืžืขืŸ ื•ื•ืขืจืŸ ืื™ืฆื˜ ื“ื–ืฉืขื ืขืจื™ืจื˜ ื‘ืึทื–ื™ืจื˜ ืื•ื™ืฃ ื“ืขื ืคื•ืœืŸ ืจืขืœืึทื˜ื™ื•ื•ืŸ ื“ืจืš ืฆื•ื ืžืงื•ืจ ื˜ืขืงืข.
  • ืื™ืžืคึผืœืขืžืขื ื˜ื™ืจื˜ ืื™ื ื˜ืขืจืึทืงื˜ื™ื•ื•ืŸ ืžืึธื“ืข "fz -shell" ืคึฟืึทืจ ื‘ื•ื™ืขืŸ ืื™ื™ื ืฆื™ืงืข ื˜ืขืงืขืก.
  • ื˜ืขืกื˜ ื“ืขืงื•ื ื’ ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ื’ืขื•ื•ืึธืจืŸ ืคึฟืึทืจ ื“ื™ SplitCommand, CmdSet, ืื•ืŸ CmdBuild ืงืึธืžืึทื ื“ืขืก. ื˜ืขืกื˜ ื“ืขืงื•ื ื’ ืคึฟืึทืจ ื“ื™ ืœื™ื ืงืขืจ ืคึผืขืงืœ ืื™ื– ื’ืขื•ื•ืึทืงืกืŸ ืคึฟื•ืŸ 17% ืฆื• 60%, ืื•ืŸ ื“ืขืงื•ื ื’ ืคึฟืึทืจ ืึทืœืข ืคึผืขืงืœืขืš ืื™ื– ืื™ื‘ืขืจื’ืขืฉื˜ื™ื’ืŸ 40%.
  • ืฆื•ื’ืขื’ืขื‘ืŸ ืึท ื˜ืฉืขืงื˜ื•ืœ ืคืึทืจื‘ื™ื™ึทื˜ ืžืขืงืึทื ื™ื–ืึทื ืคึฟืึทืจ ื˜ืขืกื˜ื™ื ื’ ืกืฆืขื ืึทืจื™ืึธืก ืžื™ื˜ ืคืขืœื ื“ื™ืงืข ื˜ื•ืœื˜ืฉื™ื™ืŸ ืงืึธืžืคึผืึธื ืขื ื˜ืŸ.

ืขื ื“ืขืจื•ื ื’ืขืŸ ืคื•ืŸ ืคืจื™ืขืจื“ื™ืงืข ืื•ื™ืกื’ืื‘ืขืก:

  • ื•ื•ืขืจืกื™ืข 1.8.0 ืื™ืžืคืœืขืžืขื ื˜ื™ืจื˜ ื“ื™ ืืกืขืžื‘ืœื™ ืคื•ืŸ ืกื˜ืื˜ื™ืฉืข ืœื™ื™ื‘ืจืขืจื™ืก (-ื˜ื™ืค ืกื˜ืื˜ื™ืง / -lib), ื–ื™ื›ืขืจื˜ ื“ื™ ืื™ื™ื’ื ืืจื˜ื™ืงื™ื™ื˜ ืคื•ืŸ ืื‘ื™ืขืงื˜ ื˜ืขืงืข ื ืขืžืขืŸ ืื™ืŸ ืžื•ืœื˜ื™-ื“ื™ืจืขืงื˜ืืจ ืคืจืื™ืขืงื˜ืŸ, ืื•ืŸ ืคืืจืจืขื›ื˜ื˜ ืขืจืจืึธืจืก ืื™ืŸ ื“ื™ ืืกืขืžื‘ืœื™ ืกื•ื‘ืกื™ืกื˜ืขื ืฉื™ื™ืš ืฆื• ื“ื™ ื“ื•ืจื›ื’ื™ื™ืŸ ืคื•ืŸ ื“ื™ ".." ื“ืจืš.
  • ื•ื•ืขืจืกื™ืข 1.7.0 ืœื™ื™ื’ื˜ ืฆื• ืคืืจืืœืขืœืข ืงืืžืคื™ืœืืฆื™ืข (-j N, 0 โ€” ืื•ื™ื˜ื-ื“ืขื˜ืขืงืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืฆืืœ ืงืขืจื ืก), ืฉื˜ื™ืฆืข ืคืืจ ืœื™ื ืงืขืจ ืกืงืจื™ืคื˜ืŸ (-T) ืื•ืŸ ืื™ื™ื ื˜ืจื™ื˜ ืคื•ื ืงื˜ ืื“ืจืขืกืŸ (-Ttext), ืื™ื ื˜ืขืจืืงื˜ื™ื•ื•ืŸ ืžืึธื“ื•ืก (fz -shell), ืขืงืกืคึผืœื™ืฆื™ื˜ืข ืื•ื™ืกื•ื•ืืœ ืคื•ืŸ ืื•ื™ื˜ืคึผื•ื˜ ืคึฟืึธืจืžืึทื˜ (elf32, elf64, bin), ืงืืžืคื™ืœืืฆื™ืข ืคื•ืŸ โ€‹โ€‹C++ ื˜ืขืงืขืก (.cpp, .cc, .cxx) ืžื™ื˜ ื“ื™ ื–ืขืœื‘ืข ืฉื˜ืจืขื ื’ืข ื•ื•ืืจืขื ื•ื ื’ ืคืœืึทื’ืก ื•ื•ื™ ืคืืจ C.
  • ื•ื•ืขืจืกื™ืข 1.6.0 ืœื™ื™ื’ื˜ ืฆื• ืคึผืจืึธื™ืขืงื˜ ืื™ื ื™ืฆื™ืึทืœื™ื–ืึทืฆื™ืข (fz -init, ืงืจื™ื™ื™ืฅ .fz.yaml, .fzignore, README.md), ื‘ื™ืŸ ืคึฟืึธืจืžืึทื˜ ืฉื˜ื™ืฆืข (-format bin) ืคึฟืึทืจ ื‘ื•ื˜ืœืึธื•ื“ืขืจืก ืื•ืŸ ืคื™ืจืžื•ื•ืขืจ, ืื•ืŸ ืงืึธื ืคื™ื’ื•ืจืึทืฆื™ืข ืคืขืœื“ืขืจ libs, flags.cc, flags.asm, flags.ld.
  • ื•ื•ืขืจืกื™ืข 1.5.0 ืฉื˜ืขืœื˜ ืคืืจ ืงื™ื™ืคืœ ืงื•ื•ืืœ ื“ื™ืจืขืงื˜ืืจื™ืขืก (source_dirs), ืขืงืกืคึผืœื™ืฆื™ื˜ืข ื˜ืขืงืข ืœื™ืกื˜ืขืก (source_files), ืื™ื ืงืœื•ื“ื™ืจืŸ/ืื•ื™ืกืฉืœื™ืกืŸ ืžื•ืกื˜ืขืจืŸ, ื libs ืคืขืœื“ ืคืืจ ืœื™ื ืงืขืจ ืœื™ื™ื‘ืจืขืจื™ื–, ื“ื™ .fzignore ื˜ืขืงืข, ืื•ืŸ ืžื•ืœื˜ื™-ืœืขื•ื•ืขืœ ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ืคื•ืŸ ืงืื ืคื™ื’ื•ืจืืฆื™ืข ื˜ืขืงืขืก.

ืžืงื•ืจ: opennet.ru

ืงื•ื™ืคืŸ ืคืึทืจืœืึธื–ืœืขืš ื”ืึธืกื˜ื™ื ื’ ืคึฟืึทืจ ื–ื™ื™ื˜ืœืขืš ืžื™ื˜ DDoS ืฉื•ืฅ, VPS VDS ืกืขืจื•ื•ืขืจืก ๐Ÿ”ฅ ืงื•ื™ืคื˜ ืคืึทืจืœืขืกืœืขื›ืข ื•ื•ืขื‘ื–ื™ื™ื˜ืœ ื”ืึธืกื˜ื™ื ื’ ืžื™ื˜ DDoS ืฉื•ืฅ, VPS VDS ืกืขืจื•ื•ืขืจืก | ProHoster