ΠΠΎΡΠ»Π΅ ΡΠ΅ΡΡΠΈ ΠΌΠ΅ΡΡΡΠ΅Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠ΅Π»ΠΈΠ· ΠΏΡΠΎΠ΅ΠΊΡΠ° LLVM 15.0 — GCC-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ (ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ, ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΡ ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΊΠΎΠ΄Π°), ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ Π±ΠΈΡΠΊΠΎΠ΄ RISC-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ (Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²Π°Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ). Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π² Clang 15.0:
- ΠΠ»Ρ ΡΠΈΡΡΠ΅ΠΌ Π½Π° Π±Π°Π·Π΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ x86 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠ»Π°Π³ «-fzero-call-used-regs», ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠΉ ΠΎΠ±Π½ΡΠ»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² CPU ΠΏΠ΅ΡΠ΅Π΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ. Π£ΠΊΠ°Π·Π°Π½Π½Π°Ρ ΠΎΠΏΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΡΠΈΡΠΈΡΡΡΡ ΠΎΡ ΡΡΠ΅ΡΠΊΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π½Π° 20% ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΡΠΈΡΠ»ΠΎ Π±Π»ΠΎΠΊΠΎΠ², ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ROP-Π³Π°Π΄ΠΆΠ΅ΡΠΎΠ² (Return-Oriented Programming) Π² ΡΠΊΡΠΏΠ»ΠΎΠΈΡΠ°Ρ .
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΠ°Π½Π΄ΠΎΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΡΡΡΡΠΊΡΡΡ Π΄Π»Ρ ΠΊΠΎΠ΄Π° Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΡΡΡΠΊΡΡΡ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ. Π Π°Π½Π΄ΠΎΠΌΠΈΠ·Π°ΡΠΈΡ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΈ Π²ΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² randomize_layout ΠΈ no_randomize_layout, ΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π·Π°ΡΡΠ°Π²ΠΊΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ»Π°Π³Π° «-frandomize-layout-seed» ΠΈΠ»ΠΈ «-frandomize-layout-seed-file».
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠ»Π°Π³ «-fstrict-flex-arrays=<arg>», ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π³ΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ Π΄Π»Ρ Π³ΠΈΠ±ΠΊΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°-ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΡΡΡΡΠΊΡΡΡΠ°Ρ (Flexible Array Members, ΠΌΠ°ΡΡΠΈΠ² Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ). ΠΡΠΈ Π²ΡΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² 0 (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΡΡΡΠΊΡΡΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ Π²ΡΠ΅Π³Π΄Π° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ², 1 — ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ [], [0] ΠΈ [1] ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ², 2 — ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ [] ΠΈ [0] ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ².
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π‘ΠΈ-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° HLSL (High-Level Shader Language), ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Π² DirectX Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ².
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ «-Warray-parameter», ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Π΅Ρ ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ Ρ Π½Π΅ ΡΠΎΡΠ΅ΡΠ°ΡΡΠΈΠΌΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ.
- Π£Π»ΡΡΡΠ΅Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ MSVC. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° «#pragma function» (ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΠΌΠ΅ΡΡΠΎ Π΅Ρ inline-ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ) ΠΈ «#pragma alloc_text» (ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΠΌΡ ΡΠ΅ΠΊΡΠΈΠΈ Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ), ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π² MSVC. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ Ρ MSVC ΡΠ»Π°Π³ΠΎΠ² /JMC ΠΈ /JMC.
- ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π±ΡΠ΄ΡΡΠΈΡ
ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² C2X ΠΈ C++23. ΠΠ»Ρ ΡΠ·ΡΠΊΠ° Π‘ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ: Π°ΡΡΠΈΠ±ΡΡ noreturn, ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° false ΠΈ true, ΡΠΈΠΏ _BitInt(N) Π΄Π»Ρ ΡΠ΅Π»ΡΡ
ΡΠΈΡΠ΅Π» Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΠΈ, ΠΌΠ°ΠΊΡΠΎΡΡ *_WIDTH, ΠΏΡΠ΅ΡΠΈΠΊΡ u8 Π΄Π»Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ UTF-8.
ΠΠ»Ρ Π‘++ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ: ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ ABI ΡΠ»Π΅Π½ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½Π°Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π΅Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΠΌΠΎΠ΄ΡΠ»ΡΡ , ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ, auto(x), Π½Π΅Π»ΠΈΡΠ΅ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, goto ΠΈ ΠΌΠ΅ΡΠΊΠΈ Π² ΡΡΠ½ΠΊΡΠΈΡΡ , ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΡ ΠΊΠ°ΠΊ constexpr, escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Ρ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΠΌΠΈ, ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ escape-ΡΠΈΠΌΠ²ΠΎΠ»Ρ.
- Π Π°ΡΡΠΈΡΠ΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ OpenCL ΠΈ OpenMP. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° OpenCL-ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ cl_khr_subgroup_rotate.
- ΠΠ»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ x86 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π·Π°ΡΠΈΡΠ° ΠΎΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ , Π²ΡΠ·Π²Π°Π½Π½ΡΡ ΡΠΏΠ΅ΠΊΡΠ»ΡΡΠΈΠ²Π½ΡΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΏΠΎΡΠ»Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΈΠ·-Π·Π° ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠ΅ΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΡΡΠ°Π·Ρ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° (SLS, Straight Line Speculation). ΠΠ»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π°ΡΠΈΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° ΠΎΠΏΡΠΈΡ «-mharden-sls=[none|all|return|indirect-jmp]».
- ΠΠ»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ SSE2 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠΈΠΏ _Float16, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΌΡΠ»ΠΈΡΡΠ΅ΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΠΏΠ° float Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ AVX512-FP16.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠ»Π°Π³ «-m[no-]rdpru» Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ RDPRU, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² AMD Zen2.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠ»Π°Π³ «-mfunction-return=thunk-extern» Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ RETBLEED, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΉ ΡΠ΅ΡΠ΅Π· Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ΅ΠΉ Π²ΠΎΠ²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΡΠΏΠ΅ΠΊΡΠ»ΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΊΠΎΡΠ²Π΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ².
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²Π° LLVM 15.0:
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° CPU Cortex-M85, Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ Armv9-A, Armv9.1-A ΠΈ Armv9.2-A, ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ Armv8.1-M PACBTI-M.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ Π±ΡΠΊΠ΅Π½Π΄ Π΄Π»Ρ DirectX, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ ΡΠΎΡΠΌΠ°Ρ DXIL (DirectX Intermediate Language), ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² DirectX. ΠΡΠΊΠ΅Π½Π΄ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° «-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=DirectX».
- Π Libc++ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½ΠΎΠ²ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² C++20 ΠΈ C++2b, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ «format» ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ «ranges».
- Π£Π»ΡΡΡΠ΅Π½Ρ Π±ΡΠΊΠ΅Π½Π΄Ρ Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ x86, PowerPC ΠΈ RISC-V.
- Π Π°ΡΡΠΈΡΠ΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊΠ° LLD ΠΈ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° LLDB.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru