GCC 9.1

На 3 ΠΌΠ°ΠΉ сС ΡΡŠΡΡ‚ΠΎΡ ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° Π΄Π΅Π²Π΅Ρ‚Π°Ρ‚Π° вСрсия Π½Π° GCC: GCC 9.1.
Π’ΠΎΠΉ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΈ подобрСния ΠΈ допълнСния Π² сравнСниС с осмия
вСрсия.

ΠžΠ±Ρ‰ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ

ΠžΠΏΡ†ΠΈΠΈ
  • ΠšΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€, сСга ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ 64-Π±ΠΈΡ‚ΠΎΠ²ΠΈ стойности ΠΈ суфикси Π·Π° ΡƒΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π°;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° опция -flive-patch,Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ Ρ€Π°Π·Ρ€ΡƒΡˆΠΈΡ‚Π΅Π»Π½ΠΈ Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎΡ‚ΠΎ замСстванС Π½Π° ΠΊΠΎΠ΄;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ опция --completion Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π΄ΠΎΠ²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ‚Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°;
  • Диагностиката Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° Π²Π΅Ρ‡Π΅ Π²ΠΊΠ»ΡŽΡ‡Π²Π° Π½ΠΎΠΌΠ΅Ρ€Π° Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅ (-fno-diagnostics-show-line-numbers) И
    Ρ‚ΠΈΠΏ информация (fno-diagnostics-show-labels);
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° опция -fdiagnostics-format=json Π΄Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π° диагностика във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ JSON;
  • ΠžΠΏΡ†ΠΈΠΈ Π·Π° опрСдСлянС Π½Π° подравняванС (-falign-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€) Π²Π΅Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ΅ няколко ΠΎΠΏΡ†ΠΈΠΈ Π·Π° подравняванС;
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΎΠΏΡ†ΠΈΠΈ Π·Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° списъка с Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ (-fprofile-filter-files, -fprofile-exclude-files), ΠΊΠΎΠΈΡ‚ΠΎ са инструмСнтирани ΠΎΡ‚ профилиращия;
  • AddressSanitizer Π²Π΅Ρ‡Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎ-ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎ подравняванС, Π·Π° Π΄Π° улавя Π½Π΅Π²Π°Π»ΠΈΠ΄Π½ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏΠΈ Π΄ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π² стСка;
  • ΠœΠ½ΠΎΠ³ΠΎΠ±Ρ€ΠΎΠΉΠ½ΠΈ подобрСния Π½Π° ΠΈΠ·Ρ…ΠΎΠ΄Π° -fopt-информация;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° опция -fsave-optimization-record Π΄Π° Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Π° Π·Π° оптимизация във Ρ„Π°ΠΉΠ»;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° опция -fipa-подравняванС Π½Π° стСка ΠΈ -fipa-Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π΅Π½-адрСсируСм.
Нови Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
Нов Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚
Π”Ρ€ΡƒΠ³

ΠœΠ½ΠΎΠ³ΠΎΠ±Ρ€ΠΎΠΉΠ½ΠΈ подобрСния Π² Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с:

  • Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‰ΠΈ конструкции;
  • ΠΌΠ΅ΠΆΠ΄ΡƒΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ;
  • оптимизация Π½Π° Π±Π°Π·Π° информация Π·Π° ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€Π°Π½Π΅;
  • оптимизация Π½Π° Π΅Ρ‚Π°ΠΏΠ° Π½Π° сглобяванС (LTO);

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° gcov Π²Π΅Ρ‡Π΅ Π΅ JSON ΠΈ Π½ΠΎΠ²Π°Ρ‚Π° опция --ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅-Π³ΠΎΡ€Π΅Ρ‰ΠΈ-Ρ†Π²Π΅Ρ‚ΠΎΠ²Π΅ Π²ΠΊΠ»ΡŽΡ‡Π²Π° оцвСтяванС Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅ ΠΎΡ‚ ΠΊΠΎΠ΄ въз основа Π½Π° Ρ‚ΠΎΠ²Π° ΠΊΠΎΠ»ΠΊΠΎ чСсто сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚.

Π•Π·ΠΈΡ†ΠΈ

ΠšΠ°Ρ‡Π΅ΡΡ‚Π²ΠΎ ΠΈ ΠΏΡŠΠ»Π½ΠΎΡ‚Π° Π½Π° изпълнСниС OpenACC Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ C, C++ ΠΈ Fortran ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°Ρ‚ Π΄Π° сС подобряват.

C-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π΅Π·ΠΈΡ†ΠΈ
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π΅ частична ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° OpenMP 5.0;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° функция __Π²Π³Ρ€Π°Π΄Π΅Π½_ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΎΡ€;
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΎ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ -Waddress-of-packed-member;
  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΡ Π½Π° Ρ€Π΅Π΄ΠΈΡ†Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ прСдупрСТдСния;
  • Π’Π΅ΠΊΡΡ‚ΡŠΡ‚ Π·Π° Π³Ρ€Π΅ΡˆΠΊΠ° ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π°Π²Π°Π½Π΅ Π½Π° Π³Ρ€Π΅ΡˆΠ΅Π½ Π±Ρ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ към макрос Π²Π΅Ρ‡Π΅ Π²ΠΊΠ»ΡŽΡ‡Π²Π° дСкларацията Π½Π° самия макрос;
  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΡ Π² прСдлоТСнията Π·Π° корСкция Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ.
C
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° _Static_assert с Π΅Π΄ΠΈΠ½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π·Π° -std=c2x (Π±ΡŠΠ΄Π΅Ρ‰ C стандарт);
  • Ново ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ -WΠ°Π±ΡΠΎΠ»ΡŽΡ‚Π½Π° стойност, ΠΊΠΎΠΉΡ‚ΠΎ улавя Π³Ρ€Π΅ΡˆΠ΅Π½ Ρ‚ΠΈΠΏ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π·Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ°Ρ‚ΠΎ abs().
C + +
  • Нови прСдупрСТдСния: -Wdeprecated-copy,
    -Winit-списък-ΠΆΠΈΠ²ΠΎΡ‚,
    -ИзлишСн Ρ…ΠΎΠ΄,
    -Wpessimizing-move,
    -Wclass-ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅;
  • Π Π°Π±ΠΎΡ‚ΠΈ сС ΠΏΠΎ внСдряванСто Π½Π° Π½ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ Π±ΡŠΠ΄Π΅Ρ‰ΠΈΡ стандарт C++2a;
  • ΠŸΡ€Π΅Π΄Π½ΠΈΡΡ‚ интСрфСйс Π²Π΅Ρ‡Π΅ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° ΠΏΠΎ-Ρ‚ΠΎΡ‡Π½Π° информация Π·Π° Ρ€Π΅Π΄ΠΈΡ†Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° изходния ΠΊΠΎΠ΄, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΈ позволява Π΄Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚Π΅ ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π° информация Π² диагностиката;
  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° диагностика Π·Π° ΠΏΡ€Π΅Ρ‚ΠΎΠ²Π°Ρ€Π΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π΄Π²ΠΎΠΈΡ‡Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ, извиквания Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°Ρ‰ΠΈ Π½ΠΈΠ·ΠΎΠ²Π΅;
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΈ ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΈ ΠΎΡ‚ някои срСди Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π·Π° Ρ€Π΅Π΄ΠΈΡ†Π° популярни Π³Ρ€Π΅ΡˆΠΊΠΈ (липсващи скоби, пространства ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π°, правописни Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ Π΄Ρ€.).
libstdc++
  • РСализацията Π½Π° C++17 Π²Π΅Ρ‡Π΅ Π½Π΅ Π΅ СкспСримСнтална;
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ, , , А Π²Π΅Ρ‡Π΅ Π½Π΅ изисква -lstdc++fs;
  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° СкспСримСнтална ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° C++2a ( , , std::bind_front ΠΈ Ρ‚.Π½.);
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° отварянС Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ Π² Windows, Ρ‡ΠΈΠΈΡ‚ΠΎ ΠΏΡŠΡ‚Π΅ΠΊΠΈ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ Π·Π½Π°Ρ†ΠΈ Π±Π΅Π· Π·Π½Π°Ρ†ΠΈ;
  • ΠŸΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Windows;
  • ΠŸΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Networking TS.
D

D Π΅Π·ΠΈΠΊΠΎΠ²Π° вСрсия 2.076 Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² GCC.

Π€ΠΎΡ€Ρ‚Ρ€Π°Π½
  • Пълна ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° асинхронСн I/O;
  • Π’ΡŠΠ²Π΅Π΄Π΅Π½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ BACK Π·Π° MINLOC ΠΈ MAXLOC;
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ FINDLOC ΠΈ IS_CONTIGOUS;
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ Π΅ ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡΡŠΡ‚ Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° комплСкснитС числа: c%re ΠΈ c%im;
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ синтаксис str%len ΠΈ a%kind;
  • Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈ C дСскриптори ΠΈ Π·Π°Π³Π»Π°Π²ΠΊΠ° ISO_Fortran_binding.h;
  • ΠžΠ±Π»Π΅ΠΊΡ‡Π΅Π½ΠΈ изисквания Π·Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ MAX ΠΈ MIN, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π΅ NaN;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° опция -fdec-Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ВГРАДЕНА.
libgccjit

Π”Ρ€ΡƒΠ³

Много ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, спСцифични Π·Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма.

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

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