URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 105778
[ Назад ]

Исходное сообщение
"Выпуск набора компиляторов GCC 5.3"

Отправлено opennews , 04-Дек-15 20:27 
Вышел (https://gcc.gnu.org/ml/gcc/2015-12/msg00056.html) корректирующий релиз набора компиляторов GCC 5.3 (https://gcc.gnu.org/gcc-5/), в котором проведена работа по исправлению ошибок, регрессивных изменений и проблем с совместимостью. По сравнению с версией GCC 5.2 в GCC 5.3 отмечено 143 исправления (https://gcc.gnu.org/gcc-5/changes.html).

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

URL: https://gcc.gnu.org/ml/gcc/2015-12/msg00056.html
Новость: http://www.opennet.me/opennews/art.shtml?num=43457


Содержание

Сообщения в этом обсуждении
"Выпуск набора компиляторов GCC 5.3"
Отправлено Аноним , 04-Дек-15 20:27 
В последнее время очень чётко прослеживается тенденция к ускорению инкремента циферок в релизах. Всякие Chrome 201, Firefox 189, SystemShi^WD 228. Ждём GCC 42.

"Выпуск набора компиляторов GCC 5.3"
Отправлено equeim , 04-Дек-15 22:02 
А зачем нужно много чисел в версиях для проектов с релизами по расписанию (таких, как Firefox, Linux)? Двух вполне достаточно. А еще логичнее, чтобы в таком случае первое число обозначало дату релиза.
К сабжу это, естественно, не относится.

"Выпуск набора компиляторов GCC 5.3"
Отправлено freehck , 04-Дек-15 23:21 
Ну, три числа всегда были в некотором роде "традицией". Мажорный номер версии менялся только тогда, когда нарушалась обратная совместимость, первый минорный -- когда добавлялся новый функционал, не влияющий на обратную совместимость, а третье -- для багфиксов.

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


"Выпуск набора компиляторов GCC 5.3"
Отправлено Xasd , 04-Дек-15 23:37 
> когда добавлялся новый функционал, не влияющий на обратную совместимость

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

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


"Выпуск набора компиляторов GCC 5.3"
Отправлено freehck , 05-Дек-15 00:28 
>> когда добавлялся новый функционал, не влияющий на обратную совместимость
> практически всегда каждый новый функционал влияет на обратную совместимость (в лучшем случае
> -- чуточку ухудшая её.. в худшем -- сильно ухудшая её).

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



"Выпуск набора компиляторов GCC 5.3"
Отправлено . , 05-Дек-15 00:57 
Так было не всегда ... (С)Один старый ребе :)

"Выпуск набора компиляторов GCC 5.3"
Отправлено цырроз , 05-Дек-15 21:53 
теоретик из макдональдса?

"Выпуск набора компиляторов GCC 5.3"
Отправлено Аноним , 05-Дек-15 13:23 
>Мажорный номер версии менялся только тогда, когда нарушалась обратная совместимость

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


"Выпуск набора компиляторов GCC 5.3"
Отправлено Led , 05-Дек-15 00:09 
> А еще логичнее, чтобы в таком случае первое число обозначало дату релиза.

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


"Выпуск набора компиляторов GCC 5.3"
Отправлено Mihail Zenkov , 05-Дек-15 01:07 
Если вам так удобно, может хоть в наносекундах от сотворения вселенной ;)
Я обычно упакованные срезы именую так: palemoon-151201.tar.xz

"Выпуск набора компиляторов GCC 5.3"
Отправлено denius , 05-Дек-15 01:22 
Что-то короткая у тебя история, нужно palemoon-20151201.tar.xz

"Выпуск набора компиляторов GCC 5.3"
Отправлено Mihail Zenkov , 05-Дек-15 12:42 
Зачем? Я и до 20990101 скорее всего не доживу, а исходники проектов столетней давности могут быть интересны разве что историкам.

