ΠΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΎ Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ 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:
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΡΠ»Π°Π³ΡΡ β-targetβ , ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΊΡΠΎΡ-ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡ ΠΏΡΠ΅ΡΠΈΠΊΡΠ΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌ. fz Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ°, Π»ΠΈΠ½ΠΊΠΎΠ²Π΅ΡΠ΅ ΠΈ Π°ΡΡ ΠΈΠ²Π°ΡΠΎΡΠ° ΠΏΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ βarm-linux-gnueabihf-gccβ). ΠΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ΅ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ ΡΠ΅Π»Π΅Π²ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ GNU, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ arm-linux-gnueabihf, aarch64-linux-gnu ΠΈ riscv64-linux-gnu.
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° LSP (Language Server Protocol). Π€Π»Π°Π³ΡΡ β-compile-commandsβ Π³Π΅Π½Π΅ΡΠΈΡΠ° ΡΠ°ΠΉΠ» compile_commands.json (Compilation Database) Π² ΠΊΠΎΡΠ΅Π½Π° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π€Π°ΠΉΠ»ΡΡ ΡΠ΅ ΡΠ΅ΡΠ΅ ΠΎΡ Π΅Π·ΠΈΠΊΠΎΠ²ΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ. ΡΡΡΠ²ΡΡΠΈ ΠΠΎΠΌΠ°Π½Π΄Π°ΡΠ° fz «-update» ΠΏΡΠ΅Π΄ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ ΡΠ΅Π³Π° Π·Π°ΠΏΠ°Π·Π²Π° ΡΠ΅ΠΊΡΡΠΈΡ Π±ΠΈΠ½Π°ΡΠ΅Π½ ΡΠ°ΠΉΠ» Π² /usr/local/bin/fz.old, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ Π²ΡΡΠ½Π΅ΡΠ΅ ΠΊΡΠΌ ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π±Π΅Π· ΠΏΡΠ΅ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅.
- ΠΠΎΠΌΠ°Π½Π΄Π°ΡΠ° fz β-updateβ ΠΏΡΠ΅Π΄ΠΈ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΡΠ° Π½Π° Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ ΡΠ΅Π³Π° Π·Π°ΠΏΠ°Π·Π²Π° ΡΠ΅ΠΊΡΡΠΈΡ Π±ΠΈΠ½Π°ΡΠ΅Π½ ΡΠ°ΠΉΠ» Π² /usr/local/bin/fz.old, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π²ΡΡΡΠ°Π½Π΅ ΠΊΡΠΌ ΠΏΡΠ΅Π΄Ρ ΠΎΠ΄Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π±Π΅Π· ΠΏΡΠ΅ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡ.
- ΠΡΡΡΡΠ°Π½Π΅Π½Π° Π³ΡΠ΅ΡΠΊΠ°, ΠΏΡΠΈ ΠΊΠΎΡΡΠΎ Π² ΠΌΡΠ»ΡΠΈΠ΄ΠΈΡΠ΅ΠΊΡΠΎΡΠ½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Ρ Π΅Π΄Π½Π°ΠΊΠ²ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΈΠΌΠ΅Π½Π° ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠΈ ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ²Π°Ρ Π° ΠΎΠ±Π΅ΠΊΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈ. ΠΠΌΠ΅Π½Π°ΡΠ° Π½Π° ΠΎΠ±Π΅ΠΊΡΠ½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΠ΅Π³Π° ΡΠ΅ ΡΠΎΡΠΌΠΈΡΠ°Ρ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΡΠ»Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»Π΅Π½ ΠΏΡΡ Π΄ΠΎ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΡΠ°ΠΉΠ».
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π΅ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ βfz -shellβ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ Π΅ ΡΠ΅ΡΡΠΎΠ²ΠΎ ΠΏΠΎΠΊΡΠΈΡΠΈΠ΅ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ SplitCommand, CmdSet ΠΈ CmdBuild. ΠΠΎΠΊΡΠΈΡΠΈΠ΅ Π½Π° ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ Π·Π° ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊ Π΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΎ ΠΎΡ 17% Π΄ΠΎ 60%, Π° ΠΏΠΎΠΊΡΠΈΡΠΈΠ΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ Π½Π°Π΄Ρ Π²ΡΡΠ»ΠΈ 40%.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΠΏΠΎΠ΄ΠΌΡΠ½Π° Π½Π° CheckTool Π·Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ΅Π½Π°ΡΠΈΠΈ Ρ Π»ΠΈΠΏΡΠ²Π°ΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΠΎΡ ΡΡΠ»ΡΠ΅ΠΉΠ½Π°.
ΠΡΠΎΠΌΠ΅Π½ΠΈ ΠΎΡ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈ ΠΈΠ·Π΄Π°Π½ΠΈΡ:
- Π Π²Π΅ΡΡΠΈΡ 1.8.0 Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π½Π° ΡΡΠ°ΡΠΈΡΠ½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (-type static / -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), ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠΎΡΠΌΠ°Ρ bin (-format bin) Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°ΡΠΈ ΠΈ ΡΡΡΠΌΡΠ΅ΡΠΈ, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΠΏΠΎΠ»Π΅ΡΠ° libs, flags.cc, flags.asm, flags.ld.
- Π Π²Π΅ΡΡΠΈΡ 1.5.0 ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π½Π° ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈΡΠ΅ (source_dirs), ΡΠ²Π½ΠΈ ΡΠΏΠΈΡΡΡΠΈ Ρ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ (source_files), ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π·Π° Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅/ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅, ΠΏΠΎΠ»Π΅ libs Π·Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊΠ°, ΡΠ°ΠΉΠ» .fzignore, ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠ»ΠΈΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
