C, C++ рдФрд░ рдЕрд╕реЗрдВрдмрд▓реА рднрд╛рд╖рд╛рдУрдВ (NASM, GAS, FASM) рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдмрд┐рд▓реНрдб рдЯреВрд▓ ForgeZero 1.9.0 (fz) рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдЯреВрд▓ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП 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 рдореЗрдВ рд╕рдордЧреНрд░ рд╡рд┐рд╡рд░рдг:
- "-target" рдлрд╝реНрд▓реИрдЧ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдпрд╣ рдЙрдкрдпреБрдХреНрдд рдкреНрд░реАрдлрд╝рд┐рдХреНрд╕ рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдХреНрд░реЙрд╕-рдХрдВрдкрд╛рдЗрд▓реЗрд╢рди рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред fz рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ (рдЬреИрд╕реЗ, "arm-linux-gnueabihf-gcc") рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрдВрдкрд╛рдЗрд▓рд░, рд▓рд┐рдВрдХрд░ рдФрд░ рдЖрд░реНрдХрд╛рдЗрд╡рд░ рдХреЗ рдирд╛рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред arm-linux-gnueabihf, aarch64-linux-gnu рдФрд░ riscv64-linux-gnu рд╕рд╣рд┐рдд рд╕рднреА рдорд╛рдирдХ 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
