ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ GCC 10 ืงืึทืžืคึผื™ื™ืœืขืจ ืกื•ื•ื™ื˜

ื ืึธืš ืึท ื™ืึธืจ ืคื•ืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืืจื•ื™ืก ืžืขืœื“ื•ื ื’ ืคื•ืŸ ืึท ืคืจื™ื™ ื’ืึทื ื’ ืคื•ืŸ ืงืึธืžืคึผื™ืœืขืจืก GCC 10.1, ื“ืขืจ ืขืจืฉื˜ืขืจ ื”ื•ื™ืคึผื˜ ืžืขืœื“ื•ื ื’ ืื™ืŸ ื“ื™ ื ื™ื™ึทืข GCC 10.x ืฆื•ื•ื™ื™ึทื’. ืœื•ื™ื˜ ื ื™ื™ึท ืกื›ืขืžืข ืžืขืœื“ื•ื ื’ ื ื•ืžืขืจืŸ, ื•ื•ืขืจืกื™ืข 10.0 ืื™ื– ื’ืขื ื™ืฆื˜ ืื™ืŸ ื“ืขืจ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคึผืจืึธืฆืขืก, ืื•ืŸ ื‘ืึทืœื“ ืื™ื™ื“ืขืจ ื“ื™ ืžืขืœื“ื•ื ื’ ืคื•ืŸ GCC 10.1, ื“ื™ GCC 11.0 ืฆื•ื•ื™ื™ึทื’ ื”ืื˜ ืฉื•ื™ืŸ ื‘ืจืึทื ื˜ืฉื˜ ืึทื•ื•ืขืง, ืื•ื™ืฃ ื“ืขืจ ื‘ืื–ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื•ื•ืึธืก ื“ื™ ื•ื•ื™ื™ึทื˜ืขืจ ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ืžืขืœื“ื•ื ื’, GCC 11.1, ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ื’ืขืฉืืคืŸ.

