ΠΠΎΡΠ»Π΅ ΡΠ΅ΡΡΠΈ ΠΌΠ΅ΡΡΡΠ΅Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
ΠΠ»ΡΡΠ΅Π²ΡΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π² Π½ΠΎΠ²ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ ΡΡΠ°Π»ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² ΡΠΎΡΡΠ°Π²
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π° (
AST ) Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° C++, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ Π²Π½Π΅ΡΠ½ΠΈΡ ΡΡΠΈΠ»ΠΈΡ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ clang-tidy ΠΈ clangd. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π΄Π»Ρ ΠΊΠΎΠ΄Π° Π½Π° C++ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΎΠΏΡΠΈΠΈ «-Xclang -f[no-]recovery-ast». - ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ:
- «-Wpointer-to-int-cast» — Π³ΡΡΠΏΠΏΠ° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΠΊ ΡΠ΅Π»ΠΎΠΌΡ ΡΠΈΠΏΡ int, Π½Π΅ Π²ΠΌΠ΅ΡΠ°ΡΡΠ΅ΠΌΡ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
- «-Wuninitialized-const-reference» — ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΡ ΡΡΡΠ»ΠΎΡΠ½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Ρ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠΌ «const».
- «-Wimplicit-const-int-float-conversion» — Π²ΠΊΠ»ΡΡΡΠ½Π½ΠΎΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎ Π½Π΅ΡΠ²Π½ΠΎΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΈ Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Π² ΡΠ΅Π»ΡΠΉ ΡΠΈΠΏ.
- ΠΠ»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ARM ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΠΈ (
Intrinsics ), Π·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ Π½Π° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Arm v8.1-M MVE ΠΈ CDE. ΠΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ arm_mve.h ΠΈ arm_cde.h. -
ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π½Π°Π±ΠΎΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ² _ExtInt(N), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΈΠΏΡ Π½Π΅ ΠΊΡΠ°ΡΠ½ΡΠ΅ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π΄Π²ΠΎΠΉΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π½Π° FPGA/HLS.ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ , _ExtInt(7) ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ΅Π»ΡΠΉ ΡΠΈΠΏ, ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· 7 Π±ΠΈΡ. - ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΌΠ°ΠΊΡΠΎΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ
Π‘ΠΈ-ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π° Π±Π°Π·Π΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ 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) Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ Π΄Π»Ρ ΠΊΠΎΠ΄Π° ΠΈ debuginfo.
- «-fsanitize-coverage-allowlist» ΠΈ «-fsanitize-coverage-blocklist» Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π±Π΅Π»ΠΎΠ³ΠΎ ΠΈ ΡΡΡΠ½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠΎΠ² coverage-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
- «-mtls-size={12,24,32,48}» Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ° TLS (thread-local storage).
- «-menable-experimental-extension» Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ RISC-V.
- «-fstack-clash-protection» — Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ
- ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ Π‘ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ½ ΡΠ΅ΠΆΠΈΠΌ «-fno-common», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ .
- ΠΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠ½ ΠΈΠ· /tmp Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ~/.cache. ΠΠ»Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π°Π³ «-fmodules-cache-path=».
- ΠΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡ ΡΠ·ΡΠΊΠ° Π‘ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ½ Ρ gnu11 Π΄ΠΎ gnu17.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ GNU C «
asm inline » Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΡΡ Π²ΡΡΠ°Π²ΠΎΠΊ. Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΡΡΡ, Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ. - Π Π°ΡΡΠΈΡΠ΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ OpenCL ΠΈ CUDA. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ Π±Π»ΠΎΠΊΠΎΠ² OpenCL 2.0 ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π½ΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ OpenMP 5.0.
- Π ΡΡΠΈΠ»ΠΈΡΡ clang-format Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ IndentExternBlock Π΄Π»Ρ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΡ Π²Π½ΡΡΡΠΈ Π±Π»ΠΎΠΊΠΎΠ² extern «C» ΠΈ extern «C++».
- Π ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ΅ ΡΠ»ΡΡΡΠ΅Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² Π² C++. ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ alpha.core.C11Lock ΠΈ alpha.fuchsia.Lock Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ, alpha.security.cert.pos.34c Π΄Π»Ρ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ putenv, webkit.NoUncountedMemberChecker ΠΈ webkit.RefCntblBaseVirtualDtor Π΄Π»Ρ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ Π½Π΅ΡΡΡΡΠ½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ, alpha.cplusplus.SmartPtr Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ Π½ΡΠ»Π΅Π²ΠΎΠ³ΠΎ ΡΠΌΠ½ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ.
- Π linter clang-tidy
Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΠΎΡΡΠΈΡ Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ. - Π ΠΊΠ΅ΡΠΈΡΡΡΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ clangd (Clang Server) ΠΏΠΎΠ²ΡΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅
- Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠ±ΠΎΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π° Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Python 3. ΠΡΠ»ΠΈ Python 3 Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Python 2.
- ΠΠ· Π²ΡΠΏΡΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΡΠ½ ΡΡΠΎΠ½ΡΡΠ½Π΄ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ Π΄Π»Ρ ΡΠ·ΡΠΊΠ° Go (llgo), ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ΅ΡΡΡΡΠΊΡΠΈΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ.
- Π ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ (IR) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π°ΡΡΠΈΠ±ΡΡ vector-function-abi-variant Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³Π° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΊΠ°Π»ΡΡΠ½ΡΠΌΠΈ ΠΈ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Π΄Π»Ρ Π²Π΅ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ². ΠΠ· llvm::VectorType Π²ΡΠ΄Π΅Π»Π΅Π½ΠΎ Π΄Π²Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π²Π΅ΠΊΡΠΎΡΠ½ΡΡ ΡΠΈΠΏΠ° llvm::FixedVectorType ΠΈ llvm::ScalableVectorType.
- ΠΡΠΈΠ·Π½Π°Π½ΠΎ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ udef-Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° undef-Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. Π
memset/memcpy/memmove ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° undef-ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, Π½ΠΎ Π΅ΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΡΠ°Π²Π΅Π½ Π½ΡΠ»Ρ. - Π LLJIT Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΉ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅ΡΠΎΠ΄Ρ LLJIT::initialize ΠΈ LLJIT::deinitialize. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΊ JITDylib ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠ»Π°ΡΡΠ° StaticLibraryDefinitionGenerator. ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π‘ΠΈ API Π΄Π»Ρ
ORCv2 (API Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ²). - Π Π±ΡΠΊΠ΅Π½Π΄ Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ AArch64 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Cortex-A34, Cortex-A77, Cortex-A78 ΠΈ Cortex-X1. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ARMv8.2-BF16 (BFloat16) ΠΈ ARMv8.6-A, Π²ΠΊΠ»ΡΡΠ°Ρ RMv8.6-ECV (Enhanced Counter Virtualization), ARMv8.6-FGT (Fine Grained Traps), ARMv8.6-AMU ( Activity Monitors virtualization) ΠΈ ARMv8.0-DGH (Data gathering hint). ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ-ΠΎΠ±Π²ΡΠ·ΠΎΠΊ ΠΊ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ SVE.
- Π Π±ΡΠΊΠ΅Π½Π΄ Π΄Π»Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ ARM Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Cortex-M55, Cortex-A77, Cortex-A78 ΠΈ Cortex-X1. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ
Armv8.6-A Matrix Multiply ΠΈ RMv8.2-AA32BF16 BFloat16. - Π Π±ΡΠΊΠ΅Π½Π΄ Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ PowerPC Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² POWER10. Π Π°ΡΡΠΈΡΠ΅Π½Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΠΊΠ»ΠΎΠ² ΠΈ ΡΠ»ΡΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ.
- Π Π±ΡΠΊΠ΅Π½Π΄Π΅ Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ RISC-V ΡΠ°Π·ΡΠ΅ΡΡΠ½ ΠΏΡΠΈΡΠΌ ΠΏΠ°ΡΡΠ΅ΠΉ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΡ Π½Π°Π±ΠΎΡΠΎΠ² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, Π΅ΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎ Π½Π΅ ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π½ΡΡ .
- ΠΡΠΊΠ΅Π½Π΄ Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ AVR ΠΏΠ΅ΡΠ΅Π²Π΅Π΄ΡΠ½ ΠΈΠ· ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ Π² ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠ΅, Π²ΠΊΠ»ΡΡΡΠ½Π½ΡΠ΅ Π² Π±Π°Π·ΠΎΠ²ΡΡ ΠΏΠΎΡΡΠ°Π²ΠΊΡ.
- Π Π±ΡΠΊΠ΅Π½Π΄Π΅ Π΄Π»Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ x86 ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Intel AMX ΠΈ TSXLDTRK. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π·Π°ΡΠΈΡΠ° ΠΎΡ Π°ΡΠ°ΠΊ
LVI (Load Value Injection), Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΎΠ±ΡΠΈΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Speculative Execution Side Effect Suppression Π΄Π»Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π°ΡΠ°ΠΊ, Π²ΡΠ·Π²Π°Π½Π½ΡΡ ΡΠΏΠ΅ΠΊΡΠ»ΡΡΠΈΠ²Π½ΡΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² CPU. - Π Π±ΡΠΊΠ΅Π½Π΄Π΅ Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ SystemZ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° MemorySanitizer ΠΈ LeakSanitizer.
- Π Libc++ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°ΠΌΠΈ
<numbers> . -
Π Π°ΡΡΠΈΡΠ΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊΠ° LLD. Π£Π»ΡΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΎΡΠΌΠ°ΡΠ° ELF, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΎΠΏΡΠΈΠΈ «—lto-emit-asm», «—lto-whole-program-visibility», «—print-archive-stats», «—shuffle-sections», «—thinlto-single-module», «—unique», «—rosegment», «—threads=N». ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ «—time-trace» Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π² ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ chrome://tracing Π² Chrome.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru