Π‘Π»Π΅Π΄ Π³ΠΎΠ΄ΠΈΠ½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π±Π΅ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠΈ GCC 16.1, ΠΏΡΡΠ²ΠΎΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π² Π½ΠΎΠ²Π°ΡΠ° ΠΊΠ»ΠΎΠ½ΠΊΠ° Π½Π° GCC 16.x. Π‘ΡΠ³Π»Π°ΡΠ½ΠΎ ΡΡ Π΅ΠΌΠ°ΡΠ° Π½Π° Π½ΠΎΠΌΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·Π΄Π°Π½ΠΈΡΡΠ°, Π²Π΅ΡΡΠΈΡ 16.0 Π΅ Π±ΠΈΠ»Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π² ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, Π° ΠΌΠ°Π»ΠΊΠΎ ΠΏΡΠ΅Π΄ΠΈ ΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ Π½Π° GCC 16.1 Π²Π΅ΡΠ΅ ΡΠ΅ Π΅ ΠΎΡΠΊΠ»ΠΎΠ½ΠΈΠ» ΠΊΠ»ΠΎΠ½ GCC 17.0, Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΎΡΠΎΡΠΌΠ΅Π½ΠΎ ΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ GCC 17.1.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ:
- Π Π΅ΠΆΠΈΠΌΡΡ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π·Π° Π΅Π·ΠΈΠΊΠ° C++ Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ° C++20 (Π΄ΠΈΠ°Π»Π΅ΠΊΡ GNU C++20, -std=gnu++20) Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π½ΠΈΡ C++17. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° C++20 Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΅ ΠΎΠ±ΡΠ²Π΅Π½Π° Π·Π° ΡΡΠ°Π±ΠΈΠ»Π½Π°.
- ΠΠΊΠ»ΡΡΠ΅Π½ Π΅ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π΅Π½ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ ga68 Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ ΠΠ»Π³ΠΎΠ» 68 (Algol 68).
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠ½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ HTML. Π Π°Π·ΡΠΈΡΠ΅Π½Π° Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ°, Π²ΠΊΠ»ΡΡΠ²Π°Π½Π° ΠΏΡΠΈ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ°ΡΠ° Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ SARIF, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° JSON (ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Β«-fdiagnostics-format=jsonΒ» Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π°).
- Π Π°Π·ΡΠΈΡΠ΅Π½ΠΈ ΡΠ° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ Π½Π° Π΅ΡΠ°ΠΏΠ° Π½Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ (LTO, Link-Time Optimization). ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡ Β«-flto-toplevel-asm-heuristicsΒ», Π²ΠΊΠ»ΡΡΠ²Π°ΡΠ° Ρ Π΅Π²ΡΠΈΡΡΠΈΠΊΠ° Π·Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΊΠΎΠ΄Π° Ρ Π°ΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΈ Π²ΠΌΡΠΊΠ²Π°Π½ΠΈΡ. Π’Π΅Ρ Π½ΠΈΠΊΠ°ΡΠ° Π½Π° ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½Π° Π΄Π΅Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ (-fdevirtualize-speculatively) Π²Π΅ΡΠ΅ Π½Π΅ Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° Π΄ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° ΠΏΡΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ΡΠΎ Π² ΠΏΡΠΎΡΡΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ Π½Π° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΠΊΠΎΡΠ²Π΅Π½ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ ΡΡΠ΅Π· ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ.
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π²Π΅ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠΈΠΊΠ»ΠΈ, Π·Π° ΠΊΠΎΠΈΡΠΎ Π½Π° Π΅ΡΠ°ΠΏΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π΅ Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΡΠΈΡΠ»ΠΎΡΠΎ Π½Π° ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅. ΠΠΎΠ²ΠΈΡΠ΅Π½Π° Π΅ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠ΅Π΄ΡΡΠΎΡΠ½ΠΈ ΠΈΠ·Ρ ΠΎΠ΄ΠΈ ΠΎΡ ΡΠΈΠΊΡΠ»Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ΅Π· break).
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΡ Π½Π°ΡΠΊΠΎΡΠΎ ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡ C++26. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΠ°:
- Π Π΅ΡΠ»Π΅ΠΊΡΠΈΡ (Reflection, Β«-freflectionΒ»), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° Π½Π° Π΅ΡΠ°ΠΏΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ. ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ Β«^^ (open-std.org)Β» Π·Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΌΠ΅ΡΠ°ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π³ΡΠ°ΠΌΠ°ΡΠΈΡΠ½Π°ΡΠ° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΈ Β«[:β¦:]Β» Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅. ΠΠ° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ΡΠΎ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½Π°ΡΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΈΡΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° std::meta ΠΈ ΡΠ° Π΄ΠΎΡΡΡΠΏΠ½ΠΈ ΡΠ°ΠΊΠΈΠ²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠ°ΡΠΎ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΈ.
- ΠΠΎΠ³ΠΎΠ²ΠΎΡΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ (Contracts), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΡΠΎΡΠΌΠ°Π»Π½ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ ΡΡΠ΅Π· ΡΡΠΈ Π½ΠΎΠ²ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°: pre (ΠΏΡΠ΅Π΄ΡΡΠ»ΠΎΠ²ΠΈΠ΅), post (ΠΏΠΎΡΡΡΡΠ»ΠΎΠ²ΠΈΠ΅) ΠΈ contract_assert (ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ²ΡΡΠ΄Π΅Π½ΠΈΠ΅). ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡΡ Β«preΒ» ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈ ΠΏΡΠ΅Π΄ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ (ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π²Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ); Β«postΒ» β ΡΡΠ»ΠΎΠ²ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠΏΠ°Π·Π²Π°Π½ΠΈ ΡΠ»Π΅Π΄ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ (ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ Π·Π° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ); contract_assert β ΡΡΠ»ΠΎΠ²ΠΈΡ Π·Π° Π²ΡΠ·Π½ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. Π’Π°Π·ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ ΡΠ΅ Π±ΡΠ΄Π΅ Π½Π°Π»ΠΈΡΠ½Π° Π² GCC 16.
- ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡΡ Β«template forΒ» Π·Π° ΠΎΠ±Ρ ΠΎΠ΄ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ, ΠΊΠ°ΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΡΠ²Π°Ρ ΠΊΠΎΡΡΠ΅ΠΆΠΈ, ΠΎΠ±Π΅ΠΊΡΠΈ ΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΎΡ ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΡ (ΠΌΠ΅ΡΠ°ΠΎΠ±Π΅ΠΊΡΠΈ), Π½Π° Π΅ΡΠ°ΠΏ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π² ΡΡΠΈΠ» Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΡΠΈΠΊΡΠ». ΠΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Β«template forΒ» ΡΡΠ»ΠΎΡΠΎ Π½Π° ΡΠΈΠΊΡΠ»Π° ΡΠ΅ ΡΠ°Π·Π³ΡΠ²Π° Π·Π° Π²ΡΠ΅ΠΊΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ ΠΈ Π²ΡΡΠΊΠ° ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° Π² ΠΎΡΠ΄Π΅Π»Π½Π° ΠΎΠ±Π»Π°ΡΡ Π½Π° Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ, Π² ΠΊΠΎΡΡΠΎ Π΅Π»Π΅ΠΌΠ΅Π½ΡΡΡ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΡΠ°, ΠΏΠΎ ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΈΡΠ΅ΡΠ°ΡΠΈΡΠ° ΡΠΈΠΊΡΠ»Π°, Π΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° Π·Π° Π²ΡΡΠΊΠ° ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ°ΡΡΠ²Π° Π² ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ (constexpr). Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΡΡΠ° Β«template forΒ» ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° Π·Π° ΠΎΠ±Ρ ΠΎΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ²ΠΎΠΉΡΡΠ²Π° Π½Π° ΠΊΠ»Π°ΡΠΎΠ²Π΅ ΠΈΠ»ΠΈ ΠΈΠ·Π±ΡΠΎΠ΅Π½ΠΈΡ.
- ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° std::simd Π·Π° ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΡΡ Ρ Π΄Π°Π½Π½ΠΈ ΡΡΠ΅Π· Π½Π°Π±ΠΎΡΠΈ ΠΎΡ SIMD ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠ°ΡΠΎ AVX-512 ΠΈ NEON, Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΡ ΡΠΈΠΏΠΎΠ²Π΅ Π½Π° C++.
- ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ std::inplace_vector, std::optional, std::copyable_function, std::function_ref, std::indirect, std::polymorphic ΠΈ std::owner_equal.
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡ C++23, ΠΊΠ°ΡΠΎ ΡΠ²Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΠΆΠΈΠ²ΠΎΡ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ ΠΈ ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΠ° ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π·Π° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ Π½Π° Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠ½ΠΈΡΠ΅ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ.
- Π Π°Π·ΡΠΈΡΠ΅Π½Π° Π΅ ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΠ°ΡΠ° Π·Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ° C23 (opennet.ru), Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π°ΡΡΠΈΠ±ΡΡ Β«counted_byΒ» Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ.
- ΠΡΠΎΠ΄ΡΠ»ΠΆΠ΅Π½Π° Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠΈΡΠ΅ OpenMP 5.0, 5.1, 5.2 ΠΈ 6.0 (Open Multi-Processing), ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΠΈ API ΠΈ Π½Π°ΡΠΈΠ½ΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄ΡΠ΅Π½ΠΈ ΠΈ Ρ ΠΈΠ±ΡΠΈΠ΄Π½ΠΈ (CPU+GPU/DSP) ΡΠΈΡΡΠ΅ΠΌΠΈ Ρ ΠΎΠ±ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π·Π° Π²Π΅ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΡ (SIMD). ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½a Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ Π·Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ OpenACC 3.0, 3.3 ΠΈ 3.4, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° ΠΈΠ·Π½Π°ΡΡΠ½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ (offloading) Π½Π° GPU ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ, ΠΊΠ°ΡΠΎ NVIDIA PTX.
- Π Π±Π΅ΠΊΠ΅Π½Π΄Π° Π·Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° x86 Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ AMD, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Zen6 (-march=znver6), ΠΊΠ°ΠΊΡΠΎ ΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ Intel Wildcat Lake (-march=wildcatlake) ΠΈ Nova Lake (-march=novalake).
- Π Π±Π΅ΠΊΠ΅Π½Π΄Π° Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ Π·Π° GPU AMD Radeon (GCN) Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΡΠΊΠΎΡΠΈΡΠ΅Π»ΠΈ AMD Instinct MI300 (gfx942).
- ΠΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈΡΠ΅ RISC-V, ARM, S/390 ΠΈ LoongArch Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠΈΠΏΠ° Β«_BitInt (N)Β» Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π° Ρ ΠΏΠΎΡΠΎΡΠ΅Π½ Π±ΡΠΎΠΉ Π±ΠΈΡΠΎΠ²Π΅.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru
