GCC 9.1

3 траўня адбыўся першы публічны выпуск дзевятай версіі GCC: GCC 9.1.
Ён змяшчае мноства істотных паляпшэнняў і даданняў у параўнанні з восьмай
версіяй.

агульныя змены

Опцыі
  • Каманды, якія прымаюць памер, зараз падтрымліваюць 64-бітныя значэнні і суфіксы для ўказання памеру;
  • Дададзена опцыя -flive-patching, для кіравання аптымізацыямі, патэнцыйна дэструктыўнымі для дынамічнай замены кода;
  • Дададзена опцыя -completion для падтрымкі аўта-дадаткі ў каманднай абалонцы;
  • Дыягностыкі кампілятара зараз уключаюць нумары радкоў (-fno-diagnostics-show-line-numbers) І
    інфармацыю аб тыпах (fno-diagnostics-show-labels);
  • Дададзена опцыя -fdiagnostics-format=json для вываду дыягностык у фармаце JSON;
  • Опцыі для ўказання выраўноўвання (-falign-functions, напрыклад) зараз могуць прымаць пару варыянтаў выраўноўвання;
  • Дададзеныя опцыі для фільтрацыі спісу файлаў (-fprofile-filter-files, -fprofile-exclude-files), якія падвяргаюцца інструментаванню прафіліроўшчыкам;
  • AddressSanitizer зараз выкарыстоўвае больш кампактнае выраўноўванне для адлову некарэктных зваротаў да зменных на стэку;
  • Шматлікія паляпшэнні ў выснове -fopt-info;
  • Дададзена опцыя -fsave-optimization-record для захавання справаздачы аб аптымізацыях у файл;
  • Дададзена опцыя -fipa-stack-alignment и -fipa-reference-addressable.
Новыя ўбудаваныя функцыі
Новы атрыбут
Іншая

Шматлікія паляпшэнні кодагенерацыі звязаныя з:

  • генерацыяй switch-канструкцый;
  • між-працэдурнымі аптымізацыямі;
  • аптымізацыяй, заснаванай на інфармацыі аб прафіляванні;
  • аптымізацыяй на этапе зборкі (LTO);

Таксама унутраным фарматам gcov зараз з'яўляецца JSON, а новая опцыя -use-hotness-colors уключае размалёўванне радкоў кода ў залежнасці ад частаты іх выкарыстання.

Мовы

Якасць і паўната рэалізацыі OpenACC у мовах C, C++, і Fortran працягваюць паляпшацца.

З-падобныя мовы
  • Рэалізавана частковая падтрымка OpenMP 5.0;
  • Дададзена функцыя __builtin_convertvector;
  • Дададзена папярэджанне -Waddress-of-packed-member;
  • Паляпшэнні ў шэрагу існуючых папярэджанняў;
  • Тэкст памылкі пры перадачы ў макрас няправільнай колькасці аргументаў зараз уключае аб'яву самога макраса;
  • Паляпшэнні ў прапановах аб выпраўленні памылак друку.
C
  • Падтрымка _Static_assert з адным аргументам для -std=c2x (будучы стандарт C);
  • Новае папярэджанне -Wabsolute-value, Які адлоўлівае няправільны тып аргументу для такіх функцый як abs().
C + +
  • Новыя папярэджанні: -Wdeprecated-copy,
    -Winit-list-lifetime,
    -Wredundant-move,
    -Wpessimizing-move,
    -Wclass-conversion;
  • Вядзецца праца па рэалізацыі новых магчымасцяў з будучага стандарту C++ 2a;
  • Франтэнд зараз захоўвае больш дакладную інфармацыю аб шэрагу элементаў зыходнага кода, што дазваляе адлюстроўваць больш дэталёвую інфармацыю ў дыягностыках;
  • Палепшаны дыягностыкі для перагружаных функцый, бінарных аператараў, выклікаў функцый і радкоў, якія задаюць фармат;
  • Дададзены падтрымліваюцца некаторымі асяроддзямі распрацоўкі аўтаматычныя выпраўленні для шэрагу папулярных памылак (адсутныя дужкі, прасторы імёнаў, памылкі друку і г.д.).
libstdc++
  • Рэалізацыя C++17 больш не з'яўляецца эксперыментальнай;
  • Дададзеныя паралельныя алгарытмы, , , а больш не патрабуе -lstdc++fs;
  • Палепшана эксперыментальная падтрымка C++ 2a ( , , std::bind_front і г.д.);
  • Падтрымка адкрыцця струменяў файлаў на Windows, шляхі да якіх утрымоўваюць знакі, якія выходзяць за рамкі char;
  • Пачатковая падтрымка на Windows;
  • Пачатковая падтрымка Networking TS.
D

Мова D версіі 2.076 уключаны ў склад GCC.

Fortran
  • Поўная падтрымка асінхроннага ўводу/высновы;
  • Рэалізаваны аргумент BACK для MINLOC і MAXLOC;
  • Рэалізаваны функцыі FINDLOC і IS_CONTIGUOUS;
  • Рэалізаваны сінтаксіс доступу да састаўных частак комплексных лікаў: c%re і c%im;
  • Рэалізаваны сінтаксіс str%len і a%kind;
  • Рэалізаваны дэскрыптары C і загаловак ISO_Fortran_binding.h;
  • Аслаблены патрабаванні на вынік функцый MAX і MIN, калі адзін з аргументаў з'яўляецца NaN;
  • Дададзена опцыя -fdec-include;
  • Дададзена дырэктыва BUILTIN.
libgccjit

Іншая

Мноства архітэктурна-і АС-спецыфічных змен.

Крыніца: linux.org.ru

Дадаць каментар