LINUX.ORG.RU

GCC 8.1

 , , , ,


1

7

Спустя намеченный год после выхода предыдущего мажорного выпуска «Коллекции компиляторов ГНУ» [0], увидел свет GCC 8.1. Разработчики обещают свежие возможности и более жесткую оптимизацию.

В частности они отмечают:

  • Экспериментальную поддержку отдельный частей черновика стандарта C++2a в компиляторе, а равно и частей С++2a и окончательно всего C++17 [1] — в стандартной библиотеке.
  • Улучшения в выводе диагностической информации в особенности в части позиций (в том числе в формате «от»-«до») и советов по исправлению ошибок; главнейшим образом это коснулось Си++. Новые предупреждения также не забыты.
  • Повышено качество профилированной оптимизации (PGO); так на x86 функции теперь по-умолчанию делятся на «горячие» и «холодные» участки. При оптимизации во время компоновки теперь задействуется новый способ вывода отладочный сведений в DWARF, что делает оптимизированную программу более удобоотлаживаемой. Добавлены новые и улучшены существующие оптимизации для циклов.
  • Компиляция для архитектуры aarch64 теперь умеет в Scalable Vector Extensions, куда входят в частности вектора с определяемой в процессе исполнения длиной.

Интересующимся более глубоко могут быть полезны полный перечень изменений [2], а также актуальный перечень значительных регрессий [3] в новом выпуске.

[0] https://gnu.org/s/gcc
[1] https://gcc.gnu.org/projects/cxx-status.html#cxx17
[2] https://www.gnu.org/software/gcc/gcc-8/changes.html
[3] https://gcc.gnu.org/bugzilla/buglist.cgi?bug_file_loc_type=allwordssubstr&amp...

>>> info-gnu@gnu.org

★★★★★

Проверено: jollheef ()

Будем посмотреть.

rht ★★★★★ ()
Ответ на: комментарий от mittorn

Не давно, а два года и работает очень плохо.

anonymous ()

Как дела с resumable functions? Или их не включили в следующую версию стандарта, как не включили в предыдущую?

KivApple ★★★★★ ()
Ответ на: комментарий от KivApple

Корутины обещают частично включить.

anonymous ()

Коллекции у коллекционеров. Это называется набор.

anonymous ()

Что, кроме С++ больше изменений нет?

hotpil ★★★ ()
Ответ на: комментарий от KennyMinigun

Оо, теперь С++ будет выглядеть как фортран

hotpil ★★★ ()

Жёсткую оптимизацию... о да, оптимизируй сильнее, жёстче!

UVV ★★★★★ ()

Почему поддержку C++2a добавляют, а C2x нет? Что за дискриминация?

CYB3R ★★★★★ ()
Ответ на: комментарий от CYB3R

Потому что уже C11 почти никому не интересен

anonymous ()
Ответ на: комментарий от anonymous

Коллекции у коллекционеров. Это называется набор.

Это называется «бэкроним». :-)

Zmicier ★★★★★ ()
Ответ на: комментарий от hotpil

Что, кроме С++ больше изменений нет?

Даже теряюсь, что ответить. Повторить всю новость? Или только с пятого абзаца? ;-)

Zmicier ★★★★★ ()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от anonymous

Потому что уже C++11 почти никому не интересен

исправил

anonymous ()
Ответ на: комментарий от anonymous

Потому что уже C++11 почти никому не интересен

исправил

Таки да, с 6.1 в g++ по умолчанию C++14.

Что ржачно, в C++2a хотят «бекпортировать» designated initializers. А кричали, что «нинужна, есть конструкторы».

KennyMinigun ★★★★★ ()
Последнее исправление: KennyMinigun (всего исправлений: 1)
Ответ на: комментарий от KennyMinigun

В этом релизе обещали поддержку D из коробки. Добавили же?

anonymous ()

Появились новые опции командной строки, например,
-Wstringop-truncation
для таких функций как strncat, strncpy,stpncpy
После чего вот такой код
void append (char *buf, size_t bufsize)
{
strncat (buf, ".txt", 3);
}

сгенерит вот такой варнинг:
warning: 'strncat' output truncated copying 3 bytes from a string of length 4

Выравнивание структур:
-Wpacked-not-aligned
Например, для следующего кода
struct __attribute__ ((aligned (8)))
S8 { char a[8]; };

struct __attribute__ ((packed)) A
{
struct S8 s8;
};
будет сгенерирован варнинг
warning: alignment 1 of 'struct S' is less than 8

kto_tama ★★★★★ ()
Ответ на: комментарий от CYB3R

А нахрен он нужен, писать на крестах в С-стиле никто не запрещает.

anonymous ()
Ответ на: комментарий от kto_tama

Когда болезные уже перестанут упираться и сделают -Weverything как в шланге?

anonymous ()
Ответ на: комментарий от KennyMinigun

https://gcc.gnu.org/wiki/cxx-modules

Что, в 8.1 запилили-таки? УРА! «Ждём ебилдов» (c).

...Ааааа тепееееерь ждём пропозалов по альтернативным синтаксисам. Модули ж позволят. После чего всякие альтернативы типа D станут неактуальными; ну или наоборот, прикрутят его к модульной системе (если это в принципе возможно).

dimgel ()
Ответ на: комментарий от mittorn