GCC 10.1 ืื™ื– ื ืึธื•ื˜ืึทื‘ืึทืœ ืคึฟืึทืจ ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ืคื™ืœืข ื™ื ืึธื•ื•ื•ื™ื™ืฉืึทื ื– ืื™ืŸ ื“ื™ C ++ ืฉืคึผืจืึทืš ื“ืขื•ื•ืขืœืึธืคึผืขื“ ืคึฟืึทืจ ื“ื™ C ++ 20 ื ืึธืจืžืึทืœ, ื™ืžืคึผืจื•ื•ื•ืžืึทื ืฅ ืฉื™ื™ึทื›ื•ืช ืฆื• ื“ืขืจ ืฆื•ืงื•ื ืคึฟื˜ C ืฉืคึผืจืึทืš ื ืึธืจืžืึทืœ (C2x), ื ื™ื™ึทืข ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก ืื™ืŸ ื“ื™ ืงืึทืžืคึผื™ื™ืœืขืจ ื‘ืึทืงืขื ื“ื– ืื•ืŸ ื™ืงืกืคึผืขืจืžืขื ืึทืœ ืฉื˜ื™ืฆืŸ ืกื˜ืึทื˜ื™ืง ืึทื ืึทืœื™ืกื™ืก ืžืึธื“ืข. ืื™ืŸ ื“ืขืจืฆื•, ื‘ืขืฉืึทืก ื“ื™ ืฆื•ื’ืจื™ื™ื˜ื•ื ื’ ืคื•ืŸ ืึท ื ื™ื™ึท ืฆื•ื•ื™ื™ึทื’, ื“ื™ ืคึผืจื•ื™ืขืงื˜ ื˜ืจืึทื ืกืคืขืจื“ ื“ื™ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ืคื•ืŸ SVN ืฆื• ื’ื™ื˜.

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

  • ืฆื•ื’ืขื’ืขื‘ืŸ ื™ืงืกืคึผืขืจืžืขื ืึทืœ ืžืึธื“ืข ืคื•ืŸ โ€‹โ€‹ืกื˜ืึทื˜ื™ืง ืึทื ืึทืœื™ืกื™ืก "-ืคืึทื ืึทืœื™ื–ืขืจ", ื•ื•ืึธืก ืคึผืขืจืคืึธืจืžื– ืžื™ื˜ืœ-ืื™ื ื˜ืขื ืกื™ื•ื•ืข ื™ื ื˜ืขืจืคึผืจืึทืกื™ื“ื–ืฉืขืจืึทืœ ืึทื ืึทืœื™ืกื™ืก ืคื•ืŸ ืงืึธื“ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืคึผืึทื˜ืก ืื•ืŸ ื“ืึทื˜ืŸ ืคืœืึธื•ื– ืื™ืŸ ืึท ืคึผืจืึธื’ืจืึทื. ื“ืขืจ ืžืึธื“ืข ืื™ื– ื˜ื•ื™ื’ืขื•ื•ื“ื™ืง ืคื•ืŸ ื“ื™ื˜ืขืงื˜ื™ื ื’ ืคึผืจืึธื‘ืœืขืžืก ืื™ืŸ ื“ืขืจ ื–ืึทืžืœื•ื ื’ ื‘ื™ื ืข, ืึทื–ืึท ื•ื•ื™ ื˜ืึธืคึผืœ ืงืึทืœืœืก ืฆื• ื“ื™ ืคืจื™ื™ () ืคึฟื•ื ืงืฆื™ืข ืคึฟืึทืจ ืื™ื™ืŸ ื–ื›ึผืจื•ืŸ ื’ืขื’ื ื˜, ื˜ืขืงืข ื“ื™ืกืงืจื™ืคึผื˜ืึธืจ ืœื™ืงืก, ื“ืขืจืคื™ืจืึทื ืกื™ื ื’ ืื•ืŸ ืคืึธืจืŸ ื ืึทืœ ืคึผื•ื™ื ื˜ืขืจื–, ืึทืงืกืขืก ืคืจื™ื™ ื–ื™ืงืึธืจืŸ ื‘ืœืึทืงืก, ื ื™ืฆืŸ ืึทื ื™ื ื™ืฉื™ืึทืœื™ื™ื–ื“ ื•ื•ืึทืœื•ืขืก, ืขื˜ืง. ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื“ื™ ื ื™ื™ึทืข ืžืึธื“ืข ืคึฟืึทืจ OpenSSL ืงืึธื“ ื”ืื˜ ืฉื•ื™ืŸ ื’ืขืžืื›ื˜ ืขืก ืžืขื’ืœืขืš ืฆื• ื™ื“ืขื ื˜ื™ืคื™ืฆื™ืจืŸ ื’ืขืคืขืจืœืขืš ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™.
  • ื™ืžืคึผืจื•ื•ื•ื“ ื™ื ื˜ืขืจืคึผืจืึทืกื™ื“ื–ืฉืขืจืึทืœ ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก. ื“ื™ IPA-SRA (Interprocedural Scalar Shared Replacement) ืคืึธืจืŸ ืื™ื– ืจื™ื“ื™ื–ื™ื™ื ื“ ืฆื• ืึทืจื‘ืขื˜ืŸ ืื™ืŸ ื‘ื™ื ื“ืŸ ืฆื™ื™ื˜ ืื•ืŸ, ืฆื•ื•ื™ืฉืŸ ืื ื“ืขืจืข ื–ืื›ืŸ, ืื™ืฆื˜ ืจื™ืžื•ื•ื•ื– ืงืึทืžืคึผื™ื•ื˜ืึทื“ ืื•ืŸ ืื•ืžื’ืขืงืขืจื˜ ืึทื ื™ื•ื–ื“ ื•ื•ืึทืœื•ืขืก. ืื™ืŸ ื“ื™ "-O2" ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ืžืึธื“ืข, ื“ื™ "-ืคื™ื ืœื™ื ืข-ืคื•ื ืงืฆื™ืขืก" ืึธืคึผืฆื™ืข ืื™ื– ืขื ื™ื™ื‘ืึทืœื“, ื•ื•ืึธืก ืื™ื– ืจื™ื˜ื•ื•ื ื“ืŸ ืฆื• ื˜ื•ื™ื•ื•ืข ืžืขืจ ืกืึธืœื™ื“ ืงืึธื“ ืื™ื‘ืขืจ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืคืึธืจืฉื˜ืขืœื•ื ื’. ื“ื™ ืึทืจื‘ืขื˜ ืคื•ืŸ ื“ื™ ื›ื™ื•ืจื™ืกื˜ื™ืง ืคึฟืึทืจ ื™ื ืœื™ื ืข ืคื•ื ืงืฆื™ืข ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืื™ื– ืึทืงืกืขืœืขืจื™ื™ื˜ื™ื“. ื™ื ืœื™ื ืข ื™ืงืกืคึผืึทื ืฉืึทืŸ ืื•ืŸ ืคื•ื ืงืฆื™ืข ืงืœืึธื•ื ื™ื ื’ ื›ื™ื•ืจื™ืกื˜ื™ืงืก ืงืขื ืขืŸ ืื™ืฆื˜ ื ื•ืฆืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื•ื•ืขืจื˜ ืจื™ื™ื ื“ื–ืฉืึทื– ืฆื• ืคืึธืจื•ื™ืกื–ืึธื’ืŸ ื“ื™ ื™ืคืขืงื˜ื™ื•ื•ื ืึทืก ืคื•ืŸ ื™ื—ื™ื“ ื˜ืจืึทื ืกืคืขืจืžื™ื™ืฉืึทื ื–. ืคึฟืึทืจ C ++, ื“ื™ ืึทืงื™ืขืจืึทืกื™ ืคื•ืŸ ื˜ื™ืคึผ-ื‘ืื–ื™ืจื˜ ืึทืœื™ืึทืก ืคึผืึทืจืกื™ื ื’ ืื™ื– ื™ืžืคึผืจื•ื•ื•ื“.
  • ืขื ื›ืึทื ืกื˜ ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ ืฆื™ื™ื˜ ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก (ืœื˜ืึธ). ืฆื•ื’ืขื’ืขื‘ืŸ ื ื™ื™ึท ืขืงืกืขืงื•ื˜ืึทื‘ืœืข ืœื˜ืึธ-ื“ืึทืžืคึผ ืฆื• ื‘ืึทืฉื˜ืขื˜ื™ืง ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ืึธื‘ื“ื–ืฉืขืงื˜ ื˜ืขืงืขืก ืžื™ื˜ ืœื˜ืึธ ื‘ื™ื˜ืขืงืึธื“ืข. ืคึผืึทืจืึทืœืขืœ ืœื˜ืึธ ืคึผืึทืกื™ื– ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ื‘ืึทืฉื˜ื™ืžืขืŸ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืกื™ื™ืžืึทืœื˜ื™ื™ื ื™ืึทืกืœื™ ืคืœื™ืกื ื“ื™ืง ืžืึทื›ืŸ ื˜ืึทืกืงืก ืื•ืŸ, ืื•ื™ื‘ ื–ื™ื™ ืงืขื ืขืŸ ื ื™ื˜ ื–ื™ื™ืŸ ื‘ืืฉืœืืกืŸ, ื ื•ืฆืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืงืคึผื• ืงืึธืจืขืก ื•ื•ื™ ืึท ืคึผืึทืจืึทืœืขืœื™ื–ืึทื˜ื™ืึธืŸ ืคืึทืงื˜ืึธืจ. ืฆื•ื’ืขืœื™ื™ื’ื˜ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืงืึธืžืคึผืจืขืก LTO ื‘ื™ื˜ืขืงืึธื“ืข ื ื™ืฆืŸ ื“ื™ zstd ืึทืœื’ืขืจื™ื“ืึทื.
  • ื“ื™ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ืžืขืงืึทื ื™ื–ืึทื ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ืŸ ืคื•ืŸ ืงืึธื“ ืคึผืจืึธืคื™ืœื™ื ื’ (PGO - ืคึผืจืึธืคื™ืœ-ื’ื™ื™ื“ื™ื“ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ) ืื™ื– ื™ืžืคึผืจื•ื•ื•ื“, ื•ื•ืึธืก ื“ื–ืฉืขื ืขืจื™ื™ืฅ ืžืขืจ ืึธืคึผื˜ื™ืžืึทืœ ืงืึธื“ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืึทืŸ ืึทื ืึทืœื™ืกื™ืก ืคื•ืŸ ื“ื™ ืงืขืจืึทืงื˜ืขืจื™ืกื˜ื™ืงืก ืคื•ืŸ ืงืึธื“ ื“ื•ืจื›ืคื™ืจื•ื ื’. ื™ืžืคึผืจื•ื•ื•ื“ ืคึผืจืึธืคื™ืœ ื•ื™ืฉืึทืœื˜ ื‘ืขืฉืึทืก ื–ืึทืžืœื•ื ื’ ืื•ืŸ ื”ื™ื™ืก / ืงืึทืœื˜ ืงืึธื“ ืฆืขืฉื™ื™ื“ื•ื ื’. ื“ื•ืจืš ื“ื™ ืึธืคึผืฆื™ืข "-ืคืคึผืจืึธืคื™ืœืข ื•ื•ืึทืœื•ืขืกยป ืงืขื ืขืŸ ืื™ืฆื˜ ืžืึธื ื™ื˜ืึธืจ ืึทืจื•ื™ืฃ ืฆื• 4 ืคึผืจืึธืคื™ืœ ื•ื•ืึทืœื•ืขืก, ืœืžืฉืœ ืคึฟืึทืจ ื•ืžื“ื™ืจืขืงื˜ ืงืึทืœืœืก ืื•ืŸ ืฆื•ืฉื˜ืขืœืŸ ืžืขืจ ื’ืขื ื•ื™ ืคึผืจืึธืคื™ืœ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข.
  • ืคึผืึทืจืึทืœืขืœ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ื™ืžืคึผืœืึทืžืขื ืึทื“ ืคึฟืึทืจ C, C ++ ืื•ืŸ ืคืึธืจื˜ืจืึทืŸ ืฉืคึผืจืึทื›ืŸ OpenACC 2.6, ื•ื•ืึธืก ื“ื™ืคื™ื™ื ื– ืžื›ืฉื™ืจื™ื ืคึฟืึทืจ ืึธืคืœืึธื•ื“ื™ื ื’ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืื•ื™ืฃ ื’ืคึผื•ืก ืื•ืŸ ืกืคึผืขืฉืึทืœื™ื™ื–ื“ ืคึผืจืึทืกืขืกืขืจื– ืึทื–ืึท ื•ื•ื™ NVIDIA PTX. ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืกื˜ืึทื ื“ืึทืจื˜ ืื™ื– ื›ึผืžืขื˜ ื’ืึทื ืฅ ืขืคึฟืขื ืขืŸ MP 5.0 (Open Multi-Processing), ื•ื•ืึธืก ื“ื™ืคื™ื™ื ื– ื“ื™ ืึทืคึผื™ ืื•ืŸ ืžืขื˜ื”ืึธื“ืก ืคื•ืŸ ืึทืคึผืœื™ื™ื™ื ื’ ืคึผืึทืจืึทืœืขืœ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืžืขื˜ื”ืึธื“ืก ืื•ื™ืฃ ืžื•ืœื˜ื™-ื”ืึทืจืฅ ืื•ืŸ ื›ื™ื™ื‘ืจื™ื“ (CPU + GPU / DSP) ืกื™ืกื˜ืขืžืขืŸ ืžื™ื˜ ืฉืขืจื“ ื–ื›ึผืจื•ืŸ ืื•ืŸ ื•ื•ืขืงื˜ืึธืจื™ื–ืึทื˜ื™ืึธืŸ ื•ื ื™ืฅ (SIMD). ืฆื•ื’ืขืœื™ื™ื’ื˜ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืึทื–ืึท ื•ื•ื™ ืœืึทืกื˜ ืคึผืจื™ื•ื•ืึทื˜ ืงืึทื ื“ื™ืฉืึทื ืึทืœื–, ื™ื‘ืขืจืงื•ืงืŸ ืื•ืŸ ืฉืœื™ื™ืฃ ื“ื™ื™ืจืขืงื˜ื™ื•ื•ื–, ืกื“ืจ ืื•ืŸ use_device_addr ืื•ื™ืกื“ืจื•ืงืŸ. ืคึฟืึทืจ OpenMP ืื•ืŸ OpenACC, ืฉื˜ื™ืฆืŸ ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืคึฟืึทืจ ืึธืคืœืึธื•ื“ื™ื ื’ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืื•ื™ืฃ ืคืขืจื˜-ื“ื•ืจ (ืคื™ื“ื–ืฉื™) ืื•ืŸ ืคื™ื ืคื˜-ื“ื•ืจ ืึทืžื“ ืจืึทื“ืขืึธืŸ (GCN) ื’ืคึผื•ืก (VEGA 10 / VEGA 20).
  • ืคึฟืึทืจ ืฉืคึผืจืึทื›ืŸ ืคื•ืŸ ื“ื™ C ืžืฉืคึผื—ื”, ื“ื™ "ืฆื•ื˜ืจื™ื˜" ืคึฟื•ื ืงืฆื™ืข ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื“ื™ ืึทืงืกืขืก ืคื•ืŸ ื“ื™ ืคื•ื ืงืฆื™ืข ืฆื• ืึทื‘ื“ื–ืฉืขืงืฅ ื“ื•ืจื›ื’ืขื’ืื ื’ืขืŸ ื“ื•ืจืš ืจืขืคึฟืขืจืขื ืฅ ืึธื“ืขืจ ื˜ื™ื™ึทื˜ืœ, ืื•ืŸ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืึทื–ืึท ืึทื‘ื“ื–ืฉืขืงืฅ ืžื™ื˜ ื™ื ื˜ืึทื“ื–ืฉืขืจ ืึทืจื’ื•ืžืขื ื˜ืŸ ืžื™ื˜ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ ื“ื™ ืึทื‘ื“ื–ืฉืขืงืฅ. ืฆื• ืึทืจื‘ืขื˜ืŸ ืื™ืŸ ืงืึทื ื“ื–ืฉืึทื ื’ืงืฉืึทืŸ ืžื™ื˜ "ืฆื•ื˜ืจื™ื˜", ื“ื™ "ื˜ื™ืคึผ" ืึทื˜ืจื™ื‘ื™ื•ื˜ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ืฆื• ื“ืขื˜ืขืงื˜ ืคืึทืœืฉ ืึทืงืกืขืก ืคึฟื•ืŸ ื‘ืึทื ื™ืฆืขืจ ืคืึทื ื’ืงืฉืึทื ื–, ืœืžืฉืœ, ื•ื•ืขืŸ ืฉืจื™ื™ื‘ืŸ ื•ื•ืึทืœื•ืขืก ืฆื• ืึท ื’ืขื’ื ื˜ ืึทืจื•ื™ืก ื“ื™ ื’ืจืขื ืขืฅ ืคื•ืŸ ื“ื™ ืžืขื ื’ืข. ืื•ื™ืš ืฆื•ื’ืขืœื™ื™ื’ื˜ ืื™ื– ื“ื™ "ืกื™ืžื•ื•ืขืจ" ืึทื˜ืจื™ื‘ื™ื•ื˜ ืฆื• ืคืึทืจื‘ื™ื ื“ืŸ ืกื™ืžื‘ืึธืœืก ืื™ืŸ ืึทืŸ ELF ื˜ืขืงืข ืžื™ื˜ ืกืคึผืขืฆื™ืคื™ืฉ ื•ื•ืขืจืกื™ืข ื ื•ืžืขืจืŸ.
  • ื ื™ื™ืข ื•ื•ืึธืจื ื™ื ื’ื– ืฆื•ื’ืขื’ืขื‘ืŸ:
    • "-Wstring-compare" (ืขื ื™ื™ื‘ืึทืœื“ ืžื™ื˜ "-ื•ื•ืขืงืกื˜ืจืึท") - ื•ื•ืึธืจื ื– ื•ื•ืขื’ืŸ ื“ื™ ื‘ื™ื™ึทื–ื™ื™ึทืŸ ืคื•ืŸ ืื•ื™ืกื“ืจื•ืงืŸ ืื™ืŸ ื•ื•ืึธืก ื ื•ืœ ืื™ื– ืงืึทืžืคึผืขืจื“ ืžื™ื˜ ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ืจื•ืคืŸ ื“ื™ Strcmp ืื•ืŸ Strncmp ืคืึทื ื’ืงืฉืึทื ื–, ื•ื•ืึธืก ืื™ื– ืขืงื•ื•ื™ื•ื•ืึทืœืขื ื˜ ืฆื• ืึท ืงืขืกื™ื™ื“ืขืจื“ื™ืง ืจืขื›ื˜ ืฆื• ื“ืขื ืคืึทืงื˜ ืึทื– ื“ื™ ืœืขื ื’ ืคื•ืŸ ืื™ื™ืŸ ืึทืจื’ื•ืžืขื ื˜ ืื™ื– ื’ืจืขืกืขืจ ื•ื•ื™ ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ ื“ื™ ืžืขื ื’ืข ืื™ืŸ ื“ื™ ืจื’ืข ืึทืจื’ื•ืžืขื ื˜.
    • "-Wzero-length-bounds" (ืขื ื™ื™ื‘ืึทืœื“ ืžื™ื˜ "-Warray-bounds") - ื•ื•ืึธืจื ื– ื•ื•ืขื’ืŸ ืึทืงืกืขืก ืžืขื ื’ืข ืขืœืขืžืขื ื˜ืŸ ืคื•ืŸ ื ื•ืœ ืœืขื ื’, ื•ื•ืึธืก ืงืขืŸ ืคื™ืจืŸ ืฆื• ืึธื•ื•ื•ืขืจืจื™ื™ื˜ื™ื ื’ ืื ื“ืขืจืข ื“ืึทื˜ืŸ.
    • ื“ื™ "-Warray-bounds", "-Wformat-overflow", "-Wrestrict", "-Wreturn-local-addr" ืื•ืŸ "-Wstringop-overflow" ื•ื•ืึธืจื ื™ื ื’ื– ื–ืขื ืขืŸ ื™ืงืกืคึผืึทื ื“ื™ื“ ืฆื• ื™ืงืกืคึผืึทื ื“ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืื•ื™ืก-ืคื•ืŸ-ื‘ืึทื•ื ื“ ืกื™ื˜ื•ืึทื˜ื™ืึธื ืก. ื•ื•ืึธืก ื–ืขื ืขืŸ ื›ืึทื ื“ืึทืœื“.
  • ื™ืžืคึผืœืึทืžืขื ื˜ืึทื“ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื’ืœื™ื™ืš ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ื‘ืจื™ื™ื˜ ืื•ืชื™ื•ืช ืื™ืŸ ื™ื“ืขื ื˜ื™ืคื™ืขืจืก ื ื™ืฆืŸ ื“ื™ ืงืจืึทื ื˜ ืงืึธื“ื™ืจื•ื ื’ (UTF-8 ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜) ืืœื ื•ื•ื™ UCN ื ืึธื•ื˜ื™ื™ืฉืึทืŸ (\uNNNN ืึธื“ืขืจ \UNNNNNNNNN). ืœืžืฉืœ:

    ืกื˜ืึทื˜ื™ืง ืงืึธื ืกื˜ ื™ื ื˜ ฯ€ = 3;
    int get_naรฏve_pi() {
    ืฆื•ืจื™ืงืงื•ืžืขืŸ ฯ€;
    }

  • ืคึฟืึทืจ ื“ื™ C ืฉืคึผืจืึทืš, ืึท ื˜ื™ื™ืœ ืคื•ืŸ ื ื™ื™ึทืข ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ื“ืขื•ื•ืขืœืึธืคึผืขื“ ืื™ืŸ ื“ื™ C2X ื ืึธืจืžืึทืœ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ (ืขื ื™ื™ื‘ืึทืœื“ ื“ื•ืจืš ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ -std = c2x ืื•ืŸ -std = gnu2x): ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ "[[]]" ืกื™ื ื˜ืึทืงืก ืื™ื– ืืจื•ื™ืก ืคึฟืึทืจ ื“ื™ืคื™ื™ื ื™ื ื’ ืึทื˜ืจื™ื‘ื™ื•ืฅ ื•ื•ื™ ืื™ืŸ C++ (ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, [[gnu ::const]], [[ื“ืขืคึผืจื™ืงื™ื™ื˜ื™ื“]], [[ืคืึทืœืกื˜ืจืึธื•ื’ื”]] ืื•ืŸ [[ืžื™ื™ึทื‘ืข_ืึทื ื™ื•ื–ื“]]. ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ "u8" ืกื™ื ื˜ืึทืงืก ืคึฟืึทืจ ื“ื™ืคื™ื™ื ื™ื ื’ ืงืึทื ืกื˜ืึทื ืฅ ืžื™ื˜ UTF-8 ืื•ืชื™ื•ืช.
    ืžื•ืกื™ืฃ ื ื™ื™ึท ืžืึทืงืจืึธืก ืฆื• . ืฆื•ื’ืขื’ืขื‘ืŸ "% ืึธื‘" ืื•ืŸ "% ืึธื‘" ืกืึทื‘ืกื˜ื™ื˜ื™ื•ืฉืึทื ื– ืฆื• strftime.

  • ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ืžืึธื“ืข ืคึฟืึทืจ C ืื™ื– "-fno-common", ื•ื•ืึธืก ืึทืœืึทื•ื– ืžืขืจ ืขืคืขืงื˜ื™ื•ื• ืึทืงืกืขืก ืฆื• ื’ืœืื‘ืืœืข ื•ื•ืขืจื™ืึทื‘ืึทืœื– ืื•ื™ืฃ ืขื˜ืœืขื›ืข ืคึผืœืึทื˜ืคืึธืจืžืก.
  • ืคึฟืึทืจ C ++, ื•ื•ืขื’ืŸ 16 ืขื ื“ืขืจื•ื ื’ืขืŸ ืื•ืŸ ื™ื ืึธื•ื•ื•ื™ื™ืฉืึทื ื– ื–ืขื ืขืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“, ื“ืขื•ื•ืขืœืึธืคึผืขื“ ืื™ืŸ ื“ื™ C ++ 20 ื ืึธืจืžืึทืœ. ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื“ื™ ืฆื•ื’ืขื’ืขื‘ืŸ ืงื™ื•ื•ืขืจื“ "constinit"
    ืื•ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืžื•ืกื˜ืขืจ ื™ืงืกื˜ืขื ืฉืึทื ื– ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ "ืงืึทื ืกืขืคึผืก". ืงืึทื ืกืขืคึผืก ืœืึธื–ืŸ ืื™ืจ ืฆื• ื“ืขืคื™ื ื™ืจืŸ ืึท ืกื›ื•ื ืคื•ืŸ ื˜ืขืžืคึผืœืึทื˜ืข ืคึผืึทืจืึทืžืขื˜ืขืจ ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ ื•ื•ืึธืก, ืื™ืŸ ื“ื™ ืฆื•ื ื•ื™ืคื ืขืžืขืŸ ืฆื™ื™ื˜, ื‘ืึทื’ืจืขื ืขืฆืŸ ื“ื™ ื’ืึทื ื’ ืคื•ืŸ ืึทืจื’ื•ืžืขื ื˜ืŸ ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืื ื’ืขื ื•ืžืขืŸ ื•ื•ื™ ืžื•ืกื˜ืขืจ ืคึผืึทืจืึทืžืขื˜ืขืจืก. ื“ื™ ืงืึทื ืกืขืคึผืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืฆื• ื•ื™ืกืžื™ื™ื“ืŸ ืœืึทื“ื–ืฉื™ืงืึทืœ ื™ื ื’ืงืึทื ืกื™ืกื˜ืขื ืกื™ื– ืฆื•ื•ื™ืฉืŸ ื“ื™ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืคื•ืŸ ื“ื™ ื“ืึทื˜ืŸ ื˜ื™ื™ืคึผืก ื’ืขื ื™ืฆื˜ ืื™ืŸ ื“ืขื ืžื•ืกื˜ืขืจ ืื•ืŸ ื“ื™ ื“ืึทื˜ืŸ ื˜ื™ืคึผ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืคื•ืŸ ื“ื™ ืึทืจื™ื™ึทื ืฉืจื™ื™ึทื‘ ืคึผืึทืจืึทืžืขื˜ืขืจืก.

  • G ++ ื’ื™ื˜ ื“ื™ื˜ืขืงืฉืึทืŸ ืคื•ืŸ ืึทื ื“ื™ืคื™ื™ื ื“ ื ืึทื˜ื•ืจ ื’ืขืคึฟื™ืจื˜ ื“ื•ืจืš ื˜ืฉืึทื ื’ื™ื ื’ ืงืขืกื™ื™ื“ืขืจื“ื™ืง ืึทื‘ื“ื–ืฉืขืงืฅ ื“ื•ืจืš ืงืึธื ืกื˜ืขืงืกืคึผืจ. ืจื™ื“ื•ืกื˜ ื–ื™ืงืึธืจืŸ ืงืึทื ืกืึทืžืฉืึทืŸ ื“ื•ืจืš ื“ื™ ืงืึทืžืคึผื™ื™ืœืขืจ ื•ื•ืขืŸ ืงืึทืœืงื™ืึทืœื™ื™ื˜ื™ื ื’ ืงืึธื ืกื˜ืขืงืกืคึผืจ. ืฆื•ื’ืขืœื™ื™ื’ื˜ ื ื™ื™ึทืข ื•ื•ืึธืจื ื™ื ื’ื– "-Wmismatched-tags" ืื•ืŸ "-Wredundant-tags".
  • ื ื™ื™ึทืข ื‘ืึทืคึฟืขืœืŸ ืฉื•ืจื” ืึธืคึผืฆื™ืขืก ื–ืขื ืขืŸ ืคืืจื’ืขืœื™ื™ื’ื˜:
    • "-fallocation-dce" ืฆื• ื‘ืึทื–ื™ื™ึทื˜ื™ืงืŸ ื•ืžื ื™ื™ื˜ื™ืง ืคึผืขืจื– ืคื•ืŸ "ื ื™ื™ึท" ืื•ืŸ "ื•ื™ืกืžืขืงืŸ" ืึธืคึผืขืจื™ื™ื˜ืขืจื–.
    • "-fprofile-partial-training" ืฆื• ื“ื™ืกื™ื™ื‘ืึทืœ ื’ืจื™ื™ืก ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ืคึฟืึทืจ ืงืึธื“ ื•ื•ืึธืก ื˜ื•ื˜ ื ื™ืฉื˜ ื”ืึธื‘ืŸ ืึท ื˜ืจื™ื™ื ื™ื ื’ ืœื•ื™ืคืŸ.
    • "-fprofile-reproducible ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ืžื“ืจื’ื” ืคื•ืŸ ืคึผืจืึธืคื™ืœ ืจืขืคึผืจืึธื“ื•ืกื™ื‘ื™ืœื™ื˜ื™.
    • "-fprofile-prefix-path" ืฆื• ื“ืขืคื™ื ื™ืจืŸ ื“ื™ ื‘ืึทื–ืข ืžืงื•ืจ ื‘ื•ื™ืขืŸ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ื’ืขื ื™ืฆื˜ ืคึฟืึทืจ ื‘ืึทื–ื•ื ื“ืขืจ ืคึผืจืึธืคื™ืœ ื“ื•ืจ (ืคึฟืึทืจ "-fprofile-generate=profile_dir" ืื•ืŸ "-fprofile-use=profile_dir").
  • ืื™ืŸ ื“ื™ ื•ื•ืืจืขื ื•ื ื’ ื˜ืขืงืกื˜ ืคึฟืึทืจ ื“ื™ ื“ืขืจืžืื ื˜ ืึธืคึผืฆื™ืขืก, ื›ื™ื™ืคึผืขืจืœื™ื ื’ืงืก ื–ืขื ืขืŸ ืฆื•ื’ืขืฉื˜ืขืœื˜ ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื’ื™ื™ืŸ ืฆื• ื“ื™ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืคึฟืึทืจ ื“ื™ ืึธืคึผืฆื™ืขืก. URL ืกืึทื‘ืกื˜ื™ื˜ื•ืฉืึทืŸ ืื™ื– ืงืึทื ื˜ืจืึธื•ืœื“ ืžื™ื˜ ื“ื™ "-fdiagnostics-urls" ืึธืคึผืฆื™ืข.
  • ืฆื•ื’ืขื’ืขื‘ืŸ ืคึผืจืขืคึผืจืึทืกืขืกืขืจ ืึธืคึผืขืจืึทื˜ืึธืจ "__ื”ืื˜_ ื’ืขื‘ื•ื™ื˜", ื•ื•ืึธืก ืงืขื ืขืŸ ื•ื•ืขืจืŸ ื’ืขื ื•ืฆื˜ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืคึฟืึทืจ ื’ืขื‘ื•ื™ื˜-ืื™ืŸ ืคืึทื ื’ืงืฉืึทื ื–.
  • ืฆื•ื’ืขื’ืขื‘ืŸ ืึท ื ื™ื™ึทืข ื’ืขื‘ื•ื™ื˜-ืื™ืŸ ืคื•ื ืงืฆื™ืข "__builtin_roundeven" ืžื™ื˜ ืึท ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืจืึทื•ื ื“ื™ื ื’ ืคื•ื ืงืฆื™ืข ื“ื™ืคื™ื™ื ื“ ืื™ืŸ ื“ื™ ISO/IEC TS 18661 ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’, ืขื ืœืขืš ืฆื• "ืงื™ื™ึทืœืขื›ื™ืง", ืึธื‘ืขืจ ืจืึธื•ื ื“ื™ื ื’ ื˜ื™ื™ืœ ื’ืจืขืกืขืจ ื•ื•ื™ 0.5 ืึทืจื•ื™ืฃ (ืฆื• ืึท ื’ืจืขืกืขืจืข ื•ื•ืขืจื˜), ื•ื•ื™ื™ื ื™ืงืขืจ ื•ื•ื™ 0.5 - ืึทืจืึธืคึผ (ืฆื• ื ื•ืœ), ืื•ืŸ ื’ืœื™ื™ึทืš ืฆื• 0.5 - ืกื˜ืึทืจื˜ื™ื ื’ ืคื•ืŸ ื“ื™ ืคึผืึทืจืึทื˜ื™ ืคื•ืŸ ื“ื™ ืคึผืขื ืึทืœื˜ืึทืžืึทื˜ ืฆื™ืคึฟืขืจ.
  • ืคึฟืึทืจ ื“ื™ AArch64 ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ, ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ SVE2 ืคืึทืจืœืขื ื’ืขืจื•ื ื’ ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืื•ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ SVE (Scalable Vector Extension) ืื™ื– ื™ืžืคึผืจื•ื•ื•ื“, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื’ืขื‘ื•ื™ื˜-ืื™ืŸ SVE ACLE ืคืึทื ื’ืงืฉืึทื ื– ืื•ืŸ ื˜ื™ื™ืคึผืก, ืื•ืŸ ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื•ื•ืขืงื˜ืึธืจื™ื–ืึทื˜ื™ืึธืŸ. ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ LSE (ื’ืจื•ื™ืก ืกื™ืกื˜ืขื ื™ืงืกื˜ืขื ืฉืึทื ื–) ืื•ืŸ TME (ื˜ืจืึทื ืกืึทืงื˜ื™ืึธื ืึทืœ ื–ื›ึผืจื•ืŸ ืขืงืกื˜ืขื ืกื™ืึธืŸ) ืื™ื– ื™ืงืกืคึผืึทื ื“ื™ื“. ืฆื•ื’ืขืœื™ื™ื’ื˜ ื ื™ื™ึทืข ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก ืคืืจื’ืขืœื™ื™ื’ื˜ ืื™ืŸ Armv8.5-A ืื•ืŸ Armv8.6-A, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก ืคึฟืึทืจ ื˜ืจืึทืค ื ื•ืžืขืจ ื“ื•ืจ, ืจืึทื•ื ื“ื™ื ื’, ื–ื›ึผืจื•ืŸ ืงื•ื•ื™ื˜ืœ ื‘ื™ื™ื ื“ื™ื ื’,
    bfloat16 ืื•ืŸ ืžืึทื˜ืจื™ืฅ ืงื™ื™ืคืœ. ืฆื•ื’ืขื’ืขื‘ืŸ ืคึผืจืึทืกืขืกืขืจ ืฉื˜ื™ืฆืŸ
    ืึธืจืขื ืงืึธืจื˜ืขืงืก-ืึท77,
    ืึธืจืขื Cortex-A76AE,
    ืึธืจืขื ืงืึธืจื˜ืขืงืก-ืึท65,
    ืึธืจืขื Cortex-A65AE,
    ืึธืจืขื ืงืึธืจื˜ืขืงืก-ืึท34 ืื•ืŸ
    Marvell ThunderX3.

  • ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ABI FDPIC (32-ื‘ื™ืกืœ ืคื•ื ืงืฆื™ืข ืคึผื•ื™ื ื˜ืขืจื–) ืคึฟืึทืจ ARM64. ืจื™ื“ื™ื–ื™ื™ื ื“ ืื•ืŸ ืึธืคึผื˜ื™ืžื™ื–ืขื“ ืคึผืจืึทืกืขืกื™ื ื’ ืคื•ืŸ 64-ื‘ื™ืกืœ ื™ื ื˜ืึทื“ื–ืฉืขืจ ืึทืคึผืขืจื™ื™ืฉืึทื ื–. ืฆื•ื’ืขื’ืขื‘ืŸ ืงืคึผื• ืฉื˜ื™ืฆืŸ
    ืึธืจืขื ืงืึธืจื˜ืขืงืก-ืึท77,
    ืึธืจืขื ืงืึธืจื˜ืขืงืก-ืึท76ืึทืข ืื•ืŸ
    ืึธืจืขื ืงืึธืจื˜ืขืงืก-ืž35ืคึผ. ื™ืงืกืคึผืึทื ื“ื™ื“ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ACLE ื“ืึทื˜ืŸ ืคึผืจืึทืกืขืกื™ื ื’ ื™ื ืกื˜ืจืึทืงืฉืึทื ื–, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ 32-ื‘ื™ืกืœ SIMD, 16-ื‘ื™ืกืœ ืงื™ื™ืคืœ, ืœืึทื˜ืฉ ืึทืจื™ื˜ืžืขื˜ื™ืง ืื•ืŸ ืื ื“ืขืจืข ื“ืกืคึผ ืึทืœื’ืขืจื™ื“ืึทื ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก. ืฆื•ื’ืขืœื™ื™ื’ื˜ ื™ืงืกืคึผืขืจืžืขื ืึทืœ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ACLE CDE (Custom Datapath Extension) ื™ื ืกื˜ืจืึทืงืฉืึทื ื–.

  • ื‘ืื˜ื™ื™ื˜ื™ืง ื™ืžืคึผืจื•ื•ื•ื“ ืงืึธื“ ื“ื•ืจ ืื•ืŸ ื•ื•ืขืงื˜ืึธืจื™ื–ืึทื˜ื™ืึธืŸ ืื™ืŸ ื“ื™ ื‘ืึทืงืขื ื“ ืคึฟืึทืจ ืึทืžื“ ื’ืคึผื•ืก ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ GCN ืžื™ืงืจืึธืึทืจื˜ืฉื™ื˜ืขืงื˜ื•ืจืข.
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ XMEGA-ื•ื•ื™ ื“ืขื•ื•ื™ืกืขืก ืคึฟืึทืจ ืึทื•ื•ืจ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ
    ATtiny202, ATtiny204, ATtiny402, ATtiny404, ATtiny406, ATtiny804, ATtiny806, ATtiny807, ATtiny1604, ATtiny1606, ATtiny1607, ATmega 808ga, 809 ATmega 1608 , ATmega1609, ATmega3208 3209, ATmega4808 ืื•ืŸ ATmega4809.

  • ื ื ื™ื™ึทืข ื™ื ื˜ืขืœ ENQCMD ื™ื ืกื˜ืจื•ืงื˜ื™ืึธืŸ ืฉื˜ืขืœืŸ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืคืึทืจืœืขื ื’ืขืจื•ื ื’ (-menqcmd) ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืคึฟืึทืจ IA-32/x86-64 ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจื–. ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ Intel Cooperlake (-ืžืึทืจืฅ = ืงืึธืึธืคึผืขืจืœืึทืงืข, ื›ื•ืœืœ ื“ื™ AVX512BF16 ื™ืกืึท ืคืึทืจืœืขื ื’ืขืจื•ื ื’) ืื•ืŸ ื˜ื™ื’ืขืจืœืึทืงืข (-ืžืึทืจืฅ = ื˜ื™ื’ืขืจืœืึทืงืข, ื›ื•ืœืœ ื“ื™ MOVDIRI, MOVDIR64B ืื•ืŸ AVX512VP2INTERSECT ISA ื™ืงืกื˜ืขื ืฉืึทื ื–) ืงืคึผื•ืก.
  • ืึทืŸ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ HSAIL (Heterogeneous System Architecture Intermediate Language) ืคึฟืึทืจ ื›ืขื˜ืขืจืึทื“ื–ืฉื™ื ื™ืึทืก ืงืึทืžืคึผื™ื•ื˜ื™ื ื’ ืกื™ืกื˜ืขืžืขืŸ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ HSA ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืื™ื– ื“ื™ืคึผืจื™ืฉื™ื™ื™ื˜ื™ื“ ืื•ืŸ ื•ื•ืขื˜ ืžืกืชึผืžื ื–ื™ื™ืŸ ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ ืื™ืŸ ืึท ืฆื•ืงื•ื ืคึฟื˜ ืžืขืœื“ื•ื ื’.

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

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’