"Выпуск набора компиляторов GCC 5.3"
Отправлено Онаним , 07-Дек-15 18:37 
Просто люди мечутся из "крайности в крайность". В начале века в хакерско-линуксоидской среде было модно использовать версии в стиле 0.x.y, например вполне годный мессенджер Psi, которому 15 лет уже, до сих пор имеет версию 0.15.

"Выпуск набора компиляторов GCC 5.3"
Отправлено neon1ks , 04-Дек-15 20:35 
Большинство изменений в g++ связано с обеспечением поддержки с++14
В общем, новые возможности добавляются всегда!

"Выпуск набора компиляторов GCC 5.3"
Отправлено neon1ks , 04-Дек-15 20:41 
Убил пример:
>[оверквотинг удален]
> 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


"Выпуск набора компиляторов GCC 5.3"
Отправлено фыва , 04-Дек-15 20:46 
Здоровья у тебя мало. Что тут особенного? Результат можно посчитать во время компиляции - можно, вот и работает.

"Выпуск набора компиляторов GCC 5.3"
Отправлено neon1ks , 04-Дек-15 20:51 
Для статических переменных?

"Выпуск набора компиляторов GCC 5.3"
Отправлено neon1ks , 04-Дек-15 21:06 
> Для статических переменных?

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


"Выпуск набора компиляторов GCC 5.3"
Отправлено фыва , 04-Дек-15 21:48 
В коде иногда нужно задать какие-то табличные данные, часто рассчитываемые. И вместо конструкций с #define можно и нужно использовать constexpr - теперь улучшенный и расширенный.

"Выпуск набора компиляторов GCC 5.3"
Отправлено arisu , 05-Дек-15 10:25 
эдак, глядишь, допилят, потом шаблоны нормальные сделают, потом нормальное метапрограммирование — и получится D.

"Выпуск набора компиляторов GCC 5.3"
Отправлено Giperonym , 07-Дек-15 17:43 
A Common Lisp, CL, когда получится?? ну ладно согласен на компилируемый в натив Clojure

"Выпуск набора компиляторов GCC 5.3"
Отправлено dq0s4y71 , 07-Дек-15 18:33 
Если результат можно посчитать во время компиляции, то почему бы компилятору его просто не соптимизировать, как это было всегда? Зачем нужна лишняя сущность? И что будет, если результат нельзя посчитать во время компиляции? Просто в тексте будет бесполезное слово constexpr?

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


"Выпуск набора компиляторов GCC 5.3"
Отправлено Crazy Alex , 07-Дек-15 19:10 
Просто ты ни хрена не понимешь идеологию плюсов.
1) Программист с constexpr точно знает, что получилось - если хотел вычисление при компиляции, но это невозможно - получай ошибку, а не вычисление в рантайме.
2) Далеко не всегда всё, что можно вычислить при компиляции, надо вычислять. Это может быть абсолютно бессмысленно и адски долго.

"Выпуск набора компиляторов GCC 5.3"
Отправлено Mihail Zenkov , 07-Дек-15 19:18 
> 2) Далеко не всегда всё, что можно вычислить при компиляции, надо вычислять.
> Это может быть абсолютно бессмысленно и адски долго.

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


"Выпуск набора компиляторов GCC 5.3"
Отправлено Vkni , 07-Янв-16 02:28 
> Так в противном случае это произойдет в рантийме, что уж совсем не
> хорошо. Или речь о какой-то особой ситуации?

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


"Выпуск набора компиляторов GCC 5.3"
Отправлено Mihail Zenkov , 07-Янв-16 13:57 
> Ну берём любую расчётную программу.

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

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


"Выпуск набора компиляторов GCC 5.3"
Отправлено dq0s4y71 , 08-Дек-15 15:01 
> Просто ты ни хрена не понимешь идеологию плюсов.

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

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

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

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

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


"Выпуск набора компиляторов GCC 5.3"
Отправлено Mihail Zenkov , 08-Дек-15 15:07 
>> 1) Программист с constexpr точно знает, что получилось - если хотел вычисление при компиляции, но это невозможно - получай ошибку, а не вычисление в рантайме.
> Зачем _программисту_ об этом знать? Оптимизирует - _компилятор_. Вот путь он и
> думает, сможет он оптимизировать выражение или нет. А магическое слово constexpr
> возможности компилятора по оптимизации никак не увеличивает.

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


"Выпуск набора компиляторов GCC 5.3"
Отправлено dq0s4y71 , 08-Дек-15 15:43 
То есть всё, что не constexpr, он теперь не будет пытаться оптимизировать, что ли?

"Выпуск набора компиляторов GCC 5.3"
Отправлено Mihail Zenkov , 08-Дек-15 16:25 
> То есть всё, что не constexpr, он теперь не будет пытаться оптимизировать,
> что ли?

Оптимизируется все. Но если программист указал constexpr, значит для него важно, что бы этот кусок был вычислен именно в compile time и вычисления в runtime для него неприемлемы.


"Выпуск набора компиляторов GCC 5.3"
Отправлено dq0s4y71 , 08-Дек-15 18:07 
Ну, хорошо. Но оптимизация кода не является частью языка. Зачем захламлять синтаксис директивами оптимизатора? Для того, чтобы "сказать" что-то компилятору, есть давно известные способы, например __attribute__ или #pragma. Почему бы их просто не стандартизировать, раз уж на то пошло? И следует ли теперь ожидать в С++ появления таких ключевых слов, как always_inline, cold, hot, noreturn, deprecated и т.д. - всего того, что влезает в __attribute__((...))?

"Выпуск набора компиляторов GCC 5.3"
Отправлено Аноним , 04-Дек-15 21:45 
Это ж теперь всю систему почти пересобирать.

"Выпуск набора компиляторов GCC 5.3"
Отправлено Michael Shigorin , 04-Дек-15 23:31 
> Это ж теперь всю систему почти пересобирать.

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


"Выпуск набора компиляторов GCC 5.3"
Отправлено asavah , 04-Дек-15 23:54 
как будто вы это руками делаете ...
но если вы это таки делаете руками (отлов тараканов сборки определённых пакетов не в счёт), то есть не запилили полную автоматизацию всего и вся - советую заняться чем-то более совместимым с вашим IQ например вышиванием крестиком.

"Выпуск набора компиляторов GCC 5.3"
Отправлено Сергей , 05-Дек-15 11:09 
> как будто вы это руками делаете ...

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


"Выпуск набора компиляторов GCC 5.3"
Отправлено Аноним , 05-Дек-15 12:42 
Он просто этого не делает, и пользует ваши труды.
Работать негр, солнце еще высоко.

"Выпуск набора компиляторов GCC 5.3"
Отправлено Онаним , 07-Дек-15 19:42 
> как будто вы это руками делаете ...
> но если вы это таки делаете руками (отлов тараканов сборки определённых пакетов
> не в счёт), то есть не запилили полную автоматизацию всего и
> вся - советую заняться чем-то более совместимым с вашим IQ например
> вышиванием крестиком.

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


"Выпуск набора компиляторов GCC 5.3"
Отправлено Аноним , 05-Дек-15 12:09 
А кто-нибудь читал сообщение с описанием новой схемы нумерации версий gcc? Можете объяснить? Я правильно понимаю, что схема следующая?

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


"Выпуск набора компиляторов GCC 5.3"
Отправлено arisu , 05-Дек-15 12:11 
> А кто-нибудь читал сообщение с описанием новой схемы нумерации версий gcc?

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


"Выпуск набора компиляторов GCC 5.3"
Отправлено Andrey Mitrofanov , 05-Дек-15 13:19 
> А кто-нибудь читал сообщение с описанием новой схемы нумерации версий gcc? Можете
> объяснить? Я правильно понимаю, что схема следующая?

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

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


"Выпуск набора компиляторов GCC 5.3"
Отправлено Аноним , 05-Дек-15 18:24 
"идея" аналогично тому как "обзвать 4.x" Линусу про ядро - пришла ~ примерно.