А в шланге ещё до студии было. Только работает через попец.

DELIRIUM ★★★★★ ()
Ответ на: комментарий от anonymous

Нет, не добавили. Там был вопрос с копирайтом, но люди которые должны подтвердить что теперь уже все хорошо - молчат. Бюрократия...

anonymous ()

более жесткую оптимизацию

developers-developers еще к нынешнему уровню не готовы. Ждем новых жалоб на баги в gcc и жабакодеров в нем же.

anonymous ()
Ответ на: комментарий от dimgel

УРА! «Ждём ебилдов» (c).

Даже в Debian уже вчера добавили:

gcc-8 (8.1.0-1) unstable; urgency=medium

  * GCC 8.1.0 release.
  * Stop providing the 8.x.y symlinks in gcc_lib_dir and incluce/c++.
  * Configure powerpcspe with --enable-obsolete, will be gone with GCC 9.
  * Build libmpx libraries when not building the common libs.
  * Update NEWS files for GCC 8.1.

 — Matthias Klose <doko@debian.org>  Wed, 02 May 2018 11:43:46 +0200
gag ★★★★★ ()

GCC 8.1

Можно ли им собрать gcc-2.95.2?

pacify ★★★★★ ()
Ответ на: комментарий от anonymous

А нахрен он нужен, писать на крестах в С-стиле никто не запрещает.

Для тех, кто не знает C, конечно не нужен.

grem ★★★★★ ()

жесткую

способ вывода отладочный сведений

лучше писал бы нормальным языком вместо этого

ну и да... МИНОРЩИНА!!!

anonymous ()
Ответ на: комментарий от anonymous

ну и да... МИНОРЩИНА!!!

Они поменяли схему нумерации пару лет назад: 8.0 - это «бета», 8.1 - это «релиз».

gag ★★★★★ ()
 The main version of libfortran has been changed to 5.

Parameterized derived types, a major feature of Fortran 2003, have been implemented.

The maximum rank for arrays has been increased to 15, conforming to the Fortran 2008 standard.

Transformational intrinsics are now fully supported in initialization expressions. 

Что-то мне подсказывает что про это тоже стоило упомянуть, поскольку другие компиляторы фортрана вымерли.

Slackware_user ★★★★★ ()
Ответ на: комментарий от CLU

Может и будет, ага. Новость написана крайне плохо. Ни слова нет про нововведения в тот же фортран, С, Го, Ада.

hotpil ★★★ ()
Ответ на: комментарий от anonymous

жесткую
способ вывода отладочный сведений


лучше писал бы нормальным языком вместо этого

Это каким? Канцеляритом? Или английским?

ну и да... МИНОРЩИНА!!!

Ну что я могу поделать, мажорнее не будет.

Zmicier ★★★★★ ()
Ответ на: комментарий от Slackware_user

Скорее наоборот. Все, кто пользуется Фортраном, берут ICC или специфичный для платформы компилятор. gfortran - это скорее затычка. На случай, если других вариантов нет.

h31 ★★★★ ()
Ответ на: комментарий от h31

однажды по работе перевел большую фортран-программу на с++ (bcc3.1), легко

anonymous ()
Ответ на: комментарий от anonymous

Не давно, а два года и работает очень плохо.

Вопрос к знатоку. Вроде бы для крестов были две несовместимые реализации модулей: как у майкрософта и как у шланга. В GCC какую в итоге взяли?

EternalNewbie ()
Ответ на: комментарий от grem

Вот только знаешь ли ты С достаточно хорошо, чтобы это обосновать.

anonymous ()
Ответ на: комментарий от early_britney_fun

Множества у многоженцев.

Правильно - ряды.

AVL2 ★★★★★ ()
Ответ на: комментарий от hotpil

Может и будет, ага. Новость написана крайне плохо.

Да?

Ну я честно подождал полдня, дав возможность тому, кто интересуется не только мэйнстримчиком, но и всякими Фортранами и Адами и готовил авторскую новость, ее отправить.

Учитывая, что точная дата выхода не была секретом, надо полагать никто этого делать не собирался. Как не сделал и в прошлый раз — с седьмой версией. И вообще, я их тут что-то особо не припомню.

Где ж вы были-то, а?

Ни слова нет про нововведения в тот же фортран, С, Го, Ада.

Поэтому и сделал единственно верное — пересказал то, что разработчики ГКК в лице Якуба Елинека *сами* сочли нужным о своем труде поведать, в порядке отсебятины внеся лишь пару слов.

Zmicier ★★★★★ ()
Ответ на: комментарий от Zmicier

Нормальным русским. Я наблюдаю неуместное выпендрёжничество, оставьте это людям которые занимающимся этим профессионально. Больно глазкам читать.

anonymous ()
Ответ на: комментарий от anonymous

Неа, не знаю, но выглядит немного иронично, что anonymous не знает об отсутсвии в C++ ( С++11 и С++14, по крайней мере) «anonymous union» и «anonymous struct» (не путать «unnamed struct»). Да и Variable Length Arrays, емнип, в те же стандарты не прошли. Может всё это добавили с C++17?

Объявлений вложенных функций нет (если, например, таковыми не считать lambda).

grem ★★★★★ ()
Ответ на: комментарий от anonymous

Я отвечал на фразу «поскольку другие компиляторы фортрана вымерли».

h31 ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.