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

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

GCC 11.1 ืื™ื– ื ืึธื•ื˜ืึทื‘ืึทืœ ืคึฟืึทืจ ื–ื™ื™ืŸ ื™ื‘ืขืจื’ืึทื ื’ ืฆื• ื ื•ืฆืŸ ื“ื™ DWARF 5 ื“ื™ื‘ืึทื’ ื˜ืขืงืข ืคึฟืึธืจืžืึทื˜ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜, ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ื™ื ืงืœื•ื–ืฉืึทืŸ ืคื•ืŸ ื“ื™ C ++ 17 ื ืึธืจืžืึทืœ ("-ืกื˜ื“ = ื’ื ื• ++ 17"), ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ื™ืžืคึผืจื•ื•ื•ืžืึทื ืฅ ืื™ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ C ++ 20 ื ืึธืจืžืึทืœ, ื™ืงืกืคึผืขืจืžืขื ืึทืœ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ C ++ 23, ื™ืžืคึผืจื•ื•ื•ืžืึทื ืฅ ืฉื™ื™ึทื›ื•ืช ืฆื• ื“ืขืจ ืฆื•ืงื•ื ืคึฟื˜ C ืฉืคึผืจืึทืš ื ืึธืจืžืึทืœ (C2x), ื ื™ื™ึทืข ืคืึธืจืฉื˜ืขืœื•ื ื’ ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก.

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

  • ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ืžืึธื“ืข ืคึฟืึทืจ ื“ื™ C ++ ืฉืคึผืจืึทืš ืื™ื– ืกื•ื•ื™ื˜ืฉื˜ ืฆื• ื ื•ืฆืŸ ื“ื™ C ++ 17 ื ืึธืจืžืึทืœ (-ืกื˜ื“ = ื’ื ื• ++ 17) ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ื“ื™ ืคืจื™ืขืจ ื’ืขืคึฟื™ื ื˜ C ++ 14. ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ืกืึทืœืขืงื˜ื™ื•ื•ืœื™ ื“ื™ืกื™ื™ื‘ืึทืœ ื“ื™ ื ื™ื™ึทืข C ++17 ื ืึทื˜ื•ืจ ื•ื•ืขืŸ ืคึผืจืึทืกืขืกื™ื ื’ ื˜ืขืžืคึผืœืึทื˜ืขืก ื•ื•ืึธืก ื ื•ืฆืŸ ืื ื“ืขืจืข ื˜ืขืžืคึผืœืึทื˜ืขืก ื•ื•ื™ ืึท ืคึผืึทืจืึทืžืขื˜ืขืจ (-fno-new-ttp-matching).
  • ืึทื“ื“ืขื“ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื™ื™ึทื–ื ื•ื•ืึทืจื’ ืึทืงืกืขืœืขืจื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ AddressSanitizer ื’ืขืฆื™ื™ึทื’, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื‘ืึทืฉืœื™ืกืŸ ื“ื™ Facts ืคื•ืŸ ืึทืงืกืขืก ืคืจื™ื™ ื–ื™ืงืึธืจืŸ ื’ืขื‘ื™ื˜ืŸ, ื’ื™ื™ืŸ ื•ื•ื™ื™ึทื˜ืขืจ ืคื•ืŸ ื“ื™ ื‘ืึทืคืขืจ ืคื•ืŸ ื“ื™ ืึทืœืึทืงื™ื™ื˜ื™ื“ ื‘ืึทืคืขืจ ืื•ืŸ ืขื˜ืœืขื›ืข ืื ื“ืขืจืข ื˜ื™ื™ืคึผืก ืคื•ืŸ ืขืจืจืึธืจืก ื•ื•ืขืŸ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ื–ื›ึผืจื•ืŸ. ื™ื™ึทื–ื ื•ื•ืึทืจื’ ืึทืงืกืขืœืขืจื™ื™ืฉืึทืŸ ืื™ื– ื“ืขืจื•ื•ื™ื™ึทืœ ื‘ืœื•ื™ื– ื‘ื ื™ืžืฆื ืคึฟืึทืจ ื“ื™ AArch64 ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืื•ืŸ ืื™ื– ืคืึธื•ืงื™ืกื˜ ืื•ื™ืฃ ื ื•ืฆืŸ ื•ื•ืขืŸ ืงืึทืžืคึผื™ื™ืœื™ื ื’ ื“ื™ ืœื™ื ื•ืงืก ืงืขืจืŸ. ืฆื• ื’ืขื‘ืŸ AddressSanitizer ื™ื™ึทื–ื ื•ื•ืึทืจื’ ืึทืงืกืขืœืขืจื™ื™ืฉืึทืŸ ื•ื•ืขืŸ ืื™ืจ ื‘ื•ื™ืขืŸ ื‘ืึทื ื™ืฆืขืจ ืคึผืœืึทืฅ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ, ื“ื™ ืคืึธืŸ "-fsanitize=hwaddress" ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ, ืื•ืŸ ื“ื™ ืงืขืจืŸ ืคืึธืŸ "-fsanitize=kernel-hwaddress".
  • ื•ื•ืขืŸ ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ ื“ื™ื‘ืึทื’ื™ื ื’ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข, ื“ื™ DWARF 5 ืคึฟืึธืจืžืึทื˜ ืื™ื– ื’ืขื ื™ืฆื˜ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜, ื•ื•ืึธืก, ืงืึทืžืคึผืขืจื“ ืžื™ื˜ ืคืจื™ืขืจื“ื™ืงืข ื•ื•ืขืจืกื™ืขืก, ืึทืœืึทื•ื– ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ 25% ืžืขืจ ืกืึธืœื™ื“ ื“ื™ื‘ืึทื’ื™ื ื’ ื“ืึทื˜ืŸ. ื’ืึทื ืฅ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ DWARF 5 ืจื™ืงื•ื•ื™ื™ืขืจื– ืœืคึผื—ื•ืช ื‘ื™ื ื•ื˜ื™ืœืก ื•ื•ืขืจืกื™ืข 2.35.2. DWARF 5 ืคึฟืึธืจืžืึทื˜ ืื™ื– ื’ืขืฉื˜ื™ืฆื˜ ืื™ืŸ ื“ื™ื‘ืึทื’ื™ื ื’ ืžื›ืฉื™ืจื™ื ื–ื™ื ื˜ GDB 8.0, valgrind 3.17.0, elfutils 0.172 ืื•ืŸ dwz 0.14. ืฆื• ื“ื–ืฉืขื ืขืจื™ื™ื˜ ื“ื™ื‘ืึทื’ ื˜ืขืงืขืก ื ื™ืฆืŸ ืื ื“ืขืจืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ DWARF, ืื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ ื“ื™ ืึธืคึผืฆื™ืขืก "-gdwarf-2", "-gdwarf-3" ืื•ืŸ "-gdwarf-4".
  • ื“ื™ ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ ืคึฟืึทืจ ืงืึธืžืคึผื™ืœืขืจืก ื•ื•ืึธืก ืงืขื ืขืŸ ื•ื•ืขืจืŸ ื’ืขื ื•ืฆื˜ ืฆื• ื‘ื•ื™ืขืŸ GCC ื–ืขื ืขืŸ ื’ืขื•ื•ืืงืกืŸ. ื“ืขืจ ืงืึทืžืคึผื™ื™ืœืขืจ ืžื•ื–ืŸ ืื™ืฆื˜ ืฉื˜ื™ืฆืŸ ื“ื™ C++11 ื ืึธืจืžืึทืœ (ืคืจื™ืขืจ C++98 ืื™ื– ืคืืจืœืื ื’ื˜), ื“.ื”. ืื•ื™ื‘ GCC 10 ืื™ื– ื’ืขื ื•ื’ ืฆื• ื‘ื•ื™ืขืŸ GCC 3.4, ืื™ืŸ ืžื™ื ื“ืกื˜ืขืจ GCC 11 ืื™ื– ืื™ืฆื˜ ืคืืจืœืื ื’ื˜ ืฆื• ื‘ื•ื™ืขืŸ GCC 4.8.
  • ื“ื™ ื ืึธืžืขืŸ ืื•ืŸ ืึธืจื˜ ืคื•ืŸ ื˜ืขืงืขืก ืคึฟืึทืจ ืฉืคึผืึธืจืŸ ื“ืึทืžืคึผืก, ืฆื™ื™ึทื˜ื•ื•ื™ื™ึทืœื™ืง ื˜ืขืงืขืก ืื•ืŸ ื ืึธืš ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื ื™ื™ื˜ื™ืง ืคึฟืึทืจ ืœื˜ืึธ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ื–ืขื ืขืŸ ืคืืจืขื ื“ืขืจื˜. ืึทื–ืึท ื˜ืขืงืขืก ื–ืขื ืขืŸ ืื™ืฆื˜ ืฉื˜ืขื ื“ื™ืง ื’ืขืจืื˜ืขื•ื•ืขื˜ ืื™ืŸ ื“ื™ ืงืจืึทื ื˜ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืกื™ื™ึทื“ืŸ ื“ืขืจ ื“ืจืš ืื™ื– ื‘ืคื™ืจื•ืฉ ื˜ืฉื™ื™ื ื“ื–ืฉื“ ื“ื•ืจืš ื“ื™ "-ื“ืึทืžืคึผื‘ืึทืกืข", "-ื“ืึทืžืคึผื“ื™ืจ" ืื•ืŸ "-ืกืึทื•ื•-ื˜ืขืžืคึผืก=*" ืึธืคึผืฆื™ืขืก.
  • ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ ื‘ื™ื™ื ืขืจื™ ืคึฟืึธืจืžืึทื˜ BRIG ืคึฟืึทืจ ื ื•ืฆืŸ ืžื™ื˜ ื“ื™ HSAIL (Heterogeneous System Architecture Intermediate Language) ืฉืคึผืจืึทืš ืื™ื– ื“ื™ืคึผืจื™ืฉื™ื™ื™ื˜ื™ื“ ืื•ืŸ ื•ื•ืขื˜ ื‘ืึทืœื“ ื–ื™ื™ืŸ ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ.
  • ื“ื™ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืคื•ืŸ ื“ื™ ThreadSanitizer ืžืึธื“ืข (-ืคืกืึทื ื™ื˜ื™ื–ืข = ืคึฟืึธื“ืขื) ื–ืขื ืขืŸ ื™ืงืกืคึผืึทื ื“ื™ื“, ื“ื™ื–ื™ื™ื ื“ ืฆื• ื“ืขื˜ืขืงื˜ ืจืึทืกืข ื˜ื ืึธื™ื ื•ื•ืขืŸ ื™ื™ึทื ื˜ื™ื™ืœื•ื ื’ ื“ื™ ื–ืขืœื‘ืข ื“ืึทื˜ืŸ ืคื•ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืคึฟืขื“ืขื ืคื•ืŸ ืึท ืžื•ืœื˜ื™-ื˜ืจืขื“ืขื“ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ. ื“ื™ ื ื™ื™ึทืข ืžืขืœื“ื•ื ื’ ืžื•ืกื™ืฃ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืึธืœื˜ืขืจื ืึทื˜ื™ื•ื• ืจื•ื ื˜ื™ืžืขืก ืื•ืŸ ื™ื ื•ื•ื™ื™ืจืึทื ืžืึทื ืฅ, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ KCSAN (Kernel Concurrency Sanitizer) ื“ื™ื‘ืึทื’ื™ื ื’ ื’ืขืฆื™ื™ึทื’, ื“ื™ื–ื™ื™ื ื“ ืฆื• ื“ื™ื ืึทืžื™ืงืึทืœืœื™ ื“ืขื˜ืขืงื˜ ืจืึทืกืข ื˜ื ืึธื™ื ืื™ืŸ ื“ื™ ืœื™ื ื•ืงืก ืงืขืจืŸ. ืฆื•ื’ืขืœื™ื™ื’ื˜ ื ื™ื™ึทืข ืึธืคึผืฆื™ืขืก "-param tsan-ื•ื™ืกื˜ื™ื™ืœืŸ-ื•ื•ืึทืœืึทื˜ืึทืœ" ืื•ืŸ "-param tsan-instrument-func-entry-exit".
  • ื–ื™ื™ึทืœ ื ื•ืžืขืจืŸ ืื™ืŸ ื“ื™ืึทื’ื ืึธืกื˜ื™ืง ืึทืจื˜ื™ืงืœืขืŸ ืื™ืฆื˜ ืคืึทืจื˜ืจืึทื›ื˜ื  ื–ื™ืš ื ื™ืฉื˜ ื“ื™ ื‘ื™ื™ื˜ ืฆื™ื™ืœืŸ ืคื•ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ื“ื™ ืฉื•ืจื”, ืึธื‘ืขืจ ืคืืงื˜ื™ืฉ ื“ื™ ื–ื™ื™ึทืœ ื ื•ืžืขืจืŸ ื•ื•ืึธืก ื ืขืžืขืŸ ืื™ืŸ ื—ืฉื‘ื•ืŸ ืžืึทืœื˜ื™-ื‘ื™ื˜ืข ืื•ืชื™ื•ืช ืื•ืŸ ืื•ืชื™ื•ืช ืึทืงื™ืึทืคึผื™ื™ื– ืขื˜ืœืขื›ืข ืฉื˜ืขืœืขืก ืื™ืŸ ื“ื™ ืฉื•ืจื” (ืœืžืฉืœ, ื“ืขืจ ื›ืึทืจืึทืงื˜ืขืจ ๐Ÿ™‚ ืึทืงื™ืึทืคึผื™ื™ื– ืฆื•ื•ื™ื™ ืฉื˜ืขืœืขืก ืื•ืŸ ืื™ื– ืงืึธื“ืขื“ ืื™ืŸ 4 ื‘ื™ื˜ืขืก). ืคึผื•ื ืงื˜ ืึทื–ื•ื™, ืงื•ื•ื™ื˜ืœ ืื•ืชื™ื•ืช ื–ืขื ืขืŸ ืื™ืฆื˜ ื‘ืื”ืื ื“ืœื˜ ื•ื•ื™ ืึท ื–ื™ื›ืขืจ ื ื•ืžืขืจ ืคื•ืŸ ืกืคึผื™ื™ืกืึทื– (ืงืึธื ืคื™ื’ื•ืจืึทื‘ืœืข ื“ื•ืจืš ื“ื™ -ftabstop ืึธืคึผืฆื™ืข, ืคืขืœื™ืงื™ื™ึทื˜ 8). ืฆื• ื•ืžืงืขืจืŸ ื“ื™ ืึทืœื˜ ื ืึทื˜ื•ืจ, ื“ื™ "-fdiagnostics-column-unit=byte" ืึธืคึผืฆื™ืข ืื™ื– ืคืืจื’ืขืœื™ื™ื’ื˜, ืื•ืŸ ืฆื• ื‘ืึทืฉื˜ื™ืžืขืŸ ื“ื™ ืขืจืฉื˜ ื•ื•ืขืจื˜ (ื ื•ืžืขืจื™ื ื’ ืคื•ืŸ 0 ืึธื“ืขืจ 1) - ื“ื™ "-fdiagnostics-column-origin =" ืึธืคึผืฆื™ืข.
  • ื“ื™ ื•ื•ืขืงื˜ืึธืจื™ื–ืขืจ ื ืขืžื˜ ืื™ืŸ ื—ืฉื‘ื•ืŸ ื“ื™ ื’ืื ืฆืข ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ื“ื™ ืคึฟื•ื ืงืฆื™ืข ืื•ืŸ ืžื•ืกื™ืฃ ืคึผืจืึทืกืขืกื™ื ื’ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืžื™ื˜ ื™ื ื˜ืขืจืกืขืงืฉืึทื ื– ืื•ืŸ ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ืฆื• ื“ื™ ืคืจื™ืขืจื“ื™ืงืข ื‘ืœืึทืงืก ืื™ืŸ ื“ื™ ืงืึธื ื˜ืจืึธืœ-ืœื•ื™ืคืŸ ื’ืจืึทืคื™ืง (CFG, ืงืึธื ื˜ืจืึธืœ-ืœื•ื™ืคืŸ ื’ืจืึทืคื™ืง).
  • ื“ื™ ืึธืคึผื˜ื™ืžื™ื–ืขืจ ื™ืžืคึผืœืึทืžืึทื ืฅ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื‘ื™ื™ึทื˜ืŸ ืึท ืกืขืจื™ืข ืคื•ืŸ โ€‹โ€‹ืงืึทื ื“ื™ืฉืึทื ืึทืœ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ื•ื•ืึธืก ืคืึทืจื’ืœื™ื™ึทื›ืŸ ื“ื™ ื–ืขืœื‘ืข ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง ืื™ืŸ ืึท ื‘ืึทืฉื˜ื™ืžืขืŸ ืื•ื™ืกื“ืจื•ืง. ื“ืขืจ ื‘ืึทืฉื˜ื™ืžืขืŸ ืื•ื™ืกื“ืจื•ืง ืงืขื ืขืŸ ืฉืคึผืขื˜ืขืจ ื–ื™ื™ืŸ ืงืึธื“ืขื“ ืžื™ื˜ ื‘ื™ืกืœ ื˜ืขืกื˜ื™ื ื’ ื™ื ืกื˜ืจืึทืงืฉืึทื ื– (ื“ื™ "-fbit-tests" ืึธืคึผืฆื™ืข ืื™ื– ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืึทื–ืึท ืงืึทื ื•ื•ืขืจื–ืฉืึทืŸ).
  • ื™ืžืคึผืจื•ื•ื•ื“ ื™ื ื˜ืขืจืคึผืจืึทืกื™ื“ื–ืฉืขืจืึทืœ ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก. ืฆื•ื’ืขื’ืขื‘ืŸ ืึท ื ื™ื™ึทืข IPA-modref ืคืึธืจืŸ (-fipa-modref) ืฆื• ืฉืคึผื•ืจ ื–ื™ื™ึทื˜ ื™ืคืขืงืฅ ื•ื•ืขืŸ ืจื•ืคืŸ ืคืึทื ื’ืงืฉืึทื ื– ืื•ืŸ ืคึฟืึทืจื‘ืขืกืขืจืŸ ื“ื™ ืึทืงื™ืขืจืึทืกื™ ืคื•ืŸ ื“ื™ ืึทื ืึทืœื™ืกื™ืก. ื™ืžืคึผืจื•ื•ื•ื“ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ IPA-ICF ืคืึธืจืŸ (-fipa-icf), ื•ื•ืึธืก ืจืึทื“ื•ืกืึทื– ื–ื›ึผืจื•ืŸ ืงืึทื ืกืึทืžืฉืึทืŸ ื‘ืขืฉืึทืก ื–ืึทืžืœื•ื ื’ ืื•ืŸ ื™ื ืงืจื™ืกืึทื– ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ื™ื•ื ืึทืคื™ื™ื“ ืคืึทื ื’ืงืฉืึทื ื– ืคึฟืึทืจ ื•ื•ืึธืก ื™ื™ื“ืขื ื™ืงืึทืœ ืงืึธื“ ื‘ืœืึทืงืก ื–ืขื ืขืŸ ืงืึทืžื‘ื™ื™ื ื“. ืื™ืŸ ื“ื™ IPA-CP (ื™ื ื˜ืขืจืคึผืจืึทืกื™ื“ื–ืฉืขืจืึทืœ ืงืขืกื™ื™ื“ืขืจื“ื™ืง ืคึผืจืึทืคึผืึทื’ื™ื™ืฉืึทืŸ) ืคืึธืจืŸ, ื“ื™ ืคืึธืจื•ื™ืกื–ืึธื’ืŸ ื›ื™ื•ืจื™ืกื˜ื™ืงืก ื–ืขื ืขืŸ ื™ืžืคึผืจื•ื•ื•ื“, ื’ืขื ื•ืžืขืŸ ืื™ืŸ ื—ืฉื‘ื•ืŸ ื‘ืึทื•ื•ื•ืกื˜ ื‘ืึทื•ื ื“ืจื™ื– ืื•ืŸ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืคื•ืŸ ื“ื™ ืœื•ืคึผืก.
  • ืื™ืŸ ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ ืฆื™ื™ื˜ ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธื ืก (ืœื˜ืึธ), ื“ื™ ื‘ื™ื˜ืขืงืึธื“ืข ืคึฟืึธืจืžืึทื˜ ืื™ื– ืึธืคึผื˜ื™ืžื™ื–ืขื“ ืฆื• ืจืขื“ื•ืฆื™ืจืŸ ื“ื™ ื’ืจื™ื™ืก ืื•ืŸ ืคึฟืึทืจื‘ืขืกืขืจืŸ ืคึผืจืึทืกืขืกื™ื ื’ ื’ื™ื›ืงื™ื™ึทื˜. ืจื™ื“ื•ืกื˜ ืฉืคึผื™ืฅ ื–ื™ืงืึธืจืŸ ืงืึทื ืกืึทืžืฉืึทืŸ ื‘ืขืฉืึทืก ื“ื™ ื‘ื™ื™ื ื“ื™ื ื’ ืคืึทืกืข.
  • ืื™ืŸ ื“ื™ ืึธืคึผื˜ื™ืžื™ื–ืึทื˜ื™ืึธืŸ ืžืขืงืึทื ื™ื–ืึทื ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ืŸ ืคื•ืŸ ืงืึธื“ ืคึผืจืึธืคื™ืœื™ื ื’ (PGO - ืคึผืจืึธืคื™ืœ-ื’ื™ื™ื“ื™ื“ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ), ื•ื•ืึธืก ืึทืœืึทื•ื– ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ ืžืขืจ ืึธืคึผื˜ื™ืžืึทืœ ืงืึธื“ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืึทื ืึทืœื™ืกื™ืก ืคื•ืŸ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ, ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ ื˜ืขืงืขืก ืžื™ื˜ GCOV ื“ืึทื˜ืŸ ืื™ื– ืจื™ื“ื•ืกื˜ ืจืขื›ื˜ ืฆื• ืžืขืจ ืกืึธืœื™ื“ ืคึผืึทืงื™ื“ื–ืฉื™ื ื’ ืคื•ืŸ ื ื•ืœ ืงืึธื•ื ื˜ืขืจืก. . ื™ืžืคึผืจื•ื•ื•ื“ "-fprofile-values" ืžืึธื“ืข ื“ื•ืจืš ื‘ืขื›ืขืกืงืขื ืžืขืจ ืคึผืึทืจืึทืžืขื˜ืขืจืก ืื•ื™ืฃ ื•ืžื“ื™ืจืขืงื˜ ืจื•ืคื˜.
  • ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ OpenMP 5.0 (Open Multi-Processing) ื ืึธืจืžืึทืœ, ื•ื•ืึธืก ื“ื™ืคื™ื™ื ื– ื“ื™ ืึทืคึผื™ ืื•ืŸ ืžืขื˜ื”ืึธื“ืก ืคึฟืึทืจ ืึทืคึผืœื™ื™ื™ื ื’ ืคึผืึทืจืึทืœืขืœ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืžืขื˜ื”ืึธื“ืก ืื•ื™ืฃ ืžื•ืœื˜ื™-ื”ืึทืจืฅ ืื•ืŸ ื›ื™ื™ื‘ืจื™ื“ (CPU + GPU / DSP) ืกื™ืกื˜ืขืžืขืŸ ืžื™ื˜ ืฉืขืจื“ ื–ื›ึผืจื•ืŸ ืื•ืŸ ื•ื•ืขืงื˜ืึธืจื™ื–ืึทื˜ื™ืึธืŸ ื•ื ื™ืฅ (SIMD), ื”ืื˜ ืคืึธืจื–ืขืฆืŸ. ืฆื•ื’ืขื’ืขื‘ืŸ ืขืจืฉื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ ืึทืœืึทืงื™ื™ื˜ ื“ื™ืจืขืงื˜ื™ื•ื• ืื•ืŸ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื ื•ืฆืŸ ื›ืขื˜ืขืจืึทื“ื–ืฉื™ื ื™ืึทืก ืœื•ืคึผืก ืื™ืŸ OpenMP ืงืึทื ืกื˜ืจืึทืงืฉืึทื ื–. ื™ืžืคึผืœืึทืžืขื ืึทื“ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ OMP_TARGET_OFFLOAD ืกื•ื•ื™ื•ื•ืข ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง.
  • ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ OpenACC 2.6 ืคึผืึทืจืึทืœืขืœ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืฆื•ื’ืขืฉื˜ืขืœื˜ ืคึฟืึทืจ C, C ++ ืื•ืŸ ืคืึธืจื˜ืจืึทืŸ ืฉืคึผืจืึทื›ืŸ ืื™ื– ื™ืžืคึผืจื•ื•ื•ื“, ื•ื•ืึธืก ื“ื™ืคื™ื™ื ื– ืžื›ืฉื™ืจื™ื ืคึฟืึทืจ ืึธืคืœืึธื•ื“ื™ื ื’ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืื•ื™ืฃ ื’ืคึผื•ืก ืื•ืŸ ืกืคึผืขืฉืึทืœื™ื™ื–ื“ ืคึผืจืึทืกืขืกืขืจื–, ืึทื–ืึท ื•ื•ื™ NVIDIA PTX.
  • ืคึฟืึทืจ C ืฉืคึผืจืึทื›ืŸ, ืึท ื ื™ื™ึทืข ืึทื˜ืจื™ื‘ื™ื•ื˜ "no_stack_protector" ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“, ื“ื™ื–ื™ื™ื ื“ ืฆื• ืฆื™ื™ื›ืŸ ืคืึทื ื’ืงืฉืึทื ื– ืคึฟืึทืจ ื•ื•ืึธืก ืกื˜ืึทืง ืฉื•ืฅ ื–ืึธืœ ื ื™ืฉื˜ ื–ื™ื™ืŸ ืขื ื™ื™ื‘ืึทืœื“ ("-fstack-protector"). ื“ื™ "ืžืึทืœืœืึธืง" ืึทื˜ืจื™ื‘ื™ื•ื˜ ืื™ื– ื™ืงืกืคึผืึทื ื“ื™ื“ ืฆื• ืฉื˜ื™ืฆืŸ ื“ื™ ืœืขื’ื™ื˜ื™ืžืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ืคึผืขืจื– ืคื•ืŸ ืงืึทืœืœืก ืคึฟืึทืจ ืึทืœืึทืงื™ื™ื˜ื™ื ื’ ืื•ืŸ ืคืจื™ื™ ื–ื™ืงืึธืจืŸ (ืึทืœืึธืงืึทื˜ืึธืจ / ื“ืขืึทืœืึธืงืึทื˜ืึธืจ), ื•ื•ืึธืก ืื™ื– ื’ืขื ื™ืฆื˜ ืื™ืŸ ื“ื™ ืกื˜ืึทื˜ื™ืง ืึทื ืึทืœื™ื–ืขืจ ืฆื• ื™ื“ืขื ื˜ื™ืคื™ืฆื™ืจืŸ ื˜ื™ืคึผื™ืฉ ืขืจืจืึธืจืก ืื™ืŸ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ื–ื›ึผืจื•ืŸ (ื–ื™ืงืึธืจืŸ ืœื™ืงืก, ื ื•ืฆืŸ ื ืึธืš ืคืจื™ื™, ื˜ืึธืคึผืœ ืงืึทืœืœืก ืฆื• ื“ื™ ืคืจื™ื™ ืคึฟื•ื ืงืฆื™ืข, ืืื–"ื• ื•) ืื•ืŸ ืื™ืŸ ืงืึทืžืคึผื™ื™ืœืขืจ ื•ื•ืึธืจื ื™ื ื’ื– "-Wmismatched-dealloc", "-Wmismatched-new-delete" ืื•ืŸ "-Wfree-nonheap-object", ื™ื ืคืึธืจืžื™ื ื’ ื•ื•ืขื’ืŸ ื™ื ืงืึทื ืกื™ืกื˜ืึทื ืก ืฆื•ื•ื™ืฉืŸ ื–ื›ึผืจื•ืŸ ื“ื™ืึทืœืึธืงืึทื˜ื™ืึธืŸ ืื•ืŸ ื–ื›ึผืจื•ืŸ ืึทืœืึทืงื™ื™ืฉืึทืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื–.
  • ื ื™ื™ึท ื•ื•ืึธืจื ื™ื ื’ื– ื–ืขื ืขืŸ ืฆื•ื’ืขื’ืขื‘ืŸ ืคึฟืึทืจ ื“ื™ C ืฉืคึผืจืึทืš:
    • "-Wmismatched-dealloc" (ืขื ื™ื™ื‘ืึทืœื“ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜) - ื•ื•ืึธืจื ื– ื•ื•ืขื’ืŸ ื–ื›ึผืจื•ืŸ ื“ื™ืึทืœืึธืงืึทื˜ื™ืึธืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ื•ื•ืึธืก ื ื•ืฆืŸ ืึท ื˜ื™ื™ึทื˜ืœ ื•ื•ืึธืก ืื™ื– ื ื™ืฉื˜ ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ืžื™ื˜ ื–ื›ึผืจื•ืŸ ืึทืœืึทืงื™ื™ืฉืึทืŸ ืคืึทื ื’ืงืฉืึทื ื–.
    • "-Wsizeof-array-div" (ืขื ื™ื™ื‘ืึทืœื“ ื•ื•ืขืŸ "-Wall" ืื™ื– ืกืคึผืขืกื™ืคื™ืขื“) - ื•ื•ืึธืจื ื– ื•ื•ืขื’ืŸ ื“ื™ื•ื•ื™ื™ื“ื™ื ื’ ืฆื•ื•ื™ื™ ื’ืจื™ื™ืก ืคื•ืŸ ืึธืคึผืขืจื™ื™ื˜ืขืจื– ืื•ื™ื‘ ื“ื™ ื“ื™ื•ื•ื™ื™ื–ืขืจ ืื™ื– ื ื™ืฉื˜ ืคึผืึทืกื™ืง ืคึฟืึทืจ ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ ื“ื™ ืžืขื ื’ืข ืขืœืขืžืขื ื˜.
    • "-Wstringop-overread" (ืขื ื™ื™ื‘ืึทืœื“ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜) - ื•ื•ืึธืจื ื– ื•ื•ืขื’ืŸ ืจื•ืคืŸ ืึท ืฉื˜ืจื™ืงืœ ืคึฟื•ื ืงืฆื™ืข ื•ื•ืึธืก ืœื™ื™ืขื ื˜ ื“ืึทื˜ืŸ ืคื•ืŸ ืึท ื’ืขื’ื ื˜ ืึทืจื•ื™ืก ื“ื™ ืžืขื ื’ืข ื’ืจืขื ืขืฅ.
    • "-Wtsan" (ืขื ื™ื™ื‘ืึทืœื“ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜) - ื•ื•ืึธืจื ื– ื•ื•ืขื’ืŸ ื ื™ืฆืŸ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ (ืึทื–ืึท ื•ื•ื™ std::atomic_thread_fence) ื•ื•ืึธืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ื’ืขืฉื˜ื™ืฆื˜ ืื™ืŸ ThreadSanitizer.
    • "-Warray-parameter" ืื•ืŸ "-Wvla-parameter" (ืขื ื™ื™ื‘ืึทืœื“ ื•ื•ืขืŸ ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ "-Wall") - ื•ื•ืึธืจื ื– ื•ื•ืขื’ืŸ ืึธื•ื•ื•ืขืจืจื™ื™ื“ื™ื ื’ ืคืึทื ื’ืงืฉืึทื ื– ืžื™ื˜ ื™ื ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ื“ืขืงืœืขืจื™ื™ืฉืึทื ื– ืคื•ืŸ ืึทืจื’ื•ืžืขื ื˜ืŸ ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ืคืึทืจืคืขืกื˜ื™ืงื˜ ืื•ืŸ ื•ื•ืขืจื™ืึทื‘ืึทืœ-ืœืขื ื’ ืขืจื™ื™ื–.
    • ื“ื™ "-Wuninitialized" ื•ื•ืืจืขื ื•ื ื’ ืื™ืฆื˜ ื“ื™ื˜ืขืงืฅ ืคืจื•ื•ื•ืŸ ืฆื• ืœื™ื™ืขื ืขืŸ ืคึฟื•ืŸ ืึทื ื™ื ื™ืฉื™ืึทืœื™ื™ื–ื“ ื“ื™ื ืึทืžื™ืงืึทืœืœื™ ืึทืœืึทืงื™ื™ื˜ื™ื“ ื–ื›ึผืจื•ืŸ.
    • ื“ื™ "-Wfree-nonheap-object" ื•ื•ืืจืขื ื•ื ื’ ื™ืงืกืคึผืึทื ื“ื– ื“ื™ ื“ืขืคึฟื™ื ื™ืฆื™ืข ืคื•ืŸ โ€‹โ€‹ืงืึทืกืขืก ื•ื•ื• ื–ื›ึผืจื•ืŸ ื“ื™ืึทืœืึธืงืึทื˜ื™ืึธืŸ ืคืึทื ื’ืงืฉืึทื ื– ื–ืขื ืขืŸ ื’ืขืจื•ืคึฟืŸ ืžื™ื˜ ืึท ื˜ื™ื™ึทื˜ืœ ื ื™ืฉื˜ ื‘ืืงื•ืžืขืŸ ื“ื•ืจืš ื“ื™ื ืึทืžื™ืฉ ื–ื›ึผืจื•ืŸ ืึทืœืึทืงื™ื™ืฉืึทืŸ ืคืึทื ื’ืงืฉืึทื ื–.
    • ื“ื™ "-Wmaybe-uninitialized" ื•ื•ืืจืขื ื•ื ื’ ื”ืื˜ ื™ืงืกืคึผืึทื ื“ื™ื“ ื“ื™ื˜ืขืงืฉืึทืŸ ืคื•ืŸ ืคึผืึทืกื™ื ื’ ืึธื ื•ื•ื™ื™ึทื– ืฆื• ืคืึทื ื’ืงืฉืึทื ื– ื•ื•ืึธืก ืึธืคึผืฉื™ืงืŸ ืฆื• ืึทื ื™ื ื™ืฉื™ืึทืœื™ื™ื–ื“ ื–ื›ึผืจื•ืŸ ืœืึธื•ืงื™ื™ืฉืึทื ื–.
  • ืคึฟืึทืจ ื“ื™ C ืฉืคึผืจืึทืš, ืึท ื˜ื™ื™ืœ ืคื•ืŸ ื ื™ื™ึทืข ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ื“ืขื•ื•ืขืœืึธืคึผืขื“ ืื™ืŸ ื“ื™ ืคืจื™ื™ืžื•ื•ืขืจืง ืคื•ืŸ ื“ื™ C2X ื ืึธืจืžืึทืœ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ (ืขื ื™ื™ื‘ืึทืœื“ ื“ื•ืจืš ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ -std = c2x ืื•ืŸ -std = gnu2x): ืžืึทืงืจืึธืก BOOL_MAX ืื•ืŸ BOOL_WIDTH, ืึทืคึผืฉืึทื ืึทืœ ืึธื ื•ื•ื™ื™ึทื– ืคื•ืŸ ื ืขืžืขืŸ ืคื•ืŸ ืึทื ื™ื•ื–ื“ ืคึผืึทืจืึทืžืขื˜ืขืจืก ืื™ืŸ ืคื•ื ืงืฆื™ืข. ื“ืขืคึฟื™ื ื™ืฆื™ืขืก (ื•ื•ื™ ืื™ืŸ C ++), ืึทื˜ืจื™ื‘ื™ื•ื˜ "[ [ื ืึธื“ื™ืกืงืึทืจื“]]", ืคึผืจืขืคึผืจืึธืกืขืกืกืึธืจ ืึธืคึผืขืจืึทื˜ืึธืจ "__has_c_attribute", ืžืึทืงืจืึธืก FLT_IS_IEC_60559, DBL_IS_IEC_60559, LDBL_IS_IEC_60559, __STDC_WANT_IEC_60559__XNUMX_FIN_IEC_XNUMX__XNUMX_DBLAN, DNBLAN, DNBLAN, AN, DEC_INFINITY ืื•ืŸ DEC _NAN, NaN = ืžืึทืงืจืึธืก ืคึฟืึทืจ FloatN, _FloatNx ืื•ืŸ _DecimalN, ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ืฉืคึผืจื™ื ื’ืขืŸ ืžืึทืจืงืก ืื™ื™ื“ืขืจ ื“ื™ืงืœืขืจื™ื™ืฉืึทื ื– ืื•ืŸ ืื™ืŸ ื“ื™ ืกื•ืฃ ืคื•ืŸ ืงืึทืžืคึผืึทื•ื ื“ ืกื˜ื™ื™ื˜ืžืึทื ืฅ.
  • ืคึฟืึทืจ C ++, ืึท ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืขื ื“ืขืจื•ื ื’ืขืŸ ืื•ืŸ ื™ื ืึธื•ื•ื•ื™ื™ืฉืึทื ื– ืคืืจื’ืขืœื™ื™ื’ื˜ ืื™ืŸ ื“ื™ C ++ 20 ืกื˜ืึทื ื“ืึทืจื˜ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื•ื•ื™ืจื˜ื•ืึทืœ ืคืึทื ื’ืงืฉืึทื ื– "ืงืึธื ืกื˜ืขื•ื•ืึทืœ ื•ื•ื™ืจื˜ื•ืึทืœ", ืคึผืกืขื•ื•ื“ืึธ-ื“ืขืกื˜ืจื•ืงื˜ืขืจื– ืคึฟืึทืจ ื“ื™ ืกื•ืฃ ืคื•ืŸ ื“ื™ ืœืขื‘ืŸ ืฆื™ืงืœ ืคื•ืŸ ืึทื‘ื“ื–ืฉืขืงืฅ, ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื“ื™ ืขื ื•ื ืงืœืึทืก ืื•ืŸ ืงืึทืœืงื™ืึทืœื™ื™ื˜ื™ื ื’ ื“ื™ ื’ืจื™ื™ืก ืคื•ืŸ ืึท ืžืขื ื’ืข ืื™ืŸ ื“ื™ "ื ื™ื™ึทืข" ืื•ื™ืกื“ืจื•ืง.
  • ืคึฟืึทืจ C ++, ื™ืงืกืคึผืขืจืžืขื ืึทืœ ืฉื˜ื™ืฆืŸ ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืคึฟืึทืจ ืขื˜ืœืขื›ืข ื™ืžืคึผืจื•ื•ื•ืžืึทื ืฅ ื•ื•ืึธืก ื–ืขื ืขืŸ ื“ืขื•ื•ืขืœืึธืคึผืขื“ ืคึฟืึทืจ ื“ื™ ืฆื•ืงื•ื ืคึฟื˜ C ++ 23 ืกื˜ืึทื ื“ืึทืจื˜ (-std=c++23, -std=gnu++23, -std=c++2b, -std=gnu ++2ื‘). ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืขืก ืื™ื– ืื™ืฆื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ ืœื™ื˜ืขืจืึทืœ ืกืึทืคื™ืงืก "ื–ื•" ืคึฟืึทืจ ื’ืขื—ืชืžืขื˜ ื’ืจื™ื™ืก_ื˜ ื•ื•ืึทืœื•ืขืก.
  • libstdc ++ ื”ืื˜ ื™ืžืคึผืจื•ื•ื•ื“ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ C ++ 17 ื ืึธืจืžืึทืœ, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื“ื™ ื”ืงื“ืžื” ืคื•ืŸ std::from_chars ืื•ืŸ std::to_chars ื™ืžืคึผืœืึทืžืึทื ืฅ ืคึฟืึทืจ ืคืœืึธื•ื˜ื™ื ื’ ืคื•ื ื˜ ื˜ื™ื™ืคึผืก. ื™ืžืคึผืœืึทืžืขื ื˜ืึทื“ ื ื™ื™ึทืข ืขืœืขืžืขื ื˜ืŸ ืคื•ืŸ ื“ื™ C ++ 20 ื ืึธืจืžืึทืœ, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ std::bit_cast, std::source_location, ืึทื˜ืึธืžื™ืฉืข ืึธืคึผืขืจืึทื˜ื™ืึธื ืก ื•ื•ืึทืจื˜ืŸ ืื•ืŸ ื’ืขื‘ื  ืฆื• ื•ื•ื™ืกืŸ, , , , , ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืขืœืขืžืขื ื˜ืŸ ืคื•ืŸ ื“ื™ ืฆื•ืงื•ื ืคึฟื˜ C ++ ื ืึธืจืžืึทืœ 23 (ืกื˜ื“ :: ืฆื•_ืึทื ื“ืขืจืœื™ื™ื™ื ื’, ืกื˜ื“ :: ืื™ื–_ืกืงืึธืคึผืขื“_ืขื ื•ื). ืฆื•ื’ืขืœื™ื™ื’ื˜ ื™ืงืกืคึผืขืจืžืขื ืึทืœ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื˜ื™ื™ืคึผืก ืคึฟืึทืจ ืคึผืึทืจืึทืœืขืœ ื“ืึทื˜ืŸ ืคึผืจืึทืกืขืกื™ื ื’ (ืกื™ืžื“, ื“ืึทื˜ืึท-ืคึผืึทืจืึทืœืขืœ ื˜ื™ื™ืคึผืก). ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ std::uniform_int_distribution ืื™ื– ืึทืงืกืขืœืขืจื™ื™ื˜ื™ื“.
  • ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ ื“ื™ ืึทืœืฃ ืงื•ื•ืึทืœื™ื˜ืขื˜ ืคืึธืŸ ืคื•ืŸ libgccjit, ืึท ืฉืขืจื“ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืคึฟืึทืจ ืขืžื‘ืขื“ื“ื™ื ื’ ืึท ืงืึธื“ ื’ืขื ืขืจืึทื˜ืึธืจ ืื™ืŸ ืื ื“ืขืจืข ืคึผืจืึทืกืขืกืึทื– ืื•ืŸ ื ื™ืฆืŸ ืขืก ืฆื• ืึธืจื’ืึทื ื™ื–ื™ืจืŸ JIT ื–ืึทืžืœื•ื ื’ ืคื•ืŸ ื‘ื™ื˜ืขืงืึธื“ืข ืื™ืŸ ืžืึทืฉื™ืŸ ืงืึธื“. ืฆื•ื’ืขื’ืขื‘ืŸ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื‘ื•ื™ืขืŸ libgccjit ืคึฟืึทืจ MinGW.
  • ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ AArch64 Armv8-R ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ (-ืžืึทืจืฅ = ืึทืจืžื•ื•8-ืจ). ืคึฟืึทืจ AArch64 ืื•ืŸ ARM ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจื–, ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืคึผืจืึทืกืขืกืขืจื– ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ (ืคึผืึทืจืึทืžืขื˜ืขืจืก -mcpu ืื•ืŸ -mtune): Arm Cortex-A78 (cortex-a78), Arm Cortex-A78AE (cortex-a78ae), Arm Cortex-A78C (cortex-a78c) , Arm Cortex- X1 (cortex-x1), Arm Neoverse V1 (neoverse-v1) ืื•ืŸ Arm Neoverse N2 (neoverse-n2). Fujitsu A64FX (a64fx) ืื•ืŸ Arm Cortex-R82 (cortex-r82) ืงืคึผื•ืก ื–ืขื ืขืŸ ืื•ื™ืš ืฆื•ื’ืขื’ืขื‘ืŸ, ื•ื•ืึธืก ืฉื˜ื™ืฆืŸ ื‘ืœื•ื™ื– ื“ื™ AArch64 ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ.
  • ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื ื™ืฆืŸ Armv8.3-a (AArch64/AArch32), SVE (AArch64), SVE2 (AArch64) ืื•ืŸ MVE (AArch32 M-Profil) SIMD ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก ืฆื• ืึทื•ื˜ืึธื•ื•ืขืงื˜ืึธืจื™ื™ื– ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืคึผืขืจืคืึธืจืžื™ื ื’ ืึทื“ื™ืฉืึทืŸ, ื›ื™ืกืขืจ, ืงื™ื™ืคืœ ืื•ืŸ ื•ื•ืขืจื™ืึทื ืฅ ืคื•ืŸ ืึทื“ื™ืฉืึทืŸ / ื›ื™ืกืขืจ ืื™ื‘ืขืจ. ืงืึธืžืคึผืœืขืงืก ื ื•ืžืขืจืŸ. ืฆื•ื’ืขื’ืขื‘ืŸ ืขืจืฉื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืึทื•ื˜ืึธื•ื•ืขืงื˜ืึธืจื™ื–ืึทื˜ื™ืึธืŸ ืคึฟืึทืจ ARM ื ื™ืฆืŸ ื“ื™ MVE ืœื™ืžืขื“ ืฉื˜ืขืœืŸ.
  • ืคึฟืึทืจ ARM ืคึผืœืึทื˜ืคืึธืจืžืก, ืึท ืคื•ืœ ื’ืึทื ื’ ืคื•ืŸ ืงืึทืžืคึผื™ื™ืœืขืจ-ื™ื ืึทื’ืจื™ื™ื˜ื™ื“ C ืคืึทื ื’ืงืฉืึทื ื– (ื™ื ื˜ืจื™ื ืกื™ืงืก) ืื™ื– ืฆื•ื’ืขืฉื˜ืขืœื˜, ืจื™ืคึผืœื™ื™ืกื˜ ื“ื•ืจืš ืขืงืกื˜ืขื ื“ืขื“ ื•ื•ืขืงื˜ืึธืจ ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก (SIMD), ืงืึทื•ื•ืขืจื™ื ื’ ืึทืœืข ื ืขืึธืŸ ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก ื“ืึทืงื™ื•ืžืขื ื˜ืึทื“ ืื™ืŸ ื“ื™ ACLE Q3 2020 ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’.
  • ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ gfx908 ื’ืคึผื• ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ื“ื™ ื‘ืึทืงืขื ื“ ืคึฟืึทืจ ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ ืงืึธื“ ืคึฟืึทืจ ืึทืžื“ ื’ืคึผื•ืก ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ GCN ืžื™ืงืจืึธืึทืจื˜ืฉื™ื˜ืขืงื˜ื•ืจืข.
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื ื™ื™ึทืข ืคึผืจืึทืกืขืกืขืจื– ืื•ืŸ ื ื™ื™ึทืข ื™ืงืกื˜ืขื ืฉืึทื ื– ืคื•ืŸ ื™ื ืกื˜ืจื•ืงื˜ื™ืึธื ืก ื™ืžืคึผืœืึทืžืขื ืึทื“ ืื™ืŸ ื–ื™ื™:
    • Intel Sapphire Rapids (-ืžืึทืจืฅ = sapphirerapids, ื™ื ื™ื™ื‘ืึทืœื– ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ MOVDIRI, MOVDIR64B, AVX512VP2INTERSECT, ENQCMD, CLDEMOTE, SERIALISE, PTWRITE, WAITPKG, TSXLDTRK, AMT-TILE, AMX-INT8, AMX-INT16, AMX-Intex.
    • Intel Alderlake (-ืžืึทืจืฅ = ืึทืœื“ืขืจืœืึทืงืข, ื™ื ื™ื™ื‘ืึทืœื– ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ CLDEMOTE, PTWRITE, WAITPKG, SERIALIZE, KEYLOCKER, AVX-VNNI ืื•ืŸ HRESET ื™ื ืกื˜ืจืึทืงืฉืึทื ื–).
    • Intel Rocketlake (-ืžืึทืจืฅ = Rocketlake, ืขื ืœืขืš ืฆื• Rocket Lake ืึธืŸ SGX ืฉื˜ื™ืฆืŸ).
    • AMD Zen 3 (-ืžืึทืจืฅ = ื–ื ื•ื•ืขืจ 3).
  • ืคึฟืึทืจ IA-32/x86-64 ืกื™ืกื˜ืขืžืขืŸ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื™ื ื˜ืขืœ ืคึผืจืึทืกืขืกืขืจื–, ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื ื™ื™ึทืข ืคึผืจืึทืกืขืกืขืจ ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก TSXLDTRK, SERIALISE, HRESET, UINTRKEYLOCKER, AMX-TILE, AMX-INT8, AMX-BF16, AVX-VNNI ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ.
  • ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ "-ืžืึทืจืฅ = ืงืก 86-64-ื•ื• [234]" ืคืœืึทื’ืก ืฆื• ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ืงืก 86-64 ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืœืขื•ื•ืขืœืก (ื•ื• 2 - ืงืึธื•ื•ืขืจืก SSE4.2, SSSE3, POPCNT ืื•ืŸ CMPXCHG16B ื™ืงืกื˜ืขื ืฉืึทื ื–; v3 - AVX2 ืื•ืŸ MOVBE; v4 - AVX-512 ) .
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ RISC-V ืกื™ืกื˜ืขืžืขืŸ ืžื™ื˜ ื’ืจื•ื™ืก-ืขื ื“ื™ืึทืŸ ื‘ื™ื™ื˜ ืกื“ืจ. ืฆื•ื’ืขื’ืขื‘ืŸ "-misa-spec=*" ืึธืคึผืฆื™ืข ืฆื• ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ื“ื™ ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ RISC-V ื™ื ืกื˜ืจื•ืงื˜ื™ืึธืŸ ืฉื˜ืขืœืŸ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’. ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ AddressSanitizer ืื•ืŸ ืึธื ืœื™ื™ื’ืŸ ืฉื•ืฅ ืžื™ื˜ ืงืึทื ืึทืจื™ ื˜ืึทื’ืก.
  • ืคืืจื‘ืœื™ื‘ืŸ ืคึฟืึทืจื‘ืขืกืขืจื•ื ื’ ืคื•ืŸ ื“ื™ "-ืคืึทืึทื ืึทืœื™ื–ืขืจ" ืกื˜ืึทื˜ื™ืง ืึทื ืึทืœื™ืกื™ืก ืžืึธื“ืข, ื•ื•ืึธืก ืคึผืขืจืคืึธืจืžื– ืžื™ื˜ืœ-ืื™ื ื˜ืขื ืกื™ื•ื•ืข ื™ื ื˜ืขืจืคึผืจืึทืกื™ื“ื–ืฉืขืจืึทืœ ืึทื ืึทืœื™ืกื™ืก ืคื•ืŸ ืงืึธื“ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืคึผืึทื˜ืก ืื•ืŸ ื“ืึทื˜ืŸ ืคืœืึธื•ื– ืื™ืŸ ื“ื™ ืคึผืจืึธื’ืจืึทื. ื“ืขืจ ืžืึธื“ืข ืื™ื– ื˜ื•ื™ื’ืขื•ื•ื“ื™ืง ืคื•ืŸ ื“ื™ื˜ืขืงื˜ื™ื ื’ ืคึผืจืึธื‘ืœืขืžืก ืื™ืŸ ื“ืขืจ ื–ืึทืžืœื•ื ื’ ื‘ื™ื ืข, ืึทื–ืึท ื•ื•ื™ ื˜ืึธืคึผืœ ืงืึทืœืœืก ืฆื• ื“ื™ ืคืจื™ื™ () ืคึฟื•ื ืงืฆื™ืข ืคึฟืึทืจ ืื™ื™ืŸ ื–ื›ึผืจื•ืŸ ื’ืขื’ื ื˜, ื˜ืขืงืข ื“ื™ืกืงืจื™ืคึผื˜ืึธืจ ืœื™ืงืก, ื“ืขืจืคื™ืจืึทื ืกื™ื ื’ ืื•ืŸ ืคืึธืจืŸ ื ืึทืœ ืคึผื•ื™ื ื˜ืขืจื–, ืึทืงืกืขืก ืคืจื™ื™ ื–ื™ืงืึธืจืŸ ื‘ืœืึทืงืก, ื ื™ืฆืŸ ืึทื ื™ื ื™ืฉื™ืึทืœื™ื™ื–ื“ ื•ื•ืึทืœื•ืขืก, ืขื˜ืง. ืื™ืŸ ื“ื™ ื ื™ื™ึทืข ื•ื•ืขืจืกื™ืข:
    • ื“ืขืจ ืงืึธื“ ืคึฟืึทืจ ื˜ืจืึทืงื™ื ื’ ื“ื™ ืคึผืจืึธื’ืจืึทื ืฉื˜ืึทื˜ ืื™ื– ื’ืึธืจ ืจื™ืจื™ื˜ืึทืŸ. ืคึผืจืึธื‘ืœืขืžืก ืžื™ื˜ ืกืงืึทื ื™ื ื’ ื–ื™ื™ืขืจ ื’ืจื•ื™ืก C ื˜ืขืงืขืก ื”ืึธื‘ืŸ ืฉื•ื™ืŸ ืจื™ื–ืึทืœื•ื•ื“.
    • ืฆื•ื’ืขื’ืขื‘ืŸ ืขืจืฉื˜ C ++ ืฉื˜ื™ืฆืŸ.
    • ื–ื™ืงืึธืจืŸ ืึทืœืึทืงื™ื™ืฉืึทืŸ ืื•ืŸ ื“ืขืึทืœืึธืงืึทื˜ื™ืึธืŸ ืึทื ืึทืœื™ืกื™ืก ืื™ื– ืึทื‘ืกื˜ืจืึทืงืฅ ืคื•ืŸ ื“ื™ ืกืคึผืขืฆื™ืคื™ืฉ ืžืึทืœืœืึธืง ืื•ืŸ ืคืจื™ื™ ืคืึทื ื’ืงืฉืึทื ื–, ืื•ืŸ ืื™ืฆื˜ ืฉื˜ื™ืฆื˜ ื ื™ื™ึท / ื•ื™ืกืžืขืงืŸ ืื•ืŸ ื ื™ื™ึท [] / ื•ื™ืกืžืขืงืŸ [].
    • ืฆื•ื’ืขืœื™ื™ื’ื˜ ื ื™ื™ึท ื•ื•ืึธืจื ื™ื ื’ื–: -ื•ื•ืึทื ืึทืœื™ื–ืขืจ-ืฉื™ืคื˜-ืฆื™ื™ืœืŸ-ื ืขื’ืึทื˜ื™ื•ื•, -ื•ื•ืึทื ืึทืœื™ื–ืขืจ-ืฉื™ืคื˜-ืฆื™ื™ืœืŸ-ื™ื‘ืขืจืคืœื•ืก, -ื•ื•ืึทื ืึทืœื™ื–ืขืจ-ืฉืจื™ื™ื‘-ืฆื•-ืงืึธื ืกื˜ ืื•ืŸ -ื•ื•ืึทื ืึทืœื™ื–ืขืจ-ืฉืจื™ื™ื‘-ืฆื•-ืฉื˜ืจื™ืงืœ-ืœื™ื˜ืขืจืึทืœ.
    • ืฆื•ื’ืขืœื™ื™ื’ื˜ ื ื™ื™ึทืข ื“ื™ื‘ืึทื’ื™ื ื’ ืึธืคึผืฆื™ืขืก -fdump-analyzer-json ืื•ืŸ -fno-analyzer-feasibility.
    • ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืคืึทืจื‘ืจื™ื™ื˜ืขืจืŸ ื“ื™ ืึทื ืึทืœื™ื–ืขืจ ื“ื•ืจืš ืคึผืœื•ื’ื™ื ืก ืคึฟืึทืจ GCC ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ (ืœืžืฉืœ, ืึท ืคึผืœื•ื’ื™ืŸ ืื™ื– ืฆื•ื’ืขื’ืจื™ื™ื˜ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ืคืึทืœืฉ ื ื•ืฆืŸ ืคื•ืŸ ื’ืœืื‘ืืœืข ืœืึทืงื™ื ื’ (GIL) ืื™ืŸ CPython).

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

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