The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

27.04.2016 17:23  Релиз набора компиляторов GCC 6

После года разработки состоялся релиз свободного набора компиляторов GCC 6.1, первый значительный выпуск в новой ветке GCC 6.x. В соответствии с новой схемой нумерации выпусков, версия 6.0 использовалась в процессе разработки, а незадолго до выхода GCC 6.1 уже ответвилась ветка GCC 7.0, на базе которой будет сформирован следующий значительный релиз GCC 7.1.

GCC 6.1 примечателен применением в компиляторе C++ по умолчанию стандарта C++14 вместо ранее предлагаемого C++98, улучшением экспериментальной поддержки C++17, расширением средств диагностики, полной поддержкой OpenMP 4.5, новыми оптимизациями, поддержка системной библиотеки musl, улучшением поддержки платформ ARM, поддержкой процессоров AMD Zen (17 поколение CPU AMD), Intel Skylake, IBM z13 и IBM POWER 9.

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

  • Для языка C++ по умолчанию активировано использование стандарта C++14 (применяется режим "-std=gnu++14" вместо "-std=gnu++98"). Добавлена поддержка расширения системы шаблонов C++ Concepts, активируемая опцией "-fconcepts". Реализованы некоторые новые элементы будущего стандарта C++17, такие как выражения fold, символьные литералы u8, расширенный static_assert и вложенное определение пространств имён. Реализована возможность вычисления констант для всех бестиповых аргументов шаблонов. Добавлена поддержка транзакционной памяти (C++ Transactional Memory) при сборке с опцией "-fgnu-tm";
  • В runtime-библиотеке libstdc++ расширен набор специальных математических функций (ISO/IEC 29124:2010), добавлена экспериментальная поддержка стандарта C++17 (в том числе новые функции std::size, std::empty, std::data для контейнеров и массивов, std::uncaught_exceptions, std::invoke, std::shared_mutex, std::void_t и std::bool_constant), экспериментальная поддержка File System TS, экспериментальная поддержка второй версии Library Fundamentals TS, поддержка std::locale для DragonFly и FreeBSD;
  • Добавлена поддержка Си-библиотеки musl, которую можно использовать на Linux-системах с архитектурой AArch64, ARM, MicroBlaze, MIPS, MIPS64, PowerPC, PowerPC64, SH, i386, x32 и x86_64. Поддержка включается опцией "-mmusl" или при выборе архитектуры по маске "*-linux-musl*";
  • Многочисленные улучшения в оптимизаторе, работающем во время динамического связывания (Link-time optimization). Расширена информация о типах, сохраняемая во время связывания, что позволило повысить качество анализа псевдонимов. Добавлен режим "-Wodr-type-mismatch", включающий вывод предупреждений о проблемах с типизацией глобальных переменных и деклараций. Cокращён размер объектных файлов LTO (при тестировании сборкой Firefox 46.0 размер уменьшился на 11%). Значительно сокращён размер промежуточных данных в режиме параллелизации во время связывания (при тестировании в Firefox 46.0 отмечается сокращение размера передаваемых данных на 66%). В плагине linker расширена передача информации о типе бинарного файла, генерируемого бэкендом GCC, что позволяет увеличить качество настройки генератора кода и реализовать возможность инкрементальной компоновки;
  • Улучшение межпроцедурных оптимизаций. Во время клонирования функций задействован более агрессивный метод чистки неиспользуемых параметров функций. Выполнение базовой оптимизации jump threading теперь производится до профилирования конструкций и inline-анализа, что позволяет более точно предсказать время и размер для последующих фаз развёртывания кода и клонирования функций;
  • В детекторе неопределенного поведения (Undefined Behavior Sanitizer), выявляющего ситуации, когда поведение программы становится неопределенным (зависит от реализации компилятора) из-за ошибки программиста, реализован режим "-fsanitize=bounds-strict", обеспечивающий строгую проверку соблюдения границ массива с использованием дополнительных методов оценки записей в массиве;
  • Система контроля диапазонов значений (Value range propagation) теперь полагает, что указатели this в функциях C++ не могут иметь значение NULL, что позволяет избавиться от типовых проверок на NULL, но создаёт проблемы с некоторыми кодовыми базами, такими как Qt-5, Chromium и KDevelop. Для выявления проблемного кода следует использовать режим "-fsanitize=undefined", а для возврата NULL-проверок можно установить опцию "-fno-delete-null-pointer-checks";
  • В анализаторе псевдонимов (Alias analysis), выявляющем обращения из разных мест к одним и тем же данным, обеспечена корректная поддержка атрибутов weakref и alias, что делает возможным организовать доступ к переменной и её псевдониму в рамках одной транзакции во время оптимизации;
  • Значительно расширена поддержка спецификации параллельного программирования OpenACC 2.0a, определяющей средства для выноса операций на плечи GPU. Добавлена начальная поддержка параллельного выполнения ядер OpenACC. Для выноса вычислений могут быть задействованы GNU NVIDIA PTX на Linux-системах с процессорами x86_64 и PowerPC. Поддерживается распараллеливание с запуском до 32 обработчиков и 32 векторов;
  • В компиляторах C и C++ полностью реализована спецификация OpenMP 4.0 (Open Multi-Processing), позволяющая ускорить вычисления за счёт выноса операций (offloading) на специализированные процессоры Intel XeonPhi Knights Landing и AMD HSAIL;
  • Начальная поддержка гетерогенных вычислительных систем на базе архитектуры HSA. Реализована возможность генерации промежуточного языка HSAIL (Heterogeneous System Architecture Intermediate Language) для простых устройств OpenMP при сборке с опцией "--enable-offload-targets=hsa". Добавлен плагин libgomp, позволяющий запустить ядра HSA GPU на GPU, совместимых с HSA;
  • Расширены средства сборки генератора кода в форме разделяемой библиотеки libgccjit для встраивания в другие процессы и использования для организации JIT-компиляции байткода в машинный код;
  • Объявлена устаревшей поддержка старых архитектур ARM, предшествующих ARMv4t: arm2, arm250, arm3, arm6, arm60, arm600, arm610, arm620, arm7, arm7d, arm7di, arm70, arm700, arm700i, arm710, arm720, arm710c, arm7100, arm7500, arm7500fe, arm7m, arm7dm, arm7dmi, arm8, arm810, strongarm, strongarm110, strongarm1100, strongarm1110, fa526, fa626. В будущем поддержка данных систем будет прекращена;
  • Добавлена поддержка новых процессоров ARM: ARM Cortex-A32 (cortex-a32), ARM Cortex-A35 (cortex-a35);
  • Улучшения для процессоров IA-32/x86-64: Добавлена поддержка процессоров AMD Zen (-march=znver1 и -mtune=znver1) и Intel Skylake с расширениями AVX-512 (-march=skylake-avx512) AVX-512F, AVX512VL, AVX-512CD, AVX-512BW и AVX-512DQ. Добавлена поддержка инструкций monitorx и mwaitx, используемых в CPU AMD. Добавлена поддержка адресных пространств __seg_fs, __seg_gs и __seg_tls;
  • Начальная поддержка процессоров POWER9, использующих набор инструкций OpenPOWER ISA 3.0. Для систем PowerPC64 обеспечена поддержка 128-разрядных чисел с плавающей запятой (IEEE 128-bit floating-point) с использованием типа __float128 ("-mfloat128");
  • Добавлена поддержка процессоров IBM z13 (-march=z13), используемых в новых платформах IBM z Systems;
  • Расширены возможности порта AArch64 и добавлены специфичные для данной архитектуры опции. На системах GNU/Linux AArch64 реализована поддержка опций "-march=native" и "-mcpu=native", при которых GCC сам определяет тип CPU и выбирает набор оптимальных настроек. Реализована поддержка опций "-mtls-size=" и "-fno-plt". Добавлена поддержка архитектуры ARMv8.1-A ("-march=armv8.1-a"), процессора ARM Cortex-A35 ("-mcpu=cortex-a35", "-mtune=cortex-a35") и расширений для крупных систем (Large System Extensions). Улучшена генерация кода для процессоров ARM Cortex-A53 и Samsung Exynos M1;
  • В разряд устаревших переведены платформы SH5 / SH64 (sh64-*-*) и MeP (mep-elf).


  1. Главная ссылка к новости (https://gcc.gnu.org/ml/gcc-ann...)
  2. OpenNews: Увидел свет набор компиляторов GCC 5.1
  3. OpenNews: Линус Торвальдс выступил с резкой критикой GCC 4.9.0
  4. OpenNews: Релиз набора компиляторов GCC 4.9
  5. OpenNews: AMD развивает основанный на LLVM универсальный компилятор C++ и CUDA для CPU/GPU
  6. OpenNews: Новая версия набора компиляторов LLVM 3.8
Лицензия: CC-BY
Тип: Интересно / Программы
Ключевые слова: gcc
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.3, Аноним, 19:27, 27/04/2016 [ответить] [смотреть все]
  • –17 +/
    Инкремент мажорной версии каждый год. гугле стиль, еп
     
     
  • 2.6, анон, 19:42, 27/04/2016 [^] [ответить] [смотреть все] [показать ветку]
  • +23 +/
    Не позорь имя анона. Мажорная версия должна быть сменена в данном случае, поскольку изменили стандарт по умолчанию и выкинули поддержку кучи процессоров и архитектур. Т.е. поломали обратную совместимость (не все что компилилось пятеркой, компилится 6), поэтому изменение мажорной цифры правильно.
     
     
  • 3.9, Аноним, 19:49, 27/04/2016 [^] [ответить] [смотреть все]
  • –3 +/
    Пометили устаревшей, но ещё не выкинули ... весь текст скрыт [показать]
     
  • 3.10, Аноним, 19:49, 27/04/2016 [^] [ответить] [смотреть все]  
  • –4 +/
    ты сам не позорься Новость прочитай хотя бы В соответствии с новой схемой нуме... весь текст скрыт [показать]
     
     
  • 4.26, Аноним, 21:46, 27/04/2016 [^] [ответить] [смотреть все]  
  • +2 +/
    1, в списках рассылки это было описано ещё перед выходом 5 1 Они теперь КАЖДЫЙ... весь текст скрыт [показать]
     
  • 3.14, й, 20:11, 27/04/2016 [^] [ответить] [смотреть все]  
  • +2 +/
    и почему это вы не могли им посоветовать во времена перехода с 2.7 до 2.9?
     
  • 2.20, gildor, 20:38, 27/04/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +5 +/
    Ага, google свой хром уже 50 лет разрабатывает.
     
     
  • 3.21, Аноним, 20:51, 27/04/2016 [^] [ответить] [смотреть все]  
  • –2 +/
    Скорее GNU GCC 6 лет разрабатывают
     
  • 3.52, Аноним, 13:19, 28/04/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    А less разрабатывается уже 481 год.
     
  • 1.7, Аноним, 19:43, 27/04/2016 [ответить] [смотреть все]  
  • –12 +/
    Какие цели преследует этот выпуск Новые фичи это следствие бурной деятельности ... весь текст скрыт [показать]
     
     
  • 2.30, Анончег, 22:23, 27/04/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • –3 +/
    Ты читать что ли не умеешь Лёгким движением руки брюки превращаются Брюки п... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.38, Аноним, 01:37, 28/04/2016 [^] [ответить] [смотреть все]  
  • +/
    Альтернативы все равно нет, разве что раст выстрелит, но это еще когда будет...
     
  • 3.39, Crazy Alex, 01:43, 28/04/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    Товарищ Страуструпов половину этих новинок активно пропихивал лично Кому надо ... весь текст скрыт [показать]
     
     
  • 4.40, _KUL, 04:28, 28/04/2016 [^] [ответить] [смотреть все]  
  • +3 +/
    Т е в плюсах кучу либ учить не нужно http s pikabu ru post_img 2012-12_5 135... весь текст скрыт [показать]
     
     
  • 5.41, Crazy Alex, 04:43, 28/04/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Нет, не нужно Я уже тут сто раз объяснял - сложность задачи - она никуда не дев... весь текст скрыт [показать]
     
     
  • 6.58, Аноним, 17:57, 28/04/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    я вас умоляю, посмотрите на GO ... весь текст скрыт [показать]
     
     
  • 7.62, Ярош, 23:14, 28/04/2016 [^] [ответить] [смотреть все]  
  • –3 +/
    смотри на Swift
     
  • 5.45, Аноним, 08:08, 28/04/2016 [^] [ответить] [смотреть все]  
  • +2 +/
    Эта книга никогда не рассматривалась как учебник для начинающих А вообще да, у ... весь текст скрыт [показать]
     
     
  • 6.46, mkam, 09:55, 28/04/2016 [^] [ответить] [смотреть все]  
  • +/
    Эта книга именно для начинающих и не знакомых с программированием вообще У него... весь текст скрыт [показать]
     
     
  • 7.56, Аноним, 16:23, 28/04/2016 [^] [ответить] [смотреть все]  
  • +/
    Книгу читал. В отличие от тебя, знаю что пишу.
     
  • 3.51, dq0s4y71, 13:17, 28/04/2016 [^] [ответить] [смотреть все]  
  • +/
    Сама идея С была порочна Это всё равно что создавать новое произведение искус... весь текст скрыт [показать]
     
     
  • 4.63, Ярош, 23:15, 28/04/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    Ты прав бро, только ничего лучше пока не придумали... весь текст скрыт [показать]
     
     
  • 5.66, dq0s4y71, 15:18, 29/04/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    Придумали Для системного встроенного программирования - Си Для прикладного - в... весь текст скрыт [показать]
     
     
  • 6.69, Аноним, 21:50, 01/05/2016 [^] [ответить] [смотреть все]  
  • –2 +/
    Си уже неприменимо ни для чего, это устаревшее неэффективное небезопасное г-но, ... весь текст скрыт [показать]
     
     
  • 7.71, dq0s4y71, 15:08, 04/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Ха-ха, это даже не смешно Вы поинтересуйтесь на досуге, на чём написаны ядра оп... весь текст скрыт [показать]
     
     
  • 8.72, Аноним, 00:00, 06/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Мы здесь не говорим о промышленных системах Только о самодельном локалхостном г... весь текст скрыт [показать]
     
  • 3.59, Анонимный Алкоголик, 19:36, 28/04/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    https www youtube com watch v Xf6rL0IUjmM C вообще-то никуда особенно не пре... весь текст скрыт [показать]
     
  • 1.12, Андрей, 20:00, 27/04/2016 [ответить] [смотреть все]  
  • –2 +/
    > версия 6.0 использовалась в процессе разработки

    Мне как-то 5.99 более понятно. А с релизом 6.1 всегда вопрос: как же я 6.0 пропустил!?

     
     
  • 2.16, Andrey Mitrofanov, 20:19, 27/04/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +5 +/
    Новая нумерация же Вы не понимаешь, я не понимаю -- ну и хххн с ним, с плащом ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.33, Андрей, 23:34, 27/04/2016 [^] [ответить] [смотреть все]  
  • –3 +/
    6 1 для gtk-шников - это вообще test-ветка Просто одно дело формально утвердить... весь текст скрыт [показать]
     
     
  • 4.47, ТТТ, 09:56, 28/04/2016 [^] [ответить] [смотреть все]  
  • +3 +/
    Какая разница как оно подсознательно воспринимается У нас что - психоанализ Ва... весь текст скрыт [показать]
     
  • 1.13, Андрей, 20:02, 27/04/2016 [ответить] [смотреть все]  
  • –2 +/
    > Добавлена поддержка транзакционной памяти

    Она же всё ещё ни в одном интеловском проце не работает, т.к. обнаружились железные баги, и её отключили?

     
     
  • 2.29, Аноним, 22:23, 27/04/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Уже давно работает В Broadwell и Skylake Возможно, и в Haswell некоторых модел... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.34, Андрей, 23:39, 27/04/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    Да, ладно Август 2014 TSX отключён в Haswell из-за бага Февраль 2016 и в Haswe... весь текст скрыт [показать]
     
     
  • 4.35, Андрей, 23:40, 27/04/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    Похоже, TSX не выключен только в каких-то избранных моделях и является исключени... весь текст скрыт [показать]
     
  • 4.36, Аноним, 00:21, 28/04/2016 [^] [ответить] [смотреть все]  
  • +/
    В Xeon E7 v3 оно есть и включено ... весь текст скрыт [показать]
     
     
  • 5.44, Андрей, 05:55, 28/04/2016 [^] [ответить] [смотреть все]  
  • –2 +/
    Но это не очень народный проц А TSX уже не настолько нов, чтобы по-прежнему быт... весь текст скрыт [показать]
     
     
  • 6.48, Andrey Mitrofanov, 10:25, 28/04/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Зато он _дорого_ штеуду Штеуд всегда и постоянно барыжит пупер -фичами в насто... весь текст скрыт [показать]
     
  • 4.43, Андрей, 05:54, 28/04/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    > Февраль 2016 и в Haswell тоже.

    Опечатался: в Skylake.

     
     
  • 5.49, Аноним, 11:01, 28/04/2016 [^] [ответить] [смотреть все]  
  • +/
    Пруф?
     
     
  • 6.57, Андрей, 16:23, 28/04/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    https www reddit com r hardware comments 44k218 intel_disables_tsx_transaction... весь текст скрыт [показать]
     
     
  • 7.60, Аноним, 19:49, 28/04/2016 [^] [ответить] [смотреть все]  
  • +/
    Чувак сидит на i3, в котором TSX и не должен быть HLE - часть TSX Судя по обсу... весь текст скрыт [показать]
     
     
  • 8.68, Андрей, 17:05, 29/04/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    Точно Он же доказательство привёл http web archive org web 20151119222457 ht... весь текст скрыт [показать]
     
     
  • 9.70, Аноним, 01:34, 02/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Ошибки на ark intel com появлялись и раньше, это далеко не первый раз Да, если ... весь текст скрыт [показать]
     
  • 4.50, Аноним, 11:08, 28/04/2016 [^] [ответить] [смотреть все]  
  • +/
    Я так понимаю, это об этом https isocpp org files papers N3919 pdf В реализац... весь текст скрыт [показать]
     
  • 1.27, Аноним, 21:54, 27/04/2016 [ответить] [смотреть все]  
  • +/
    Как это Вы не слышали? Fedora уже пакеты перевела на GCC 6
     
  • 1.28, Аноним, 22:13, 27/04/2016 [ответить] [смотреть все]  
  • –3 +/
    Опять будет куча не совместимых с стандартом вещей - зато от GNU ... весь текст скрыт [показать]
     
     
  • 2.54, Аноним, 14:30, 28/04/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Шланг их быстренько запилит, потому что удобно А остальные они где MSVS кот... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.67, Аноним, 16:03, 29/04/2016 [^] [ответить] [смотреть все]  
  • –2 +/
    Справедливости ради стоит отметить, что с поддержкой актуальных плюсовых стандар... весь текст скрыт [показать]
     
  • 1.37, Аноним, 01:22, 28/04/2016 [ответить] [смотреть все]  
  • –1 +/
    Что за уродская привычка инкрементировать мажорные версии Где времена ядра 2 6 ... весь текст скрыт [показать]
     
     
  • 2.53, Аноним, 13:26, 28/04/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    Как бы в релизах ядра не начали первую цифру версии накручивать Идея Хромого-Фа... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.65, Ярош, 23:18, 28/04/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    не ссы, от тебя все равно ничего не зависит
     
  • 1.55, inferrna, 14:47, 28/04/2016 [ответить] [смотреть все]  
  • +2 +/
    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67984 - там даже мой багрепорт учтён и пофикшен. Всем графита.-)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor