ΠΠΎ ΡΠ΅ΡΡ ΠΌΠ΅ΡΠ΅ΡΠΈ ΡΠ°Π·Π²ΠΎΡ
ΠΠ»ΡΡΠ½Π°ΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π° Π²ΠΎ Π½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π΅ΡΠ΅ Π²ΠΊΠ»ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π°
- ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ Π·Π° Π²ΡΠ°ΡΠ°ΡΠ΅ Π½Π° Π°ΠΏΡΡΡΠ°ΠΊΡΠ½ΠΎΡΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠ½ΠΎ Π΄ΡΠ²ΠΎ (
AST ) Π·Π° ΡΠΊΡΡΠ΅Π½ C++ ΠΊΠΎΠ΄, ΠΊΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° Π΄ΠΈΡΠ°Π³Π½ΠΎΡΡΠΈΡΠΈΡΠ°ΡΠ΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½ΠΈΡΠ΅ Π°Π»Π°ΡΠΊΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ clang-tidy ΠΈ clangd. Π€ΡΠ½ΠΊΡΠΈΡΠ°ΡΠ° Π΅ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½Π° Π·Π° C++ ΠΊΠΎΠ΄ΠΎΡ ΠΈ ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ° ΠΏΡΠ΅ΠΊΡ ΠΎΠΏΡΠΈΠΈΡΠ΅ β-Xclang -f[no-]recovery-astβ. - ΠΠΎΠ΄Π°Π΄Π΅Π½ΠΈ Π½ΠΎΠ²ΠΈ Π΄ΠΈΡΠ°Π³Π½ΠΎΡΡΠΈΡΠΊΠΈ ΡΠ΅ΠΆΠΈΠΌΠΈ:
- β-Wpointer-to-int-castβ Π΅ Π³ΡΡΠΏΠ° Π½Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅Π΄ΡΠ²Π°ΡΠ° Π·Π° ΡΡΠ»Π°ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π°ΡΠΈ Π½Π° ΡΠ΅Π» Π±ΡΠΎΡ ΡΠΈΠΏ int ΡΡΠΎ Π½Π΅ Π³ΠΈ ΠΎΠΏΡΠ°ΡΠ° ΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ½ΠΈ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ.
- β-Wuninicialized-const-referenceβ - ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ Π·Π° ΠΏΡΠ΅Π½Π΅ΡΡΠ²Π°ΡΠ΅ Π½Π΅ΠΈΠ½ΠΈΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π²ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΠ°ΡΠ° ΡΡΠΎ ΠΏΡΠΈΡΠ°ΡΠ°Π°Ρ ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠ½ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ ΡΠΎ Π°ΡΡΠΈΠ±ΡΡΠΎΡ βconstβ.
- β-Wimplicit-const-int-float-conversionβ - ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ Π΅ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ Π·Π° ΠΈΠΌΠΏΠ»ΠΈΡΠΈΡΠ½Π° ΠΊΠΎΠ½Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° ΡΠ΅Π°Π»Π½Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° Π²ΠΎ ΡΠ΅Π» Π±ΡΠΎΡ.
- ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° ARM, C ΡΡΠ½ΠΊΡΠΈΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ Π²ΠΎ ΠΊΠΎΠΌΠΏΠ°ΡΠ»Π΅ΡΠΎΡ ΡΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄Π΅Π½ΠΈ (
ΠΠ½Π°ΡΡΠ΅ΡΠ½ΠΎΡΡ ), Π·Π°ΠΌΠ΅Π½Π΅Ρ ΡΠΎ Π΅ΡΠΈΠΊΠ°ΡΠ½ΠΈ Π²Π΅ΠΊΡΠΎΡΡΠΊΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Arm v8.1-M MVE ΠΈ CDE. ΠΠΎΡΡΠ°ΠΏΠ½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈ Π²ΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈΡΠ΅ Π·Π° Π·Π°Π³Π»Π°Π²ΠΈΠ΅ arm_mve.h ΠΈ arm_cde.h. -
ΠΠΎΠ΄Π°Π΄Π΅Π½ΠΎ Π·Π±ΠΈΡ ΠΎΠ΄ ΠΏΡΠΎΡΠΈΡΠ΅Π½ΠΈ ΡΠΈΠΏΠΎΠ²ΠΈ ΡΠ΅Π»ΠΈ Π±ΡΠΎΠ΅Π²ΠΈ _ExtInt(N), ΡΡΠΎ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΡΠΈΠΏΠΎΠ²ΠΈ ΠΊΠΎΠΈ Π½Π΅ ΡΠ΅ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ Π½Π° ΠΌΠΎΡΠΈ ΠΎΠ΄ Π΄Π²Π°, ΠΊΠΎΠΈ ΠΌΠΎΠΆΠ°Ρ Π΅ΡΠΈΠΊΠ°ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠ²Π°Π°Ρ Π½Π° FPGA/HLS.ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ , _ExtInt(7) Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° ΡΠ΅Π» Π±ΡΠΎΡ ΠΊΠΎΡ ΡΠ΅ ΡΠΎΡΡΠΎΠΈ ΠΎΠ΄ 7 Π±ΠΈΡΠ°. - ΠΠΎΠ΄Π°Π΄Π΅Π½ΠΈ ΠΌΠ°ΠΊΡΠΎΠ° ΠΊΠΎΠΈ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π°Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ C Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅ Π½Π° ARM SVE (Scalable Vector Extension):
__ARM_FEATURE_SVE, __ARM_FEATURE_SVE_BF16,
__ARM_FEATURE_SVE_MATMUL_FP32, __ARM_FEATURE_SVE_MATMUL_FP64,
__ARM_FEATURE_SVE_MATMUL_INT8,
__ARM_FEATURE_SVE2, __ARM_FEATURE_SVE2_AES,
__ARM_FEATURE_SVE2_BITPERM,
__ARM_FEATURE_SVE2_SHA3,
__ARM_FEATURE_SVE2_SM4. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠ°ΠΊΡΠΎΡΠΎ __ARM_FEATURE_SVE Π΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΎ ΠΊΠΎΠ³Π° ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° ΠΊΠΎΠ΄ΠΎΡ AArch64 ΡΠΎ ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΠΏΡΠΈΡΠ°ΡΠ° Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°ΡΠ° Π»ΠΈΠ½ΠΈΡΠ° β-march=armv8-a+sveβ. - ΠΠ½Π°ΠΌΠ΅ΡΠΎ β-Oβ ΡΠ΅Π³Π° ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π° ΡΠΎ ΡΠ΅ΠΆΠΈΠΌΠΎΡ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΠ° β-O1β Π½Π°ΠΌΠ΅ΡΡΠΎ β-O2β.
- ΠΠΎΠ΄Π°Π΄Π΅Π½ΠΈ Π½ΠΎΠ²ΠΈ Π·Π½Π°ΠΌΠ΅Π½ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠ°ΡΠ»Π΅ΡΠΎΡ:
- β-fstack-clash-protectionβ - ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π·Π°ΡΡΠΈΡΠ° ΠΎΠ΄
ΡΠ°ΡΠΊΡΡΠ½ΠΈΡΠΈ Π½Π° ΠΎΡΠ°ΠΊΠΎΡ ΠΈ ΠΊΡΠΏΠΎΡ . - "-ffp-exception-behavior={ignore,maytrap,strict}" - Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° Π³ΠΎ ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΠΎΡ Π½Π° ΡΠ°ΠΊΡΠ²Π°Ρ ΡΠΎ ΠΈΡΠΊΠ»ΡΡΠΎΡΠΈ Π·Π° Π±ΡΠΎΠ΅Π²ΠΈ ΡΠΎ ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½Π° Π·Π°ΠΏΠΈΡΠΊΠ°.
- "-ffp-model={precise,strict,fast}" - ΠΠΎ ΠΏΠΎΠ΅Π΄Π½ΠΎΡΡΠ°Π²ΡΠ²Π° ΠΏΡΠΈΡΡΠ°ΠΏΠΎΡ Π΄ΠΎ Π½ΠΈΠ·Π° ΡΠΏΠ΅ΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΎΠΏΡΠΈΠΈ Π·Π° Π±ΡΠΎΠ΅Π²ΠΈ ΡΠΎ ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½Π° Π·Π°ΠΏΠΈΡΠΊΠ°.
- β-fpch-codegenβ ΠΈ β-fpch-debuginfoβ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΎ ΠΊΠΎΠΌΠΏΠ°ΡΠ»ΠΈΡΠ°Π½ΠΎ Π·Π°Π³Π»Π°Π²ΠΈΠ΅ (PCH) ΡΠΎ ΠΏΠΎΡΠ΅Π±Π½ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ-Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π·Π° ΠΊΠΎΠ΄ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°ΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ.
- β-fsanitize-coverage-allowlistβ ΠΈ β-fsanitize-coverage-blocklistβ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π±Π΅Π»ΠΈ ΠΈ ΡΡΠ½ΠΈ Π»ΠΈΡΡΠΈ Π·Π° ΡΠ΅ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΠΎΠΊΡΠΈΠ΅Π½ΠΎΡΡ.
- β-mtls-size={12,24,32,48}β Π·Π° Π΄Π° ΡΠ° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°ΡΠ° Π½Π° TLS (Π½ΠΈΡΠΊΠ°-Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅).
- β-menable-experimental-extensionβ Π·Π° ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π°ΡΠ΅ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½ΠΈ RISC-V Π΅ΠΊΡΡΠ΅Π½Π·ΠΈΠΈ.
- β-fstack-clash-protectionβ - ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π·Π°ΡΡΠΈΡΠ° ΠΎΠ΄
- Π‘ΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΈΠΎΡ ΡΠ΅ΠΆΠΈΠΌ Π·Π° C Π΅ β-fno-commonβ, ΡΡΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° ΠΏΠΎΠ΅ΡΠΈΠΊΠ°ΡΠ΅Π½ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ Π³Π»ΠΎΠ±Π°Π»Π½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° Π½Π΅ΠΊΠΎΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ.
- Π‘ΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΈΠΎΡ ΠΊΠ΅Ρ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΎΡ Π΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ΅Π½ ΠΎΠ΄ /tmp Π²ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΎΡ ~/.cache. ΠΠ° ΠΎΡΡΡΠ»Π°ΡΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ Π·Π½Π°ΠΌΠ΅ΡΠΎ β-fmodules-cache-path=β.
- Π‘ΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΈΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΠ΄ Π·Π° ΡΠ°Π·ΠΈΠΊ C Π΅ Π°ΠΆΡΡΠΈΡΠ°Π½ ΠΎΠ΄ gnu11 Π½Π° gnu17.
- ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΏΡΠ΅Π»ΠΈΠΌΠΈΠ½Π°ΡΠ½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° Π΅ΠΊΡΡΠ΅Π½Π·ΠΈΡΠ° GNU C "
asm inline Β» Π·Π° Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ Π°ΡΠ΅ΠΌΠ±Π»Π΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠΈ. ΠΡΠΎΡΠΈΡΡΠ²Π°ΡΠ΅ΡΠΎ ΡΠ΅ ΡΡΡΠ΅ ΡΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°, Π½ΠΎ Π½Π΅ ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠ²Π° Π½Π° ΠΊΠΎΡ Π±ΠΈΠ»ΠΎ Π½Π°ΡΠΈΠ½. - ΠΡΠΎΡΠΈΡΠ΅Π½ΠΈ ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ°ΡΠ° Π·Π° OpenCL ΠΈ CUDA. ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° OpenCL 2.0 Π±Π»ΠΎΠΊ Π΄ΠΈΡΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ° ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½ΠΈ Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ OpenMP 5.0.
- ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡΠ°ΡΠ° IndentExternBlock Π²ΠΎ Π°Π»Π°ΡΠΊΠ°ΡΠ° Π·Π° ΡΠΎΡΠΌΠ°Ρ Π½Π° clang Π·Π° ΠΏΠΎΡΠ°ΠΌΠ½ΡΠ²Π°ΡΠ΅ Π²ΠΎ Π΅ΠΊΡΡΠ΅ΡΠ½ΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ βCβ ΠΈ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½ΠΈΡΠ΅ βC++β.
- Π‘ΡΠ°ΡΠΈΡΠΊΠΈΠΎΡ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ Π³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ ΡΠΎ Π½Π°ΡΠ»Π΅Π΄Π΅Π½ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΈ Π²ΠΎ C++. ΠΠΎΠ΄Π°Π΄Π΅Π½ΠΈ ΡΠ΅ Π½ΠΎΠ²ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ alpha.core.C11Lock ΠΈ alpha.fuchsia.Lock Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π±ΡΠ°Π²ΠΈ, alpha.security.cert.pos.34c Π·Π° ΠΎΡΠΊΡΠΈΠ²Π°ΡΠ΅ Π½Π΅Π±Π΅Π·Π±Π΅Π΄Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π° Π½Π° putenv, webkit.NoUncountedMemberChecker ΠΈ webkit.RefCntblBaseVirtualDtor Π·Π° ΠΎΡΠΊΡΠΈΠ²Π°ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΠΎ Π½Π΅Π±ΡΠΎΠΈ .cplusplus .SmartPtr Π·Π° Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈ Π΄Π°Π»ΠΈ ΠΈΠΌΠ° Π½ΡΠ»Π° Π΄Π΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈΡΠ° Π½Π° ΠΏΠ°ΠΌΠ΅ΡΠ½ΠΈΠΎΡ ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π°Ρ.
- ΠΠΎ Π»ΠΈΠ½ΡΠ΅Ρ ΡΠ²Π΅ΡΠΊΠ°Π°Ρ-ΡΡΠ΅Π΄Π½ΠΈ
Π΄ΠΎΠ΄Π°Π΄Π΅Π½Π° Π³ΠΎΠ»Π΅ΠΌ Π΄Π΅Π» ΠΎΠ΄ Π½ΠΎΠ²ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ. - Π‘Π΅ΡΠ²Π΅ΡΠΎΡ Π·Π° ΠΊΠ΅ΡΠΈΡΠ°ΡΠ΅ clangd (Clang Server) Π³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ ΠΈ Π΄ΠΎΠ΄Π°Π΄Π΅ Π½ΠΎΠ²ΠΈ Π΄ΠΈΡΠ°Π³Π½ΠΎΡΡΠΈΡΠΊΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ.
ΠΠ»Π°Π²Π½ΠΈΡΠ΅
- Π‘ΠΈΡΡΠ΅ΠΌΠΎΡ Π·Π° Π³ΡΠ°Π΄Π΅ΡΠ΅ Π΅ ΠΏΡΠ΅ΡΡΠ»Π΅Π½ Π½Π° ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° Python 3. ΠΠΊΠΎ Python 3 Π½Π΅ Π΅ Π΄ΠΎΡΡΠ°ΠΏΠ΅Π½, ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ Π²ΡΠ°ΡΠΈΡΠ΅ Π½Π° ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° Python 2.
- ΠΡΠ΅Π΄Π½ΠΈΠΎΡ Π΄Π΅Π» ΡΠΎ ΠΊΠΎΠΌΠΏΠ°ΡΠ»Π΅ΡΠΎΡ Π·Π° ΡΠ°Π·ΠΈΠΊΠΎΡ Go (llgo) Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ ΠΎΠ΄ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ, ΠΊΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ΅ΡΡΡΡΠΊΡΡΠΈΡΠ° Π²ΠΎ ΠΈΠ΄Π½ΠΈΠ½Π°.
- ΠΡΡΠΈΠ±ΡΡΠΎΡ vector-function-abi-variant Π΅ Π΄ΠΎΠ΄Π°Π΄Π΅Π½ Π½Π° ΡΡΠ΅Π΄Π½ΠΎΡΠΎ ΠΏΡΠ΅ΡΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ (IR) Π·Π° Π΄Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ΅ ΠΏΡΠ΅ΡΠ»ΠΈΠΊΡΠ²Π°ΡΠ΅ΡΠΎ ΠΏΠΎΠΌΠ΅ΡΡ ΡΠΊΠ°Π»Π°ΡΠ½ΠΈΡΠ΅ ΠΈ Π²Π΅ΠΊΡΠΎΡΡΠΊΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° Π²Π΅ΠΊΡΠΎΡΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΠΎΠ²ΠΈΡΠΈΡΠ΅. ΠΠ΄ llvm::VectorType ΠΏΠΎΡΡΠΎΡΠ°Ρ Π΄Π²Π° ΠΏΠΎΡΠ΅Π±Π½ΠΈ Π²Π΅ΠΊΡΠΎΡΡΠΊΠΈ ΡΠΈΠΏΠ° llvm::FixedVectorType ΠΈ llvm::ScalableVectorType.
- Π Π°Π·Π³ΡΠ°Π½ΡΠ²Π°ΡΠ΅ΡΠΎ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈΡΠ΅ Π½Π° udef ΠΈ ΠΏΡΠ΅Π½Π΅ΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈΡΠ΅ Π½Π° undef Π½Π° ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΠ·Π½Π°Π²Π° ΠΊΠ°ΠΊΠΎ Π½Π΅Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΎ ΠΎΠ΄Π½Π΅ΡΡΠ²Π°ΡΠ΅. ΠΠ
memset/memcpy/memmove Π΄ΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΡΠ΅Π½Π΅ΡΡΠ²Π°ΡΠ΅ undef ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π°ΡΠΈ, Π½ΠΎ Π°ΠΊΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°ΡΠΎΡ ΡΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π° Π΅ Π½ΡΠ»Π°. - LLJIT Π΄ΠΎΠ΄Π°Π΄Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΡΠ°ΡΠΈΡΠΊΠΈ ΠΈΠ½ΠΈΡΠΈΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΠ° ΠΏΡΠ΅ΠΊΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ LLJIT::initialize ΠΈ LLJIT::deinitialize. Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠ° Π·Π° Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ ΡΡΠ°ΡΠΈΡΠ½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²ΠΎ JITDylib ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° ΠΊΠ»Π°ΡΠ°ΡΠ° StaticLibraryDefinitionGenerator Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½Π°. ΠΠΎΠ΄Π°Π΄Π΅Π½ΠΎ C API Π·Π°
ORCv2 (API Π·Π° Π³ΡΠ°Π΄Π΅ΡΠ΅ JIT ΠΊΠΎΠΌΠΏΠ°ΡΠ»Π΅ΡΠΈ). - ΠΠΎΠ΄Π΄ΡΡΠΊΠ°ΡΠ° Π·Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈΡΠ΅ Cortex-A64, Cortex-A34, Cortex-A77 ΠΈ Cortex-X78 Π΅ Π΄ΠΎΠ΄Π°Π΄Π΅Π½Π° Π²ΠΎ Π·Π°Π΄Π½ΠΈΠΎΡ Π΄Π΅Π» Π·Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° AArch1. ΠΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½ΠΈ ARMv8.2-BF16 (BFloat16) ΠΈ ARMv8.6-A Π΅ΠΊΡΡΠ΅Π½Π·ΠΈΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈ RMv8.6-ECV (ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° Π²ΠΈΡΡΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° Π±ΡΠΎΡΠ°ΡΠΎΡ), ARMv8.6-FGT (ΡΠΈΠ½ΠΎ Π·ΡΠ½Π΅ΡΡΠΈ ΡΡΠ°ΠΏΠΈΡΠΈ), ARMv8.6-AMU (Π²ΠΈΡΡΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡ) ΠΈ ARMv8.0-DGH (Π‘ΠΎΠ²Π΅Ρ Π·Π° ΡΠΎΠ±ΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ). ΠΠ±Π΅Π·Π±Π΅Π΄Π΅Π½Π° Π΅ ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΊΠΎΠ΄ Π·Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ-Π²ΡΠ·ΡΠ²Π°ΡΠ° Π·Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° Π²Π΅ΠΊΡΠΎΡ SVE.
- ΠΠΎΠ΄Π΄ΡΡΠΊΠ°ΡΠ° Π·Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈΡΠ΅ Cortex-M55, Cortex-A77, Cortex-A78 ΠΈ Cortex-X1 Π΅ Π΄ΠΎΠ΄Π°Π΄Π΅Π½Π° Π²ΠΎ Π·Π°Π΄Π½ΠΈΠΎΡ Π΄Π΅Π» Π·Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° ARM. ΠΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½ΠΈ Π΅ΠΊΡΡΠ΅Π½Π·ΠΈΠΈ
Armv8.6-A Matrix Multiply and RMv8.2-AA32BF16 BFloat16. - ΠΠΎΠ΄Π΄ΡΡΠΊΠ°ΡΠ° Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ΄ Π·Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈΡΠ΅ POWER10 Π΅ Π΄ΠΎΠ΄Π°Π΄Π΅Π½Π° Π²ΠΎ Π·Π°Π΄Π½ΠΈΠΎΡ Π΄Π΅Π» Π·Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° PowerPC. ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ Π½Π° ΡΠ°ΠΌΠΊΠ°ΡΠ° ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ΅Π½ΠΈ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ°ΡΠ° Π·Π° ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½Π° Π·Π°ΠΏΠΈΡΠΊΠ° Π΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π°.
- ΠΠ°Π΄Π½ΠΈΠ½Π°ΡΠ° Π·Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° RISC-V ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° ΠΏΡΠΈΡΠ°ΡΠ°ΡΠ΅ Π½Π° Π·Π°ΠΊΡΠΏΠΈ ΠΊΠΎΠΈ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π°Π°Ρ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΊΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΊΠΎΠΈ ΡΓ¨ ΡΡΡΠ΅ Π½Π΅ ΡΠ΅ ΠΎΡΠΈΡΠΈΡΠ°Π»Π½ΠΎ ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈ.
- ΠΠ°Π΄Π½ΠΈΠ½Π°ΡΠ° Π·Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° AVR Π΅ ΠΏΡΠ΅ΡΡΠ»Π΅Π½Π° ΠΎΠ΄ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½Π° ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠ° Π²ΠΎ ΡΡΠ°Π±ΠΈΠ»Π½Π°, Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π²ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΠ°.
- ΠΠ°Π΄Π½ΠΈΠ½Π°ΡΠ° Π·Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° x86 ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π° Intel AMX ΠΈ TSXLDTRK. ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π·Π°ΡΡΠΈΡΠ° ΠΎΠ΄ Π½Π°ΠΏΠ°Π΄ΠΈ
LVI (Load Value Injection), Π° ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ° ΠΎΠΏΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·Π°ΠΌ Π·Π° ΠΏΠΎΡΠΈΡΠ½ΡΠ²Π°ΡΠ΅ Π½Π° Π½Π΅ΡΠ°ΠΊΠ°Π½ΠΈ Π΅ΡΠ΅ΠΊΡΠΈ Π½Π° ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π·Π° Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠ΅ Π½Π° Π½Π°ΠΏΠ°Π΄ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½ΠΈ ΠΎΠ΄ ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΎΡ. - ΠΠΎ Π·Π°Π΄Π½ΠΈΠΎΡ Π΄Π΅Π» Π·Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° SystemZ, Π΄ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° MemorySanitizer ΠΈ LeakSanitizer.
- Libc++ Π΄ΠΎΠ΄Π°Π²Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° Π½Π°ΡΠ»ΠΎΠ²Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΡΠΎ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠΊΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΈ
. -
ΠΡΠΎΡΠΈΡΠ΅Π½ Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π·Π° ΠΏΠΎΠ²ΡΠ·ΡΠ²Π°ΡΠ΅ Π½Π° LLD. ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΡΠΎΡΠΌΠ°ΡΠΎΡ ELF, Π²ΠΊΠ»ΡΡΡΠ²Π°ΡΡΠΈ Π³ΠΈ Π΄ΠΎΠ΄Π°Π΄Π΅Π½ΠΈΡΠ΅ ΠΎΠΏΡΠΈΠΈ β--lto-emit-asmβ, β--lto-whole-program-visibilityβ, β-print-archive-statsβ, β-shuffle-sectionsβ, β -thinlto- Π΅Π΄Π΅Π½-ΠΌΠΎΠ΄ΡΠ»", "-ΡΠ½ΠΈΠΊΠ°ΡΠ΅Π½", "-ΡΠΎΠ·Π΅Π³ΠΌΠ΅Π½Ρ", "-threads=N". ΠΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡΠ°ΡΠ° β--time-traceβ Π·Π° Π·Π°ΡΡΠ²ΡΠ²Π°ΡΠ΅ Π½Π° ΡΡΠ°Π³Π°ΡΠ° Π²ΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°, ΠΊΠΎΡΠ° ΠΏΠΎΡΠΎΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ° ΠΏΡΠ΅ΠΊΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡΠΎΡ chrome://tracing Π²ΠΎ Chrome.
ΠΠ·Π²ΠΎΡ: opennet.ru