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
