Π Π΅Π»ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° компиляторов GCC 15

ПослС Π³ΠΎΠ΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Ρ€Π΅Π»ΠΈΠ· свободного Π½Π°Π±ΠΎΡ€Π° компиляторов GCC 15.1, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ выпуск Π² Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ GCC 15.x. Π’ соотвСтствии со схСмой Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ выпусков, вСрсия 15.0 использовалась Π² процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π° Π½Π΅Π·Π°Π΄ΠΎΠ»Π³ΠΎ Π΄ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π° GCC 15.1 ΡƒΠΆΠ΅ ΠΎΡ‚Π²Π΅Ρ‚Π²ΠΈΠ»Π°ΡΡŒ Π²Π΅Ρ‚ΠΊΠ° GCC 16.0, Π½Π° Π±Π°Π·Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ сформирован ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ· GCC 16.1.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ измСнСния:

  • ΠŸΡ€ΠΈ компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° языкС C ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ задСйствован стандарт Π‘23 (ΠΎΠ±Π·ΠΎΡ€ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ) с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ GNU (Β«-std=gnu23Β»). Π Π°Π½Π΅Π΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ использовался стандарт C17 β€” Β«-std=gnu17Β»). ИзмСнСниС ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ ΠΏΡ€ΠΈ сборкС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ·-Π·Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ константы nullptr, Ρ‚ΠΈΠΏΠ° _BitInt(n) ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов bool, true ΠΈ false, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² прилоТСниях ΠΎΠ΄Π½ΠΎΠΈΠΌΡ‘Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ.
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ возмоТности стандарта C23:
    • Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° Β«#embedΒ», прСдназначСнная для встраивания Π² ΠΊΠΎΠ΄ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… рСсурсов.
    • Атрибут Β«unsequencedΒ», ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π΅ зависит ΠΎΡ‚ порядка выполнСния.
    • Атрибут Β«reproducibleΒ», ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ, Ρ‡Ρ‚ΠΎ функция всСгда Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΡ€ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚.Π΅. Π½Π΅ зависит ΠΎΡ‚ ΠΈΠ½Ρ‹Ρ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ².
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ элСмСнты Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ стандарта C2Y (-std=c2y ΠΈ -std=gnu2y):
    • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ Β«ifΒ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«if (int x = get ()) {…}Β».
    • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° присвоСния ΠΈΠΌΡ‘Π½ Ρ†ΠΈΠΊΠ»Π°ΠΌ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Π½ΠΈΡ… Π² ΠΊΠΎΠ΄Π΅. outer: for (int i = 0; i < IK; ++ i) { switch (i) { case 1: break; // jumps to CONT1 case 2: break outer; // jumps to CONT2 } // CONT1 } // CONT2
    • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° указания Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² Ρ†Π΅Π»Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² выраТСниях Β«caseΒ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«case 1 … 10:Β».
    • Буффиксы Β«iΒ» ΠΈ Β«jΒ» для обозначСния ΠΌΠ½ΠΈΠΌΠΎΠΉ части Π² комплСксных числах.
    • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Β«++Β» ΠΈ Β«β€”Β» с комплСксными числами.
    • ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ Β«_Generic(type, expr1, expr2, …)Β» для Π²Ρ‹Π±ΠΎΡ€Π° выраТСния Π½Π° основС Ρ‚ΠΈΠΏΠ° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°.
    • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° обращСния ΠΊ Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΌ массивам ΠΊΠ°ΠΊ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ структуры ΠΈ объСдинСния.
    • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° примСнСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Β«alignofΒ» ΠΊ Π½Π΅ΠΏΠΎΠ»Π½Ρ‹ΠΌ массивам (ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹ΠΌ Π±Π΅Π· указания Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«int a[]Β»).
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ синтаксис для Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹Ρ…, ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Ρ… ΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ символов. ВмСсто Β«\uΒ», Β«\xΒ» ΠΈ Β«\nnnΒ» β€” ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Β«\u{}Β», Β«\o{}Β» ΠΈ Β«\x{}Β», Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ число Ρ†ΠΈΡ„Ρ€.
    • ВстроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Β«__builtin_stdc_rotate_leftΒ» ΠΈ Β«__builtin_stdc_rotate_rightΒ».
    • Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π΄Π»ΠΈΠ½ΠΎΠΉ Π½Π° указатСлях NULL (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«sizeof(*p)Β»).
  • Π’ фронтэндС для языка C++ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ возмоТности, Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ для Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ стандарта C++26:
    • Π’Π°Ρ€ΠΈΠ°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Β«friendΒ» (Β«friend Ts…»).
    • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова Β«constexprΒ» с Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Β«newΒ» (placement new) для размСщСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Π·Π°Ρ€Π°Π½Π΅Π΅ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ памяти Π²ΠΎ врСмя компиляции.
    • Π’Ρ‹Π²ΠΎΠ΄ ошибки ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ указатСля Π½Π° Π½Π΅ΠΏΠΎΠ»Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ.
    • ОбъявлСн ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ синтаксис опрСдСлСния Π²Π°Ρ€ΠΈΠ°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² с ΠΌΠ½ΠΎΠ³ΠΎΡ‚ΠΎΡ‡ΠΈΠ΅ΠΌ Π±Π΅Π· ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ запятой (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° указываСтся Β«void e(int…)Β» вмСсто Β«void e(int, …)Β»).
    • Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ….
    • Атрибуты для структурированных привязок;
    • Бинтаксис β€˜= delete(Β«ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Β»)’;
    • Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Β«@Β», Β«$Β» ΠΈ Β«`Β» Π² Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ символов.
    • Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ использованиС макросов для объявлСния ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.
    • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ примСнСния структурированного связывания (structured binding) Π² качСствС условия Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… if ΠΈ switch.
    • ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° прямого сравнСния массивов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«int arr1[5]; int arr2[5]; bool same = arr1 == arr2Β»).
    • ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Β«#embedΒ» для встраивания Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… рСсурсов.
    • ОбъявлСн ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹ΠΉ класс is_trivial.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ возмоТности C++23:
    • Π—Π°ΠΏΡ€Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ Β«exportΒ» ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ использования Β«export {}Β».
    • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° продлСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Ρ†ΠΈΠΊΠ»Π°Ρ… Β«forΒ», ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°ΡŽΡ‰ΠΈΡ… Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹.
  • Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ libstdc++ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ std ΠΈ std.compat.
  • ИспользованиС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° Β«{0}Β» для объСдинСний Π² ΠΊΠΎΠ΄Π΅ Π½Π° C ΠΈ C++ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ очистку всСго содСрТимого, Π° ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΎΠ±Π½ΡƒΠ»Π΅Π½ΠΈΡŽ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта объСдинСния. Для очистки всСго объСдинСния слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Β«{}Β», ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ Π² спСцификации C23, ΠΈΠ»ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ Β«-fzero-init-padding-bits=unionsΒ» для восстановлСния старого повСдСния.
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Β«musttailΒ» ([[gnu::musttail]] ΠΈ [[clang::musttail]]) для Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… хвостовых Π²Ρ‹Π·ΠΎΠ²ΠΎΠ². Атрибут примСняСтся ΠΊ выраТСниям return, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… осущСствляСтся рСкурсивный Π²Ρ‹Π·ΠΎΠ² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Π²Ρ‹Π·ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ…Π²ΠΎΡΡ‚ΠΎΠ²ΡƒΡŽ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ выдСляСтся Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π² стСкС (ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ риск исчСрпания памяти ΠΏΡ€ΠΈ ΠΎΡ‡Π΅Π½ΡŒ большом числС Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²).
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° flag_enum ([[gnu::flag_enum]] ΠΈ [[clang::flag_enum]]), примСняСмого ΠΊ пСрСчислСниям для ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ содСрТимоС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… опСрациях (ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ прСдупрСТдСния Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Β«-WswitchΒ»).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Β«counted_byΒ», Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅ Π² структурС с Π³ΠΈΠ±ΠΊΠΈΠΌ массивом, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΌ число элСмСнтов. Атрибут ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Π° Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρƒ Π±ΡƒΡ„Π΅Ρ€Π°.
  • Для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Β«nonnull_if_nonzeroΒ», ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с указатСлями ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ NULL, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡŽ.
  • Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ ассСмблСрныС вставки Β«asm (….)Β» Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’ ассСмблСрных вставках Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π² красной Π·ΠΎΠ½Π΅ стСка (ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Π΅ стСка).
  • ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΠΊΠΎΠ΄Π° Π½Π° C++ ускорСна благодаря ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠΌΡƒ Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ шаблонов.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… имССтся ΠΊΠΎΠ΄ для ΠΏΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Π·ΠΎΠ² break ΠΈΠ»ΠΈ return), Π΄Π°ΠΆΠ΅ Ссли ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‚ динамичСски выдСляСмыми массивами ΠΈΠ»ΠΈ Π±ΡƒΡ„Π΅Ρ€Π°ΠΌΠΈ, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… нСизвСстСн Π½Π° этапС компиляции. ΠŸΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΎΠΏΡ†ΠΈΠΈ Β«-O2Β» Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° вСкторизация Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π»Π΅Π³ΠΊΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ², для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ свСдСния ΠΎ количСствС ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ (tripcount).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° этапС связывания (LTO, Link-Time Optimization), сущСствСнно ΡΠΎΠΊΡ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ врСмя пСрСкомпиляции ΠΏΡ€ΠΈ использовании LTO Π² ситуациях, ΠΊΠΎΠ³Π΄Π° внСсСны Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ измСнСния Π² ΠΊΠΎΠ΄ (ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΎΠ΄Π½Π° функция). Для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° опция Β«-flto-incrementalΒ».
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° компиляция ΠΎΡ‡Π΅Π½ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ отслСТиваниС Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² столбцов, ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰ΠΈΡ… 4096. ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ указания мСстополоТСния ошибок ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ Π² ΠΎΡ‡Π΅Π½ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ….
  • ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Ρ‡Ρ‘Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ диагностикС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. НапримСр, обСспСчСно Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ мСста возникновСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ символом «⚠️», ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ° Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΡ€ΠΈ ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π² ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… C++, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ подсказки для упрощСния ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° стандарт C23, ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° цвСтовая схСма. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄Π° диагностики Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Sarif (-fdiagnostics-format=sarif-file).
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° libgdiagnostics, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² свои ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ возмоТности GCC, связанныС с ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ диагностичСских сообщСний (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ срСдства цитирования, подсвСтки ΠΈ подсказок ΠΏΠΎ ΠΈΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ прСдупрСТдСния Β«-Wtrailing-whitespaceΒ» ΠΈ Β«-Wleading-whitespaceΒ» для выявлСния остаточных ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π² ΠΊΠΎΠ½Ρ†Π΅ строк ΠΈ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π½Π°Ρ‡Π°Π»Π΅ строк.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Β«-Wheader-guardΒ» для информирования ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ… Π² макросах Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.
  • Ѐронтэнд для языка D ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½ Π΄ΠΎ вСрсии 2.111.0.
  • Π’ΠΎ фронтэнд для языка Fortran Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹Ρ… Ρ†Π΅Π»Ρ‹Ρ… чисСл.
  • Π’ состав Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ компилятор для языка COBOL β€” gcobol, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ x86-64 ΠΈ AArch64, ΠΈ Π½Π΅ рассчитанный Π½Π° использованиС Π½Π° 32-разрядных систСмах. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ISO/IEC 1989:2023 ΠΈ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ тСстов NIST CCVS/85.
  • ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° рСализация стандартов OpenMP 5.0, 5.1, 5.2 ΠΈ 6.0 (Open Multi-Processing), ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… API ΠΈ способы примСнСния ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования Π½Π° многоядСрных ΠΈ Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹Ρ… (CPU+GPU/DSP) систСмах с ΠΎΠ±Ρ‰Π΅ΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ (SIMD). Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅Ρ‚Π°Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² ΠΈ конструкций tile, unroll, interop ΠΈ dispatch. Для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… GPU AMD ΠΈ NVIDIA Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ раздСляСмой памяти (Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ unified_shared_memory Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ Β«requiresΒ»). Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° выраТСния Β«self_mapsΒ».
  • Π’ бэкСнд для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ AArch64 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ MinGW (aarch64-w64-mingw32). Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ 20 Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ ARM8 ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ACLE (Arm C Language Extensions). ВнСсСны многочислСнныС ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠ΄Π°. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° CPU:
    • Apple A12 (apple-a12)
    • Apple M1 (apple-m1)
    • Apple M2 (apple-m2)
    • Apple M3 (apple-m3)
    • Arm Cortex-A520AE (cortex-a520ae)
    • Arm Cortex-A720AE (cortex-a720ae)
    • Arm Cortex-A725 (cortex-a725)
    • Arm Cortex-R82AE (cortex-r82ae)
    • Arm Cortex-X925 (cortex-x925)
    • Arm Neoverse N3 (neoverse-n3)
    • Arm Neoverse V3 (neoverse-v3)
    • Arm Neoverse V3AE (neoverse-v3ae)
    • FUJITSU-MONAKA (fujitsu-monaka)
    • NVIDIA Grace (grace)
    • NVIDIA Olympus (olympus)
    • Qualcomm Oryon-1 (oryon-1)
  • Π’ бэкСндС Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° для GPU AMD Radeon (GCN) Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ libstdc++ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° для сСрий устройств gfx9-generic, gfx10-3-generic ΠΈ gfx11-generic.
  • Π’ бэкСнд для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ x86 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄ Intel AVX10.2, AMX-AVX512, AMX-FP8, AMX-MOVRS, AMX-TF32, AMX-TRANSPOSE, MOVRS. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° CPU Intel Diamond Rapids ΠΈ Xeon Phi.
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ возмоТности бэкСндов для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ LoongArch ΠΈ AVR.
  • Π£Π΄Π°Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ nios2, примСняСмой Π² процСссорах Nios II. ОбъявлСна ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½Π° Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ выпускС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ABI ILP32 (-mabi=ilp32) Π² ΠΏΠΎΡ€Ρ‚Π΅ для AArch64.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