C, C++, рд░ рдЕрд╕реЗрдВрдмрд▓реА рднрд╛рд╖рд╛рд╣рд░реВ (NASM, GAS, FASM) рдорд╛ рд▓реЗрдЦрд┐рдПрдХрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдХрдорд╛рдгреНрдб-рд▓рд╛рдЗрди рдирд┐рд░реНрдорд╛рдг рдЙрдкрдХрд░рдг, ForgeZero 1.9.0 (fz), рдЬрд╛рд░реА рдЧрд░рд┐рдПрдХреЛ рдЫред рдЖрдзрд╛рд░рднреВрдд рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рдпреЛ рдЙрдкрдХрд░рдгрд▓рд╛рдИ Makefile рд╡рд╛ рдЕрдиреНрдп рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓рд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрдиред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛрдб Go рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ рд░ MIT рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрдд рдЗрдЬрд╛рдЬрддрдкрддреНрд░ рдкреНрд░рд╛рдкреНрдд рдЫред
рдлреЛрд░реНрдЬрдЬрд┐рд░реЛрд▓реЗ рдлрд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдБрдЫ рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдЙрдкрдпреБрдХреНрдд рдмреНрдпрд╛рдХрдПрдиреНрдб рдЪрдпрди рдЧрд░реНрдЫред рдкреНрд░рддреНрдпреЗрдХ рдХреЛрдб рдлрд╛рдЗрд▓рд▓рд╛рдИ рд╡рд╕реНрддреБ рдлрд╛рдЗрд▓рдорд╛ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░рд┐рдиреНрдЫ, рддреНрдпрд╕рдкрдЫрд┐ рд╕рдмреИ рд╡рд╕реНрддреБрд╣рд░реВрдорд╛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рдкреНрд░рддреАрдХрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЬрд╛рдБрдЪ рдЧрд░рд┐рдиреНрдЫ рд░ рдПрдХрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдлрд╛рдЗрд▓рдорд╛ рд▓рд┐рдЩреНрдХ рдЧрд░рд┐рдиреНрдЫред рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░рд┐рдПрдХрд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рд╕рдореНрдмрдиреНрдзрд┐рдд рдХреЛрдб рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЧрд░реЗрдкрдЫрд┐ рдорд╛рддреНрд░ рдХреНрдпрд╛рд╕ рд░ рдкреБрди: рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░рд┐рдиреНрдЫред рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдкрдорд╛, рдХреЛрдб рдлрд╛рдЗрд▓ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдкрдЫрд┐ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рдкрд░рд┐рд╡рд░реНрддрди рдЯреНрд░реНрдпрд╛рдХрд┐рдЩ рд░ рдкреБрди: рдХрдореНрдкрд╛рдЗрд▓реЗрд╢рди рд╕рдореНрднрд╡ рдЫред
рд╕рдорд░реНрдерд┐рдд рдХрдореНрдкрд╛рдЗрд▓рд░рд╣рд░реВ GCC, Clang, G++, рд░ Clang++ рд╣реБрдиреН; рдПрд╕реЗрдореНрдмрд▓рд░рд╣рд░реВ NASM, GAS, рд░ FASM рд╣реБрдиреН; рд▓рд┐рдЩреНрдХрд░рд╣рд░реВ LD, GCC, рд░ Clang рд╣реБрдиреН; рд░ AR рдЖрд░реНрдХрд╛рдЗрднрд░ рд╕рдорд░реНрдерд┐рдд рдЫред C рд░ C++ рдХреЛ рд▓рд╛рдЧрд┐ рдЕрдирд┐рд╡рд╛рд░реНрдп рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВ рд╣реБрдиреН: "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion"ред AddressSanitizer рд░ UNdefinedBehaviorSanitizer sanitizers рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рд╕рдХреНрд╖рдо рдЫрдиреН (рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ -sanitize=false рдлреНрд▓реНрдпрд╛рдЧрдХреЛ рд╕рд╛рде рдЕрд╕рдХреНрд╖рдо рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ)ред рд╕рдорд░реНрдерд┐рдд рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВ рд╣реБрдиреН: Linux, macOS, Windows (WSL2 рд░ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд░реВрдкрдорд╛ рдиреЗрдЯрд┐рдн)ред
рд╕рдВрд╕реНрдХрд░рдг рез.резрей.реж рдорд╛ рдореБрдЦреНрдп рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ:
- "-рдЯрд╛рд░реНрдЧреЗрдЯ" рдЭрдгреНрдбрд╛ рдердкрд┐рдпреЛ , рдЬрд╕рд▓реЗ рдЙрдкрдпреБрдХреНрдд рдЙрдкрд╕рд░реНрдЧ рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рд╕рд╛рде рдХреБрдиреИ рдкрдирд┐ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛рдХреЛ рд▓рд╛рдЧрд┐ рдХреНрд░рд╕-рдХрдореНрдкрд╛рдЗрд▓реЗрд╕рди рд╕рдХреНрд╖рдо рдЧрд░реНрджрдЫред 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 рдЖрджреЗрд╢рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реАрдХреНрд╖рдг рдХрднрд░реЗрдЬ рдердкрд┐рдПрдХреЛ рдЫред рд▓рд┐рдЩреНрдХрд░ рдкреНрдпрд╛рдХреЗрдЬрдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реАрдХреНрд╖рдг рдХрднрд░реЗрдЬ резрен% рдмрд╛рдЯ рдмрдвреЗрд░ ремреж% рднрдПрдХреЛ рдЫ, рд░ рд╕рдмреИ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдХрднрд░реЗрдЬ рекреж% рднрдиреНрджрд╛ рдмрдвреА рднрдПрдХреЛ рдЫред
- рд╣рд░рд╛рдПрдХреЛ рдЯреВрд▓рдЪреЗрди рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рднрдПрдХрд╛ рдкрд░рд┐рджреГрд╢реНрдпрд╣рд░реВрдХреЛ рдкрд░реАрдХреНрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐ рдЪреЗрдХрдЯреВрд▓ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕рдВрдпрдиреНрддреНрд░ рдердкрд┐рдпреЛред
рдЕрдШрд┐рд▓реНрд▓рд╛ рд░рд┐рд▓рд┐рдЬрд╣рд░реВрдмрд╛рдЯ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ:
- рд╕рдВрд╕реНрдХрд░рдг рез.рео.реж рд▓реЗ рд╕реНрдерд┐рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрдХреЛ рдПрд╕реЗрдореНрдмрд▓реА (-рдкреНрд░рдХрд╛рд░ рд╕реНрдерд┐рд░ / -lib) рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫ, рдмрд╣реБ-рдирд┐рд░реНрджреЗрд╢рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдорд╛ рд╡рд╕реНрддреБ рдлрд╛рдЗрд▓ рдирд╛рдорд╣рд░реВрдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрджрдЫ, рд░ ".." рдорд╛рд░реНрдЧрдХреЛ рдЯреНрд░реНрдпрд╛рднрд░реНрд╕рд▓рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдПрд╕реЗрдореНрдмрд▓реА рдЙрдкрдкреНрд░рдгрд╛рд▓реАрдорд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрджрдЫред
- рд╕рдВрд╕реНрдХрд░рдг рез.рен.реж рд▓реЗ рд╕рдорд╛рдирд╛рдиреНрддрд░ рд╕рдВрдХрд▓рди (-j N, реж тАФ рдХреЛрд░рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛рдХреЛ рд╕реНрд╡рдд: рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдиреЗ), рд▓рд┐рдЩреНрдХрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди (-T) рд░ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрд┐рдиреНрджреБ рдареЗрдЧрд╛рдирд╛рд╣рд░реВ (-Ttext), рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдореЛрдб (fz -shell), рдЖрдЙрдЯрдкреБрдЯ рдврд╛рдБрдЪрд╛рдХреЛ рд╕реНрдкрд╖реНрдЯ рдЪрдпрди (elf32, elf64, bin), C++ рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд╕рдВрдХрд▓рди (.cpp, .cc, .cxx) C рдХреЛ рд▓рд╛рдЧрд┐ рдЬрд╕реНрддреИ рдХрдбрд╛ рдЪреЗрддрд╛рд╡рдиреА рдЭрдгреНрдбрд╛рд╣рд░реВ рд╕рд╣рд┐рдд рдердкреНрдЫред
- рд╕рдВрд╕реНрдХрд░рдг рез.рем.реж рд▓реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХрд░рдг (fz -init, рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫ .fz.yaml, .fzignore, README.md), рдмреБрдЯрд▓реЛрдбрд░рд╣рд░реВ рд░ рдлрд░реНрдорд╡реЗрдпрд░рдХреЛ рд▓рд╛рдЧрд┐ рдмрд┐рди рдврд╛рдБрдЪрд╛ рд╕рдорд░реНрдерди (-рдлреЙрд░реНрдореЗрдЯ рдмрд┐рди), рд░ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд┐рд▓реНрдбрд╣рд░реВ libs, flags.cc, flags.asm, flags.ld рдердкреНрдЫред
- рд╕рдВрд╕реНрдХрд░рдг рез.рел.реж рд▓реЗ рдзреЗрд░реИ рд╕реНрд░реЛрдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рд╣рд░реВ (source_dirs), рд╕реНрдкрд╖реНрдЯ рдлрд╛рдЗрд▓ рд╕реВрдЪреАрд╣рд░реВ (source_files), рд╕рдорд╛рд╡реЗрд╢/рдмрд╣рд┐рд╖реНрдХрд╛рд░ рдврд╛рдБрдЪрд╛рд╣рд░реВ, рд▓рд┐рдЩреНрдХрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ libs рдХреНрд╖реЗрддреНрд░, .fzignore рдлрд╛рдЗрд▓, рд░ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рдмрд╣реБ-рд╕реНрддрд░реАрдп рдорд░реНрдЬрд░ рдкреНрд░рд╕реНрддреБрдд рдЧрд░реНрджрдЫред
рд╕реНрд░реЛрдд: opennet.ru
