ΠŸΡƒΡΠΊΠ°Π½Π΅ Π½Π° компилаторния ΠΏΠ°ΠΊΠ΅Ρ‚ GCC 13

Π‘Π»Π΅Π΄ Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° бСшС пусната вСрсията Π½Π° бСзплатния ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ GCC 13.1, ΠΏΡŠΡ€Π²Π°Ρ‚Π° Π·Π½Π°Ρ‡ΠΈΠΌΠ° вСрсия Π² новия ΠΊΠ»ΠΎΠ½ Π½Π° GCC 13.x. Бъгласно Π½ΠΎΠ²Π°Ρ‚Π° схСма Π·Π° Π½ΠΎΠΌΠ΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° вСрсиитС, вСрсия 13.0 бСшС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° ΠΈ ΠΌΠ°Π»ΠΊΠΎ ΠΏΡ€Π΅Π΄ΠΈ пусканСто Π½Π° GCC 13.1, ΠΊΠ»ΠΎΠ½ΡŠΡ‚ GCC 14.0 Π²Π΅Ρ‡Π΅ бСшС Ρ€Π°Π·Π΄Π²ΠΎΠ΅Π½, ΠΎΡ‚ ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ бъдС Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π° слСдващата Π·Π½Π°Ρ‡ΠΈΠΌΠ° вСрсия Π½Π° GCC 14.1.

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

  • GCC ΠΏΡ€ΠΈΠ΅ интСрфСйс Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Modula-2. Π’ΠΎΠΉ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΊΠΎΠ΄ Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅, ΠΊΠΎΠΉΡ‚ΠΎ отговаря Π½Π° Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ΠΈΡ‚Π΅ PIM2, PIM3 ΠΈ PIM4, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π½Π° приСтия ISO стандарт Π·Π° Ρ‚ΠΎΠ·ΠΈ Π΅Π·ΠΈΠΊ.
  • Π€Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ с внСдряванС Π½Π° Сзиковия ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ Rust, ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° gccrs (GCC Rust), Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ към Π΄ΡŠΡ€Π²ΠΎΡ‚ΠΎ Π½Π° изходния ΠΊΠΎΠ΄ Π½Π° GCC. Π’ тСкущия ΠΈΠ·Π³Π»Π΅Π΄ forntend Π΅ ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½ ΠΊΠ°Ρ‚ΠΎ СкспСримСнталСн ΠΈ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅. Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡŠΡ‚ Π΅ Π³ΠΎΡ‚ΠΎΠ² (ΠΎΡ‡Π°ΠΊΠ²Π° сС Π² слСдващото ΠΈΠ·Π΄Π°Π½ΠΈΠ΅), стандартният GCC инструмСнтариум ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° Rust ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ, Π±Π΅Π· Π΄Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° инсталиратС rustc ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π°, създадСн с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° LLVM.
  • Link-in-Step Optimization (LTO) добавя ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΡΡŠΡ€Π²ΡŠΡ€ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° (jobserver), ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° GNU make, Π·Π° Π΄Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎΡ‚ΠΎ изпълнСниС Π½Π° компилация Π² мноТСство нишки. Π’ GCC ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° LTO оптимизация Π² контСкста Π½Π° цялата ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° (WPA, Π°Π½Π°Π»ΠΈΠ· Π½Π° цялата ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°). НаимСнуванитС ΠΊΠ°Π½Π°Π»ΠΈ (--jobserver-style=fifo) сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π·Π° комуникация със ΡΡŠΡ€Π²ΡŠΡ€Π° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°.
  • Бтатичният Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ (-fanalyzer) ΠΏΡ€Π΅Π΄Π»Π°Π³Π° 20 Π½ΠΎΠ²ΠΈ диагностични ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ "-Wanalyzer-out-of-bounds", "-Wanalyzer-allocation-size", "-Wanalyzer-deref-before-check", "-Wanalyzer- infinite -рСкурсия" -Wanalyzer-jump-through-null", "-Wanalyzer-va-list-leak".
  • Π’ΡŠΠ²Π΅Π΄Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° диагностика във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ SARIF, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° JSON. Новият Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚ статичСн Π°Π½Π°Π»ΠΈΠ· (GCC -fanalyzer), ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° информация Π·Π° прСдупрСТдСния ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ. АктивиранСто сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° с опцията β€ž-fdiagnostics-format=sarif-stderr|sarif-file|json-stderr|json|json-fileβ€œ, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅ с β€žjsonβ€œ водят Π΄ΠΎ ΠΈΠ·Ρ…ΠΎΠ΄ Π² GCC-спСцифичСн Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° JSON Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ .
  • Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈ са някои Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ Π² стандарта C23 C, ΠΊΠ°Ρ‚ΠΎ константата nullptr Π·Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° Π½ΡƒΠ»Π΅Π²ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ улСснява ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΡΠΏΠΈΡΡŠΡ†ΠΈ с ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ² Π±Ρ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ (ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ), Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π°Π½Π΅ Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° enums, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° noreturn, позволяващ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° constexpr ΠΈ auto ΠΏΡ€ΠΈ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, typeof ΠΈ typeof_unqual, Π½ΠΎΠ²ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈ Π΄ΡƒΠΌΠΈ alignas, alignof, bool, false, static_assert, thread_local ΠΈ true, позволяващи ΠΏΡ€Π°Π·Π½ΠΈ скоби ΠΏΡ€ΠΈ инициализация.
  • Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈ са някои Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ Π² стандарта C++23, ΠΊΠ°Ρ‚ΠΎ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° поставянС Π½Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² края Π½Π° ΡΡŠΡΡ‚Π°Π²Π½ΠΈ ΠΈΠ·Ρ€Π°Π·ΠΈ, ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с Ρ‚ΠΈΠΏΠ° char8_t, Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°Ρ‚Π° Π·Π° прСпроцСсор #warning, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° ΠΎΡ‚ (\u{}, \o{} , \x{}) ΠΈ Π½Π°ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½ΠΈ ('\N{Π›ΠΠ’Π˜ΠΠ˜Π¦Π ГЛАВНА Π‘Π£ΠšΠ’Π A}') послСдоватСлности Π·Π° Π΅ΠΊΡ€Π°Π½ΠΈΡ€Π°Π½Π΅, статичСн ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€(), статичСн ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€[], ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π·Π° равСнство Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° ΠΈΠ·Ρ€Π°Π·ΠΈ, ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ някои ограничСния Π²ΡŠΡ€Ρ…Ρƒ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° constexpr, ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° UTF-8 Π² ΠΈΠ·Ρ…ΠΎΠ΄Π½ΠΈΡ‚Π΅ тСкстовС.
  • libstdc++ ΠΈΠΌΠ° ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° СкспСримСнтална ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° стандарти C++20 ΠΈ C++23, ΠΊΠ°Ρ‚ΠΎ добавянС Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π·Π°Π³Π»Π°Π²Π΅Π½ Ρ„Π°ΠΉΠ» ΠΈ std::format, Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° Π·Π°Π³Π»Π°Π²Π΅Π½ Ρ„Π°ΠΉΠ» , Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ с ΠΏΠ»Π°Π²Π°Ρ‰Π° запСтая, Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈ Π·Π°Π³Π»Π°Π²Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ И .
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са Π½ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ Π·Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π΅, Ρ‡Π΅ файловият дСскриптор сС ΠΏΡ€Π΅Π΄Π°Π²Π° Π² цСлочислСна ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°: "__attribute__((fd_arg(N)))", "__attribute__((fd_arg_read(N)))" ΠΈ "__attribute__((fd_arg_write(N) )) ". ΠŸΠΎΡΠΎΡ‡Π΅Π½ΠΈΡ‚Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π² статичСн Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ (-fanalyzer) Π·Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ дСскриптори.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½ΠΎΠ² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ "__attribute__((assume(EXPR)))", с ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π°, Ρ‡Π΅ ΠΈΠ·Ρ€Π°Π·ΡŠΡ‚ Π΅ Π²Π΅Ρ€Π΅Π½ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ‚ΠΎΠ·ΠΈ Ρ„Π°ΠΊΡ‚, Π±Π΅Π· Π΄Π° оцСнява ΠΈΠ·Ρ€Π°Π·Π°.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ Ρ„Π»Π°Π³ "-fstrict-flex-arrays=[level]" Π·Π° ΠΈΠ·Π±ΠΎΡ€ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ ΠΎΡ‚ гъвкав масив Π² структури (Ρ‡Π»Π΅Π½ΠΎΠ²Π΅ Π½Π° гъвкав масив, масив с Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² края Π½Π° структурата, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ "int b[] ").
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ Ρ„Π»Π°Π³ "-Wenum-int-mismatch" Π·Π° ΠΈΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° прСдупрСТдСния, Π°ΠΊΠΎ ΠΈΠΌΠ° Π½Π΅ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠ·Π±Ρ€ΠΎΠ΅Π½ Ρ‚ΠΈΠΏ ΠΈ цСлочислСн Ρ‚ΠΈΠΏ.
  • ΠŸΡ€Π΅Π΄Π½ΠΈΡΡ‚ ΠΊΡ€Π°ΠΉ Π½Π° Fortran ΠΈΠΌΠ° пълна ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Ρ„ΠΈΠ½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ‡Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ (generics) Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° към прСдния ΠΊΡ€Π°ΠΉ Π·Π° Π΅Π·ΠΈΠΊΠ° Go ΠΈ Π΅ осигурСна ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π·Π° Π΅Π·ΠΈΠΊΠ° Go 1.18.
  • Π‘Π΅ΠΊΠ΅Π½Π΄ΡŠΡ‚ Π½Π° AArch64 ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° CPU Ampere-1A (ampere1a), Arm Cortex-A715 (cortex-a715), Arm Cortex-X1C (cortex-x1c), Arm Cortex-X3 (cortex-x3) ΠΈ Arm Neoverse V2 (neoverse -v2) . ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ "armv9.1-a", "armv9.2-a" ΠΈ "armv9.3-a" Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° към опцията "-march=". Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° процСсорни Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ FEAT_LRCPC, FEAT_CSSC ΠΈ FEAT_LSE2.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° процСсори STAR-MC1 (star-mc1), Arm Cortex-X1C (cortex-x1c) ΠΈ Arm Cortex-M85 (cortex-m85) Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° към Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ARM Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π°.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π·Π° процСсори Intel Raptor Lake, Meteor Lake, Sierra Forest, Grand Ridge, Emerald Rapids, Granite Rapids ΠΈ AMD Zen 86 (znver4) Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° към x4 Π±Π΅ΠΊΠ΅Π½Π΄Π°. Π Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡΡ‚Π° Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° Π½Π°Π±ΠΎΡ€Π° ΠΎΡ‚ инструкции AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT, CMPccXADD, AMX-FP16, PREFETCHI, RAO-INT ΠΈ AMX-COMPLEX, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ Π² процСсоритС Π½Π° Intel, са Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈ. Π—Π° C ΠΈ C++ Π½Π° систСми със SSE2 Π΅ прСдоставСн Ρ‚ΠΈΠΏΡŠΡ‚ __bf16.
  • Π‘Π΅ΠΊΠ΅Π½Π΄ΡŠΡ‚ Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ Π·Π° Π³Ρ€Π°Ρ„ΠΈΡ‡Π½ΠΈ процСсори AMD Radeon (GCN) Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ускоритСли AMD Instinct MI200 Π·Π° подобряванС Π½Π° производитСлността Π½Π° OpenMP/OpenACC. ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° вСкторизация с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° SIMD инструкции.
  • Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π° Π·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° LoongArch.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° XuanTie C906 Π½Π° CPU T-Head (thead-c906) Π² Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° RISC-V. Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ Π½Π° Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈ, Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ Π² спСцификацията RISC-V Vector Extension Intrinsic 0.11. Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° 30 Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ Π½Π° спСцификацията Π½Π° RISC-V.
  • ΠšΠΎΠ³Π°Ρ‚ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚Π΅ сподСлСни ΠΎΠ±Π΅ΠΊΡ‚ΠΈ с опцията β€ž-sharedβ€œ, ΠΊΠΎΠ΄ΡŠΡ‚ Π·Π° стартиранС Π²Π΅Ρ‡Π΅ Π½Π΅ сС добавя слСд добавянС Π½Π° срСда с ΠΏΠ»Π°Π²Π°Ρ‰Π° запСтая, Π°ΠΊΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅ β€ž-Ofastβ€œ, β€ž-ffast-mathβ€œ ΠΈΠ»ΠΈ β€ž-funsafe-math-optimizationsβ€œ са Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ΠΈ .
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π·Π° отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ DWARF Π΅ Π²Π½Π΅Π΄Ρ€Π΅Π½Π° Π² ΠΏΠΎΡ‡Ρ‚ΠΈ всички ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ опция "-gz=zstd" Π·Π° компрСсиранС Π½Π° информация Π·Π° отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ° Zstandard. ΠŸΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° остарСлия Ρ€Π΅ΠΆΠΈΠΌ Π½Π° компрСсиранС Π½Π° информация Π·Π° отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ "-gz=zlib-gnu".
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° OpenMP 5.2 (Open Multi-Processing) ΠΈ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° внСдряванСто Π½Π° стандартитС OpenMP 5.0 ΠΈ 5.1, Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°ΠΉΠΊΠΈ API ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° многоядрСни ΠΈ Ρ…ΠΈΠ±Ρ€ΠΈΠ΄Π½ΠΈ (CPU + GPU / DSP) систСми с сподСлСна ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†ΠΈ Π·Π° вСкторизация (SIMD).
  • ΠžΡ‚Ρ…Π²ΡŠΡ€Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° наслСдСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° информация Π·Π° отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ STABS (Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ с ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅ -gstabs ΠΈ -gxcoff), създадСн ΠΏΡ€Π΅Π· 1980 Π³. ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π² dbx Π΄Π΅Π±ΡŠΠ³Π΅Ρ€Π°.
  • ΠžΡ‚Ρ…Π²ΡŠΡ€Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Solaris 11.3 (ΠΊΠΎΠ΄ΡŠΡ‚ Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Ρ‚Π°Π·ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Ρ‰Π΅ бъдС ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚ Π² Π±ΡŠΠ΄Π΅Ρ‰ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅).

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€