LINUX.ORG.RU

GCC 7.1

 , ,


1

7

Состоялся релиз набора компиляторов GCC 7.1.

Основные изменения:

  • Поддерживаются все возможности текущего черновика будущего стандарта C++17.
  • Улучшены сообщения компилятора, в том числе добавлены новые предупреждения -Wduplicated-branches, -Wpointer-compare (включено по умолчанию), -Wswitch-unreachable (включено по умолчанию), Wmemset-elt-size (включено при -Wall), -Wint-in-bool-context (включено при -Wall), -Wregister (включено по умолчанию), -Wduplicate-decl (включено при -Wall).
  • Улучшена оптимизация.
  • Добавлена поддержка архитектуры RISC-V, улучшена поддержка ARM64.
  • Теперь поддерживается ОС Fuchsia OS.
  • Удалена поддержка Java (GCJ).
  • Некоторый код, успешно компилирующийся в прошлых версиях, теперь может потребовать изменений. Читайте руководство для получения подробностей.

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Последнее исправление: Klymedy (всего исправлений: 8)

RISC-V

Support for the RISC-V instruction set has been added.

Как можно было про это не написать?
Хороший релиз, много улучшений в ворнингах при работе с памятью.

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

не было в анонсе в рассылке, добавил.

cetjs2 ★★★★★
() автор топика

Поддерживаются все возможности текущего черновика будущего стандарта C++17.

А что там с поддержкой стандартов Си?

Удалена поддержка Java (GCJ).

Почему?

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

1. все вроде так же примерно.

2. реализация устарела, несовместима с каноничным jdk. то есть ненужна стала попросту.

cetjs2 ★★★★★
() автор топика

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

Да ладно пугать-то - там только для пользователей с++, им всё-равно страдать :)

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

Gcj давно работает медленнее чем открытые jdk. Он не умеет многие оптимизации и код просто тянется грузом. Его некому поддерживать. Мало того, там реализована очень старая java

mittorn ★★★★★
()

А как там с регрессиями? Я все время смотрю на «serious regressions» к каждому новому релизу и остаюсь на 4.9 ветке.

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

Можно скомпилить что-нибудь, например, Blender 3d в разных версиях gcc и сравнить скорость рендера. На лоре была тема кто-то жаловался что скорость рендера упала с новым gcc, поищи.

anonymous
()

Куда так цифры скачут? Раньше, как мне кажется, медленнее первая цифра менялась. Неужели столько новых важных фич завезли или просто разработчики хромоногого покусали?

peregrine ★★★★★
()

добавлены новые предупреждения -Wduplicated-branches

Что это такое?

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

Хм.

andreyu ★★★★★
()

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

ckotinko ☆☆☆
()

Поддерживаются все возможности текущего черновика будущего стандарта C++17

мудилы. портировали бы pmr на старые gcc и хрен с ним, с 17м.

ckotinko ☆☆☆
()

а что это за новая манечка с версиями? в гцц теперь как в хроме будет: каждую неделю бамп мажорной версии чтобы через пару месяцев версия была 15-17, а лучше 23-25?

сижу на 4.8.5, ни о чём не жалею. сколько «мажорных» версий так удастся пересидеть и на каком числе можно будет начинать думать о переходе на новый компилятор?

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

Смотря какой стандарт нужен. 4.8 вроде не весь C++11 поддерживает, не говоря про C++14.

kachsheev ★★★
()

Поддерживаются все возможности текущего черновика будущего стандарта C++17.

Модули в C++17 так и не завезли (хотя собирались), поэтому не очень интересно.

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

Явно разработчики конпелятора работают не под твои хотелки.

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

Это просто цифры. Идентификаторы. Ты уделяешь им слишком много внимания. Спасибо, что не UUID в качестве версии.

anonymous00 ★★
()
Ответ на: комментарий от cvs-255

они решили догнать chrome или firefox по номеру версии?

Ну как бы они ABI поломали. Вот и 7-ка.

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

И в чем смысл подобной нумерации? Какую осмысленную информацию о програме можно из этого извлечь?

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

И в чем смысл подобной нумерации? Какую осмысленную информацию о програме можно из этого извлечь?

Сдается мне, что это его фантазии. Возможно э.... кхм...

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

Даже в Wextra не запилили только вручную включать, иначе танцы с кодом начнутся, вроде этого:

return MAX(DEF_A,DEF_B);
Если определения совпали.

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

Модули - наименее интересное из того, что собирались и не завезли. Ждем gcc 23.0

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

э,алё.

pmr это вообще не часть компилятора а часть библиотеки.

она написана на С++ и там нет ничего такого на мой взгляд, что потянет за собой builtinы. это просто аллокаторы.

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

Если всё так просто, то что мешает самому сделать патч?

И предыдущий вопрос: почему не перейти на свежий релиз GCC?

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

я думаю с гцц будет примерно тоже самое, что и со всеми этими промежуточными версиями с++. когда-нибудь в язык завезут новые фичи, к этому времени гцц будет уже 12 или даже 17 лол. можно будет переключить -std=c++21. но зачем они это исполняют с версиями - непонятно. какое-то тлетворное влияние гугла наверное.

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

потому что он ядро не может собрать с дурными ошибками. что тут непонятного то? компилятор кривой причем сильно.

ckotinko ☆☆☆
()
Ответ на: комментарий от TheAnonymous

ты подожди несколько лет, пока 7.1 появится в Дженте, что-нибудь придумают

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

но зачем они это исполняют с версиями

Твоюж .... Ломка совместимости - вот единственный повод поменять мажор версию. Они ломали совместимость.

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

Ломка совместимости - вот единственный повод поменять мажор версию.

нет, они теперь будут просто брать и бампать версию каждый раз когда они делают «релиз» (чтобы это ни означало): https://gcc.gnu.org/develop.html

гцц 8 уже в разработке, между прочим.

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

Раньше icedtea-bin был только под x86 и amd64, но сейчас для java8 добавили arm и ppc64, в принципе, и собирать не надо.

Но под другие платформы вопрос, например, ia64

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

гцц 8 уже в разработке, между прочим.

Значит решили забить на попытки тащить совместимость.

anonymous
()

Сходил по ссылкам «serious regressions» для 5.4, 6.3 и 7.1:

  • 5.4 — 109 bugs found
  • 6.3 — 218 bugs found
  • 7.1 — 260 bugs found

И ладно бы экзотика какая, вот же что есть: «[5/6 Regression] Infinite loop at -O2/O3 optimization levels while trying to compile server.c from Wine-2.0-rc2» (подозреваю, на седьмом бранче это не проверяли)

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

Баг или фича? Ты разобрался, это регрессии или более строгие проверки кода?

Ссылки на баг-трекер приветствуются.

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

почему я должен с этим разбираться? пусть разработчики разбираются, хотя может они ждут когда им торвальдс палец покажет.

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