The OpenNET Project / Index page

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

Выпуск набора компиляторов GCC 5.3

04.12.2015 20:02

Вышел корректирующий релиз набора компиляторов GCC 5.3, в котором проведена работа по исправлению ошибок, регрессивных изменений и проблем с совместимостью. По сравнению с версией GCC 5.2 в GCC 5.3 отмечено 143 исправления.

Напомним, что начиная с ветки GCC 5.x в проекте внедрена новая схема нумерации выпусков: версия x.0 используется в процессе разработки, корректирующие выпуски формируются с номерами x.2.0, x.3.0 и т.д. Новые возможности развиваются в экспериментальной ветке GCC 6.0, на базе которой будет сформирован следующий значительный релиз GCC 6.1.

  1. Главная ссылка к новости (https://gcc.gnu.org/ml/gcc/201...)
  2. OpenNews: Корректирующий релиз GCC 5.2 и LLVM 3.6.2
  3. OpenNews: Увидел свет набор компиляторов GCC 5.1
  4. OpenNews: Линус Торвальдс выступил с резкой критикой GCC 4.9.0
Лицензия: CC-BY
Тип: Программы
Ключевые слова: gcc
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (41) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.1, Аноним (-), 20:27, 04/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    В последнее время очень чётко прослеживается тенденция к ускорению инкремента циферок в релизах. Всякие Chrome 201, Firefox 189, SystemShi^WD 228. Ждём GCC 42.
     
     
  • 2.11, equeim (ok), 22:02, 04/12/2015 [^] [^^] [^^^] [ответить]  
  • –4 +/
    А зачем нужно много чисел в версиях для проектов с релизами по расписанию (таких, как Firefox, Linux)? Двух вполне достаточно. А еще логичнее, чтобы в таком случае первое число обозначало дату релиза.
    К сабжу это, естественно, не относится.
     
     
  • 3.12, freehck (ok), 23:21, 04/12/2015 [^] [^^] [^^^] [ответить]  
  • +20 +/
    Ну, три числа всегда были в некотором роде "традицией". Мажорный номер версии менялся только тогда, когда нарушалась обратная совместимость, первый минорный -- когда добавлялся новый функционал, не влияющий на обратную совместимость, а третье -- для багфиксов.

    Что теперь все эти цыфири означают, я не знаю. Каждый придумывает свою нумерацию, и хрен поймёшь, что там и как меняется.

     
     
  • 4.14, Xasd (ok), 23:37, 04/12/2015 [^] [^^] [^^^] [ответить]  
  • –14 +/
    > когда добавлялся новый функционал, не влияющий на обратную совместимость

    практически всегда каждый новый функционал влияет на обратную совместимость (в лучшем случае -- чуточку ухудшая её.. в худшем -- сильно ухудшая её).

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

     
     
  • 5.17, freehck (ok), 00:28, 05/12/2015 [^] [^^] [^^^] [ответить]  
  • +6 +/
    >> когда добавлялся новый функционал, не влияющий на обратную совместимость
    > практически всегда каждый новый функционал влияет на обратную совместимость (в лучшем случае
    > -- чуточку ухудшая её.. в худшем -- сильно ухудшая её).

    Нонсенс или плохой подход к разработке.


     
  • 5.18, . (?), 00:57, 05/12/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Так было не всегда ... (С)Один старый ребе :)
     
  • 5.30, цырроз (?), 21:53, 05/12/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    теоретик из макдональдса?
     
  • 4.28, Аноним (-), 13:23, 05/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >Мажорный номер версии менялся только тогда, когда нарушалась обратная совместимость

    Ну не везде и не всегда так было. Вот, помнмится, GCC 3.4 в части C++ ABI нарушил совместимость с остальными версиями 3-ей ветки.

     
  • 3.16, Led (ok), 00:09, 05/12/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А еще логичнее, чтобы в таком случае первое число обозначало дату релиза.

    В секундах от Р.Х.?

     
     
  • 4.19, Mihail Zenkov (ok), 01:07, 05/12/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Если вам так удобно, может хоть в наносекундах от сотворения вселенной ;)
    Я обычно упакованные срезы именую так: palemoon-151201.tar.xz
     
     
  • 5.20, denius (??), 01:22, 05/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Что-то короткая у тебя история, нужно palemoon-20151201.tar.xz
     
     
  • 6.26, Mihail Zenkov (ok), 12:42, 05/12/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Зачем? Я и до 20990101 скорее всего не доживу, а исходники проектов столетней давности могут быть интересны разве что историкам.
     
  • 2.33, Онаним (?), 18:37, 07/12/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Просто люди мечутся из "крайности в крайность". В начале века в хакерско-линуксоидской среде было модно использовать версии в стиле 0.x.y, например вполне годный мессенджер Psi, которому 15 лет уже, до сих пор имеет версию 0.15.
     

  • 1.2, neon1ks (ok), 20:35, 04/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Большинство изменений в g++ связано с обеспечением поддержки с++14
    В общем, новые возможности добавляются всегда!
     
  • 1.4, neon1ks (ok), 20:41, 04/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Убил пример:
    >[оверквотинг удален]
    > G++ now supports C++14 extended constexpr
    >   constexpr int f (int i)
    >    {
    >      int j = 0;
    >      for (; i > 0; --i)
    >        ++j;
    >      return j;
    >    }
    >
    >    constexpr int i = f(42); // i is 42

     
     
  • 2.5, фыва (?), 20:46, 04/12/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Здоровья у тебя мало. Что тут особенного? Результат можно посчитать во время компиляции - можно, вот и работает.
     
     
  • 3.6, neon1ks (ok), 20:51, 04/12/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Для статических переменных?
     
     
  • 4.7, neon1ks (ok), 21:06, 04/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Для статических переменных?

    Прочитал про constexpr, но пример все равно забавный.

     
  • 4.10, фыва (?), 21:48, 04/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    В коде иногда нужно задать какие-то табличные данные, часто рассчитываемые. И вместо конструкций с #define можно и нужно использовать constexpr - теперь улучшенный и расширенный.
     
     
  • 5.21, arisu (ok), 10:25, 05/12/2015 [^] [^^] [^^^] [ответить]  
  • +5 +/
    эдак, глядишь, допилят, потом шаблоны нормальные сделают, потом нормальное метапрограммирование — и получится D.
     
     
  • 6.31, Giperonym (?), 17:43, 07/12/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    A Common Lisp, CL, когда получится?? ну ладно согласен на компилируемый в натив Clojure
     
  • 3.32, dq0s4y71 (??), 18:33, 07/12/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если результат можно посчитать во время компиляции, то почему бы компилятору его просто не соптимизировать, как это было всегда? Зачем нужна лишняя сущность? И что будет, если результат нельзя посчитать во время компиляции? Просто в тексте будет бесполезное слово constexpr?

    По-моему, С++ сейчас развивается по такому принципу: если какой-то костыль плохо выполняет свою функцию, нужно добавить ещё один костыль, который тоже будет плохо выполнять ту же функцию - но зато теперь у нас два костыля, плохо выполняющих одну и ту же функцию!

     
     
  • 4.34, Crazy Alex (ok), 19:10, 07/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Просто ты ни хрена не понимешь идеологию плюсов.
    1) Программист с constexpr точно знает, что получилось - если хотел вычисление при компиляции, но это невозможно - получай ошибку, а не вычисление в рантайме.
    2) Далеко не всегда всё, что можно вычислить при компиляции, надо вычислять. Это может быть абсолютно бессмысленно и адски долго.
     
     
  • 5.35, Mihail Zenkov (ok), 19:18, 07/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > 2) Далеко не всегда всё, что можно вычислить при компиляции, надо вычислять.
    > Это может быть абсолютно бессмысленно и адски долго.

    Так в противном случае это произойдет в рантийме, что уж совсем не хорошо. Или речь о какой-то особой ситуации?

     
     
  • 6.45, Vkni (ok), 02:28, 07/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Так в противном случае это произойдет в рантийме, что уж совсем не
    > хорошо. Или речь о какой-то особой ситуации?

    Ну берём любую расчётную программу. Очевидно, что компиляция в native code + выполнение будут быстрее интерпретации её компилятором (вычисление на этапе компиляции).

     
     
  • 7.46, Mihail Zenkov (ok), 13:57, 07/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну берём любую расчётную программу.

    Любая расчетная программа обычно при запуске принимает входные данные для расчета и запускается не один раз.

    На "одноразовой" программе - данные зашиты в код и запускается один раз - согласен, возможно, но ИМХО выигрыш будет не большой, так как на стадии компиляции компилятор в любом случае полностью разбирает каждое выражение.

     
  • 5.37, dq0s4y71 (??), 15:01, 08/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Просто ты ни хрена не понимешь идеологию плюсов.

    Проблема в том, что идеология в них заменяет здравый смысл :)

    > 1) Программист с constexpr точно знает, что получилось - если хотел вычисление при компиляции, но это невозможно - получай ошибку, а не вычисление в рантайме.

    Зачем _программисту_ об этом знать? Оптимизирует - _компилятор_. Вот путь он и думает, сможет он оптимизировать выражение или нет. А магическое слово constexpr возможности компилятора по оптимизации никак не увеличивает.

    > 2) Далеко не всегда всё, что можно вычислить при компиляции, надо вычислять. Это может быть абсолютно бессмысленно и адски долго.

    А опциями компилятора для указания, что надо оптимизировать, а что нет, программисты на С++ уже не пользуются?

     
     
  • 6.38, Mihail Zenkov (ok), 15:07, 08/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> 1) Программист с constexpr точно знает, что получилось - если хотел вычисление при компиляции, но это невозможно - получай ошибку, а не вычисление в рантайме.
    > Зачем _программисту_ об этом знать? Оптимизирует - _компилятор_. Вот путь он и
    > думает, сможет он оптимизировать выражение или нет. А магическое слово constexpr
    > возможности компилятора по оптимизации никак не увеличивает.

    Смысл примерно тот же что и с "const int x = 3;" вместо "int x = 3;" - программист указывает, что данный кусок должен быть вычислен в compile time и если это невозможно он хочет быть явно уведомленным об этом.

     
     
  • 7.39, dq0s4y71 (??), 15:43, 08/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    То есть всё, что не constexpr, он теперь не будет пытаться оптимизировать, что ли?
     
     
  • 8.43, Mihail Zenkov (ok), 16:25, 08/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Оптимизируется все Но если программист указал constexpr, значит для него важно,... текст свёрнут, показать
     
     
  • 9.44, dq0s4y71 (??), 18:07, 08/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, хорошо Но оптимизация кода не является частью языка Зачем захламлять синта... текст свёрнут, показать
     

  • 1.9, Аноним (-), 21:45, 04/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это ж теперь всю систему почти пересобирать.
     
     
  • 2.13, Michael Shigorin (ok), 23:31, 04/12/2015 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Это ж теперь всю систему почти пересобирать.

    Кому систему, а кому репозиторий...

     
     
  • 3.15, asavah (ok), 23:54, 04/12/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    как будто вы это руками делаете ...
    но если вы это таки делаете руками (отлов тараканов сборки определённых пакетов не в счёт), то есть не запилили полную автоматизацию всего и вся - советую заняться чем-то более совместимым с вашим IQ например вышиванием крестиком.
     
     
  • 4.22, Сергей (??), 11:09, 05/12/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > как будто вы это руками делаете ...

    Головой. Вы руками, видимо.

     
     
  • 5.25, Аноним (-), 12:42, 05/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Он просто этого не делает, и пользует ваши труды.
    Работать негр, солнце еще высоко.
     
  • 4.36, Онаним (?), 19:42, 07/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > как будто вы это руками делаете ...
    > но если вы это таки делаете руками (отлов тараканов сборки определённых пакетов
    > не в счёт), то есть не запилили полную автоматизацию всего и
    > вся - советую заняться чем-то более совместимым с вашим IQ например
    > вышиванием крестиком.

    В виде примера чего-то более совместимого с IQ человека, собирабщего всю систему руками ожидал увидеть скорее чего-то типа проектирования космических кораблей или тому подобного...

     

  • 1.23, Аноним (-), 12:09, 05/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А кто-нибудь читал сообщение с описанием новой схемы нумерации версий gcc? Можете объяснить? Я правильно понимаю, что схема следующая?

    1. каждый год увеличивается мажорная версия,
    2. первый релиз с новой мажорной версией имеет минорный номер 1 (то есть не 5.0.0, а 5.1.0),
    3. третье число версии всегда ноль (никаких 5.1.1 или 5.2.4, только 5.1.0 и 5.2.0).

     
     
  • 2.24, arisu (ok), 12:11, 05/12/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А кто-нибудь читал сообщение с описанием новой схемы нумерации версий gcc?

    а смысл? зараза «кроличьих релизов» и до них добралась, так что без разницы уже.

     
  • 2.27, Andrey Mitrofanov (?), 13:19, 05/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > А кто-нибудь читал сообщение с описанием новой схемы нумерации версий gcc? Можете
    > объяснить? Я правильно понимаю, что схема следующая?

    Я к этому отношусь примерно как к сборнику анекдотов физики шутят: они исключительно головастые ребята, но юмор их тяжеловат.  Ну, не понимаю - и ладно.  И раньше я не понимал их стейджей, теперь и нумерации с трансцедентными нулями не буду понимать.  Невелика потеря.

    - - - Ну и хрен с ним, с плащом.

     
  • 2.29, Аноним (-), 18:24, 05/12/2015 [^] [^^] [^^^] [ответить]  
  • +/
    "идея" аналогично тому как "обзвать 4.x" Линусу про ядро - пришла ~ примерно.
     

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



    Спонсоры:
    MIRhosting
    Fornex
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру