GCC 9.1

3-майда GCC тогузунчу версиясынын биринчи коомдук релизи болуп өттү: GCC 9.1.
Ал сегизинчиге салыштырмалуу көптөгөн олуттуу жакшыртууларды жана толуктоолорду камтыйт
версия.

Жалпы өзгөрүүлөр

Жолдор
Жаңы орнотулган функциялар
Жаңы атрибут
башка

Төмөнкүлөргө байланыштуу көптөгөн коддорду түзүү жакшыртуулары:

  • коммутатор конструкцияларын генерациялоо;
  • процедуралар аралык оптималдаштыруу;
  • профилдик маалыматтын негизинде оптималдаштыруу;
  • монтаждоо стадиясында оптималдаштыруу (LTO);

Ошондой эле gcovтун ички форматы азыр JSON жана жаңы вариант --пайдалануу-ысык-түстөр коддун сызыктарын алардын канчалык көп колдонулганына жараша боёкту камтыйт.

тилдер

ишке ашыруунун сапаты жана толуктугу OpenACC C, C++ жана Fortran тилдери өркүндөтүүнү улантууда.

C сыяктуу тилдер
  • OpenMP 5.0 үчүн жарым-жартылай колдоо ишке ашырылды;
  • Кошулган функция __курулган_конвертектор;
  • Кошулган эскертүү -Топ-топтолгон мүчө;
  • Учурдагы бир катар эскертүүлөрдү жакшыртуу;
  • Макроско туура эмес сандагы аргументтерди өткөрүүдө ката тексти эми макростун декларациясын камтыйт;
  • Жазуунун катасын оңдоо боюнча сунуштарды жакшыртуу.
C
  • -std=c2x үчүн бир аргумент менен _Static_assertти колдоо (келечектеги C стандарты);
  • Жаңы эскертүү - Абсолюттук маани, бул abs() сыяктуу функциялар үчүн туура эмес аргумент түрүн кармайт.
C ++
  • Жаңы эскертүүлөр: -Wdeprecated-copy,
    -Winit-list-өмүр бою,
    - Кыймылсыз,
    -Wpessimizing-motion,
    -Wclass-конверсия;
  • Келечектеги стандарттан жаңы функцияларды ишке киргизүү боюнча иштер жүрүп жатат C++ 2a;
  • Frontend азыр бир катар баштапкы коддун элементтери жөнүндө так маалыматты сактайт, бул диагностикада кеңири маалыматты көрсөтүүгө мүмкүндүк берет;
  • Ашыкча жүктөлгөн функциялар, экилик операторлор, функция чалуулары жана формат саптары үчүн жакшыртылган диагностика;
  • Бир катар таанымал каталар үчүн (жетишпеген кашаалар, аттар мейкиндиктери, тамгалар ж.б.) кээ бир иштеп чыгуу чөйрөлөрү тарабынан колдоого алынган автоматтык оңдоолор кошулду.
libstdc++
  • C++ 17 ишке ашыруу мындан ары эксперименталдык эмес;
  • Кошулган параллелдүү алгоритмдер, , , А мындан ары -lstdc++fs талап кылбайт;
  • C++ 2a үчүн жакшыртылган эксперименталдык колдоо ( , , std::bind_front, ж.б.);
  • Жолдору символдордон башка символдорду камтыган Windowsта файл агымдарын ачууну колдоо;
  • Баштапкы колдоо Windows боюнча;
  • Networking TS үчүн баштапкы колдоо.
D

D тилинин 2.076 версиясы GCCге киргизилген.

Fortran
  • Асинхрондук киргизүү/чыгаруу үчүн толук колдоо;
  • MINLOC жана MAXLOC үчүн BACK аргументи ишке ашырылды;
  • FINDLOC жана IS_CONTIGOUS функциялары ишке ашырылды;
  • Татаал сандардын компоненттерине жетүү синтаксиси ишке ашырылган: c%re жана c%im;
  • Ишке ашырылган синтаксис str%len жана a% kind;
  • Ишке ашырылган C дескрипторлору жана ISO_Fortran_binding.h аталышы;
  • Аргументтердин бири NaN болгондо MAX жана MIN функцияларынын натыйжасы үчүн жеңилдетилген талаптар;
  • Кошулган опция -fdec-камтыйт;
  • Директива кошулду КУРУЛГАН.
libgccjit

башка

Көптөгөн архитектура жана OS өзгөчө өзгөрүүлөр.

Source: linux.org.ru

Комментарий кошуу