ΠžΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ LLVM 13.0

По ΡˆΠ΅ΡΡ‚ мСсСци Ρ€Π°Π·Π²ΠΎΡ˜, бСшС прСтставСно ΠΈΠ·Π΄Π°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ LLVM 13.0 - ΠΊΠΎΠΌΠΏΠ»Π΅Ρ‚ Π°Π»Π°Ρ‚ΠΊΠΈ ΠΊΠΎΠΌΠΏΠ°Ρ‚ΠΈΠ±ΠΈΠ»Π΅Π½ со GCC (ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΈ, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈ ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ Π½Π° ΠΊΠΎΠ΄) кој Π³ΠΈ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅ Π²ΠΎ срСдСн Π±ΠΈΡ‚ΠΊΠΎΠ΄ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½ΠΈ инструкции слични Π½Π° RISC (Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π° машина Π½Π° ниско Π½ΠΈΠ²ΠΎ со систСм Π·Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π° повСќС Π½ΠΈΠ²ΠΎΠ°). Π“Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈΠΎΡ‚ псСвдокод ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π° со помош Π½Π° JIT ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ Π²ΠΎ машински инструкции Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π²ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΡ‚ Π½Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°.

ΠŸΠΎΠ΄ΠΎΠ±Ρ€ΡƒΠ²Π°ΡšΠ° Π²ΠΎ Clang 13.0:

  • Π‘ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°Π½ΠΈ ΠΏΠΎΠ²ΠΈΡ†ΠΈ Π½Π° ΠΎΠΏΠ°ΡˆΠΊΠ°Ρ‚Π° (ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π°ΡšΠ΅ ΠΏΠΎΡ‚ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π½Π° самиот ΠΊΡ€Π°Ρ˜ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π°, Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°ΡšΠ΅ Π½Π° Ρ€Π΅ΠΊΡƒΡ€Π·ΠΈΡ˜Π° Π½Π° ΠΎΠΏΠ°ΡˆΠΊΠ°Ρ‚Π° Π°ΠΊΠΎ ΠΏΠΎΡ‚ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° сС ΠΏΠΎΠ²ΠΈΠΊΠ° самата). ΠŸΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ°Ρ‚Π° Π·Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ ΠΏΠΎΠ²ΠΈΡ†ΠΈ Π½Π° ΠΎΠΏΠ°ΡˆΠΊΠ°Ρ‚Π° Π΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄Π΅Π½Π° со Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΡ‚ β€ž[[clang::musttail]]β€œ Π²ΠΎ C++ ΠΈ β€ž__attribute__((musttail))β€œ Π²ΠΎ C, ΡˆΡ‚ΠΎ сС користи Π²ΠΎ ΠΈΠ·Ρ˜Π°Π²Π°Ρ‚Π° β€žΠ²Ρ€Π°ΡœΠ°ΡšΠ΅β€œ. Π€ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Ρ‚Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ со Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠ΄ΠΎΡ‚ Π²ΠΎ Ρ€Π°ΠΌΠ½Π° ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡ˜Π° Π·Π° Π΄Π° Π·Π°ΡˆΡ‚Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠΎΡ‚Ρ€ΠΎΡˆΡƒΠ²Π°Ρ‡ΠΊΠ° Π½Π° стСк.
  • β€žΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅β€œ Π½Π° Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈ ΠΈ СкстСнзии Π½Π° ΠΊΠ»Π°Π½Π³ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π°Π°Ρ‚ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ Π²ΠΎ стилот Π½Π° C++11 ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΡ‚ β€ž[[]].
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ΠΎ Π΅ Π·Π½Π°ΠΌΠ΅Π½Ρ†Π΅Ρ‚ΠΎ β€ž-Wreserved-identifierβ€œ Π·Π° ΠΏΡ€ΠΈΠΊΠ°ΠΆΡƒΠ²Π°ΡšΠ΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ ΠΊΠΎΠ³Π° ќС Π½Π°Π²Π΅Π΄Π΅Ρ‚Π΅ Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€Π°Π½ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ Π²ΠΎ корисничкиот ΠΊΠΎΠ΄.
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ΠΈ сС ΠΎΠ·Π½Π°ΠΊΠΈΡ‚Π΅ β€ž-Wunused-but-set-parameterβ€œ ΠΈ β€ž-Wunused-but-set-variableβ€œ Π·Π° ΠΏΡ€ΠΈΠΊΠ°ΠΆΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π΄ΠΎΠΊΠΎΠ»ΠΊΡƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π΅ поставСна, Π½ΠΎ Π½Π΅ сС користи.
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ΠΎ Π΅ Π·Π½Π°ΠΌΠ΅Π½Ρ†Π΅ β€ž-Wnull-pointer-subtractionβ€œ Π·Π° Π΄Π° сС ΠΈΠ·Π΄Π°Π΄Π΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π΄ΠΎΠΊΠΎΠ»ΠΊΡƒ ΠΊΠΎΠ΄ΠΎΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΎΠ²Π΅Π΄Π΅ Π½Π΅Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΎ ΠΎΠ΄Π½Π΅ΡΡƒΠ²Π°ΡšΠ΅ ΠΏΠΎΡ€Π°Π΄ΠΈ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°Ρ‚Π° Π½Π° Π½ΡƒΠ»Π° ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π°Ρ‡ Π²ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π·Π° одзСмањС.
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ΠΎ Π΅ Π·Π½Π°ΠΌΠ΅Π½Ρ†Π΅Ρ‚ΠΎ β€ž-fstack-usageβ€œ Π·Π° Π΄Π° сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° Π·Π° сСкоја Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° со ΠΊΠΎΠ΄ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° β€ž.suβ€œ која содрТи ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°Ρ‚Π° Π½Π° Ρ€Π°ΠΌΠΊΠΈ Π½Π° ΠΌΠ°Π³Π°Ρ†ΠΈΠ½ΠΎΡ‚ Π·Π° сСкоја Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π° Π²ΠΎ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ΡˆΡ‚ΠΎ сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΡƒΠ²Π°.
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ Π΅ Π½ΠΎΠ² Ρ‚ΠΈΠΏ Π½Π° ΠΈΠ·Π»Π΅Π· Π²ΠΎ статичкиот Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ - β€žsarif-htmlβ€œ, ΡˆΡ‚ΠΎ Π΄ΠΎΠ²Π΅Π΄ΡƒΠ²Π° Π΄ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°ΡšΠ΅ ΠΈΠ·Π²Π΅ΡˆΡ‚Π°ΠΈ истоврСмСно Π²ΠΎ HTML ΠΈ Sarif Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ. Π”ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ Π½ΠΎΠ²Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° allocClassWithName. ΠŸΡ€ΠΈ ΠΎΠ΄Ρ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΎΠΏΡ†ΠΈΡ˜Π°Ρ‚Π° β€ž-analyzer-display-progressβ€œ, сС ΠΏΡ€ΠΈΠΊΠ°ΠΆΡƒΠ²Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° сСкоја Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°. ΠŸΠ°ΠΌΠ΅Ρ‚Π½ΠΈΠΎΡ‚ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ Π½Π° ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π°Ρ‡ΠΈ (alpha.cplusplus.SmartPtr) Π΅ рСчиси ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½.
  • ΠŸΡ€ΠΎΡˆΠΈΡ€Π΅Π½ΠΈ сС моТноститС ΠΏΠΎΠ²Ρ€Π·Π°Π½ΠΈ со ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ°Ρ‚Π° Π·Π° OpenCL. Π”ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° Π½ΠΎΠ²ΠΈ СкстСнзии cl_khr_integer_dot_product, cl_khr_extended_bit_ops, __cl_clang_bitfields ΠΈ __cl_clang_non_portable_kernel_param_types. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° OpenCL 3.0. Π—Π° C, ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° OpenCL 1.2 сС користи стандардно, освСн Π°ΠΊΠΎ Π½Π΅ Π΅ Сксплицитно ΠΈΠ·Π±Ρ€Π°Π½Π° Π΄Ρ€ΡƒΠ³Π° Π²Π΅Ρ€Π·ΠΈΡ˜Π°. Π—Π° C++, Π΄ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ со наставка β€ž.clcppβ€œ.
  • Π˜ΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΈΡ‚Π΅ Π·Π° Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π° Π½Π° јамка (β€ž#pragma omp unrolβ€œ ΠΈ β€ž#pragma omp tileβ€œ) Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ Π²ΠΎ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° OpenMP 5.1.
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ΠΈ ΠΎΠΏΡ†ΠΈΠΈ Π²ΠΎ Π°Π»Π°Ρ‚ΠΊΠ°Ρ‚Π° Π·Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ clang: SpacesInLineCommentPrefix Π·Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° ΠΏΡ€Π°Π·Π½ΠΈ мСста ΠΏΡ€Π΅Π΄ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅, IndentAccessModifiers, LambdaBodyIndentation ΠΈ PPIndentWidth Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° Π½Π° ΠΏΠΎΡ€Π°ΠΌΠ½ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° записитС, Π»Π°ΠΌΠ±Π΄Π° ΠΈΠ·Ρ€Π°Π·ΠΈΡ‚Π΅ ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΈΡ‚Π΅ Π½Π° прСдпроцСсорот. ΠŸΡ€ΠΎΡˆΠΈΡ€Π΅Π½ΠΈ сС моТноститС Π·Π° ΠΏΠΎΠ΄Ρ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π½Π°Π±Ρ€ΠΎΡ˜ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ со Π·Π°Π³Π»Π°Π²ΠΈΠ΅ (SortIncludes). Π”ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ JSON.
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ΠΈ сС Π³ΠΎΠ»Π΅ΠΌ Π΄Π΅Π» ΠΎΠ΄ Π½ΠΎΠ²ΠΈ Ρ‡Π΅ΠΊΠΎΠ²ΠΈ Π½Π° Π»Π΅Ρ‚Π°Π»ΠΎΡ‚ΠΎ ΡˆΡ‚ΠΎ Π΅ ΡƒΡ€Π΅Π΄Π½ΠΎ.

ΠšΠ»ΡƒΡ‡Π½ΠΈ ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈ Π²ΠΎ LLVM 13.0:

  • Π”ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΎΠΏΡ†ΠΈΡ˜Π°Ρ‚Π° β€ž-ehcontguardβ€œ Π·Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡ˜Π°Ρ‚Π° CET (Windows Control-flow Enforcement Technology) Π·Π° Π·Π°ΡˆΡ‚ΠΈΡ‚Π° ΠΎΠ΄ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°Ρ‚ΠΈΡ€Π°ΡšΠ° ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ΠΈ со помош Π½Π° Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°ΡšΠ΅ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΎ ΠΊΠΎΠ½ Π²Ρ€Π°ΡœΠ°ΡšΠ΅ (ROP) Π²ΠΎ Ρ„Π°Π·Π°Ρ‚Π° Π½Π° ΡΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со исклучоци.
  • ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ Π·Π° Π΄Π΅Π±Π°Π³ΠΈΠ½Ρ„ΠΎ-тСст Π΅ ΠΏΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½ Π²ΠΎ тСстови ΠΌΠ΅Ρ“Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ ΠΈ Π΅ Π΄ΠΈΠ·Π°Ρ˜Π½ΠΈΡ€Π°Π½ Π΄Π° тСстира ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ ΠΎΠ΄ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°Ρ˜ΡœΠΈ сС Π½Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° Π΄Π΅Π±Π°Π³ΠΈΡ€Π°ΡšΠ΅.
  • БистСмот Π·Π° ΡΠΊΠ»ΠΎΠΏΡƒΠ²Π°ΡšΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° ΠΈΠ·Π³Ρ€Π°Π΄Π±Π° Π½Π° Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ дистрибуции, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΅Π΄Π½Π° со ΠΊΠΎΠΌΡƒΠ½Π°Π»Π½ΠΈ услуги, Π° Π΄Ρ€ΡƒΠ³Π°Ρ‚Π° со Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈ.
  • Π’ΠΎ Π·Π°Π΄Π½ΠΈΠ½Π°Ρ‚Π° Π·Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° AArch64, ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ°Ρ‚Π° Π·Π° СкстСнзии Armv9-A RME (Π Π΅Π°Π»ΠΌ ΠΌΠ΅Π½Π°ΡŸΠΌΠ΅Π½Ρ‚ Π΅ΠΊΡΡ‚Π΅Π½Π·ΠΈΡ˜Π°) ΠΈ SME (ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° со скалабилност) Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π° Π²ΠΎ асСмблСрот.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ°Ρ‚Π° Π·Π° ISA V68/HVX Π΅ Π΄ΠΎΠ΄Π°Π΄Π΅Π½Π° Π²ΠΎ Π·Π°Π΄Π½ΠΈΠΎΡ‚ Π΄Π΅Π» Π·Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° ШСстоаголна.
  • Π—Π°Π΄Π½ΠΈΠ½Π°Ρ‚Π° x86 ΠΈΠΌΠ° ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° AMD Zen 3 процСсоритС.
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° GFX1013 RDNA2 APU Π½Π° Π·Π°Π΄Π½ΠΈΠΎΡ‚ Π΄Π΅Π» Π½Π° AMDGPU.
  • Libc++ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΡƒΠ²Π° Π΄Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° Π½ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° стандардитС C++20 ΠΈ C++2b, Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°Ρ˜ΡœΠΈ Π³ΠΎ ΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅Ρ‚ΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° β€žΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΠΈβ€œ. Π”ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° std::Π΄Π°Ρ‚ΠΎΡ‚Π΅Ρ‡Π½ΠΈΠΎΡ‚ систСм Π·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Windows Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° MinGW. Π”Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ Π·Π° Π·Π°Π³Π»Π°Π²ΠΈΠ΅ , ΠΈ сС ΠΎΠ΄Π΄Π΅Π»Π΅Π½ΠΈ. Π”ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ ΠΎΠΏΡ†ΠΈΡ˜Π° Π·Π° Π³Ρ€Π°Π΄Π΅ΡšΠ΅ LIBCXX_ENABLE_INCOMPLETE_FEATURES Π·Π° ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π°ΡšΠ΅ Π½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ со заглавија со нСцСлосно ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π° функционалност.
  • ΠŸΡ€ΠΎΡˆΠΈΡ€Π΅Π½ΠΈ сС моТноститС Π½Π° ΠΏΠΎΠ²Ρ€Π·ΡƒΠ²Π°Ρ‡ΠΎΡ‚ LLD, Π²ΠΎ кој Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ°Ρ‚Π° Π·Π° Big-endian Aarch64 процСсоритС, Π° Π·Π°Π΄Π½ΠΈΠ½Π°Ρ‚Π° Mach-O Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅Π½Π° Π΄ΠΎ ΡΠΎΡΡ‚ΠΎΡ˜Π±Π° која ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° ΠΏΠΎΠ²Ρ€Π·ΡƒΠ²Π°ΡšΠ΅ Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ. Π’ΠΊΠ»ΡƒΡ‡Π΅Π½ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΡƒΠ²Π°ΡšΠ° ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ Π·Π° ΠΏΠΎΠ²Ρ€Π·ΡƒΠ²Π°ΡšΠ΅ Π½Π° Glibc ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ LLD.
  • УслуТната Π°Π»Π°Ρ‚ΠΊΠ° llvm-mca (Machine Code Analyzer) Π΄ΠΎΠ΄Π°Π΄Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° процСсори ΠΊΠΎΠΈ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°Π°Ρ‚ инструкции ΠΏΠΎ Ρ€Π΅Π΄ (ΠΏΠΎ рСдослСд супСрскаларСн гасовод), ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ Π΅ ARM Cortex-A55.
  • Π”Π΅Π±Π°Π³Π΅Ρ€ΠΎΡ‚ LLDB Π·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° AArch64 ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° цСлосна ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° Pointer Authentication, MTE (MemTag, Memory Tagging Extension) ΠΈ SVE рСгистри. Π”ΠΎΠ΄Π°Π΄Π΅Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΊΠΎΠΈ Π²ΠΈ Π΄ΠΎΠ·Π²ΠΎΠ»ΡƒΠ²Π°Π°Ρ‚ Π΄Π° Π³ΠΈ Π²Ρ€Π·ΡƒΠ²Π°Ρ‚Π΅ ΠΎΠ·Π½Π°ΠΊΠΈΡ‚Π΅ Π·Π° сСкоја ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ˜Π° Π·Π° Π΄ΠΎΠ΄Π΅Π»ΡƒΠ²Π°ΡšΠ΅ ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π° ΠΈ Π΄Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π°Ρ‡ΠΎΡ‚ ΠΏΡ€ΠΈ пристап Π΄ΠΎ ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π°, која ΠΌΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π΅ ΠΏΠΎΠ²Ρ€Π·Π°Π½Π° со ΠΏΡ€Π°Π²ΠΈΠ»Π½Π°Ρ‚Π° ΠΎΠ·Π½Π°ΠΊΠ°.
  • Π”Π΅Π±Π°Π³Π΅Ρ€ΠΎΡ‚ LLDB ΠΈ ΠΏΡ€Π΅Π΄Π½ΠΈΠΎΡ‚ Π΄Π΅Π» Π·Π° Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ Fortran - Flang сС Π΄ΠΎΠ΄Π°Π΄Π΅Π½ΠΈ Π½Π° Π±ΠΈΠ½Π°Ρ€Π½ΠΈΡ‚Π΅ склопови Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ ΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚.

Π˜Π·Π²ΠΎΡ€: opennet.ru

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€