GCC 9.1


GCC 9.1

3. maja je izšel prvi javni izdaja devete različice GCC: GCC 9.1.
Vključuje številne pomembne izboljšave in dodatke v primerjavi z osmo
različico.

Opšte promene

Opcije
Nove vgrajene funkcije
Nova atribute
Kitas

Številne izboljšave generiranja kode, povezane z:

  • generiranjem switch konstrukcij;
  • med-proceduralnimi optimizacijami;
  • optimizacijo na podlagi informacij o profiliranju;
  • optimizacijo v fazi gradnje (LTO);

Prav tako je notranji format gcov zdaj JSON, nova možnost —use-hotness-colors pa vključuje barvanje vrstic kode glede na pogostost njihove uporabe.

Jeziki

Kakovost in celovitost realizacije OpenACC v jezikih C, C++ in Fortran se še naprej izboljšujejo.

C-podobni jeziki
  • Delna podpora za OpenMP 5.0 je bila uvedena;
  • Dodana funkcija __builtin_convertvector;
  • Dodano opozorilo -Waddress-of-packed-member;
  • Izboljšave pri vrsti obstoječih opozoril;
  • Besedilo napake pri posredovanju nepravilnega števila argumentov v makro zdaj vključuje izjavo samega makra;
  • Izboljšave v predlogih za popravljanje napak pri tipkanju.
C
  • Podpora za _Static_assert z enim argumentom za -std=c2x (prihodni standard C);
  • Novo opozorilo -Wabsolute-value, ki zazna napačen tip argumenta za take funkcije kot abs().
C++
  • Nova opozorila: -Wdeprecated-copy,
    -Winit-list-lifetime,
    -Wredundant-move,
    -Wpessimizing-move,
    -Wclass-conversion;
  • Работа над реализацией новых функций из будущего стандарта продолжается. C++ 2a;
  • Фронтенд теперь сохраняет более точную информацию о ряде элементов исходного кода, что позволяет более детально отображать информацию в диагностических сообщениях.
  • Улучшены диагностические инструменты для перегруженных функций, бинарных операторов, вызовов функций и строк, задающих формат.
  • Добавлены автоматически исправляющие средства, поддерживаемые некоторыми средами разработки, для ряда популярных ошибок (отсутствие скобок, пространства имён, опечатки и т.д.).
libstdc++
  • Реализация C++17 больше не является экспериментальной.
  • Добавлены параллельные алгоритмы, <execution>, <memory_resource>, а <filesystem> больше не требует -lstdc++fs.
  • Улучшена экспериментальная поддержка C++ 2a (<bit>, <version>, std::bind_front и т.д.).
  • Поддержка открытия файловых потоков на Windows с путями, содержащими символы вне диапазона char.
  • Начальная поддержка <filesystem> на 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.
  • Dodana je možnost -fdec-include;
  • Dodana direktiva BUILTIN.
libgccjit

Kitas

Множество архитектурных и ОС-специфичных изменений.

Izvor: linux.org.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster