ИзданиС Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ GCC 15

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½ Π² ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π³ΠΎΠ΄ΠΈΠ½Π°, Π±Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° свободния ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΠΈ GCC 15.1, ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΠΌΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π² Π½ΠΎΠ²Π°Ρ‚Π° ΠΊΠ»ΠΎΠ½ΠΎΠ²Π° вСрсия GCC 15.x. Π’ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ с схСмата Π·Π° Π½ΠΎΠΌΠ΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° вСрсиитС, вСрсия 15.0 сС Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π»Π° ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π°, Π° ΠΌΠ°Π»ΠΊΠΎ ΠΏΡ€Π΅Π΄ΠΈ пусканСто Π½Π° GCC 15.1 Π²Π΅Ρ‡Π΅ сС Π΅ ΠΎΡ‚Π΄Π΅Π»ΠΈΠ»Π° ΠΊΠ»ΠΎΠ½ΡŠΡ‚ GCC 16.0, Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ бъдС Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½ΠΎ слСдващото Π·Π½Π°Ρ‡ΠΈΠΌΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ GCC 16.1.

Основни ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ:

  • ΠŸΡ€ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° C ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° стандарт C23 (ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅) с Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ Π½Π° 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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster