LINUX.ORG.RU

Официальный релиз набора компиляторов GCC 4.4.0

 , ,


0

0

Вышел набор компиляторов GCC 4.4.0 с измененным лицензионным соглашением на runtime - «GCC RUNTIME LIBRARY EXCEPTION», убирающим некоторые ограничения лицензии GPLv3 для Runtime компонент набора компиляторов, что позволяет генерировать в GCC любой код, независимо от лицензии под которой он будет распространяться (например, в качестве runtime теперь можно использовать код для обеспечения работы виртуальных машин, обрабатывающих байткод, в том числе Java).

Основные изменения по сравнению с веткой GCC 4.3.x:

  • Добавлен оптимизатор Graphite, основанный на полиэдральном промежуточном представлении - технологии оптимизации для обеспечения параллельного выполнения циклических операций. Оптимизация касается всех языков, поддерживаемых GCC. Разработка позволяет значительно увеличить производительность обычных приложений на многоядерных процессорах, созданных без использования специальных библиотек распараллеливания, например, Threading Building Blocks.
  • Добавлены новый аллокатор регистров (IRA - integrated register allocator) и новый планировщик расстановки инструкций.
  • Новые опции оптимизации: "-findirect-inlining", "-ftree-switch-conversion", "-ftree-builtin-call-dce" и "-fconserve-stack";
  • Новые опции предупреждения о потенциальных ошибках в коде: "-Wparentheses", "-Wsequence-points", "-Wconversion", "-Wuninitialized" и т.д.
  • Реализована поддержка версии 3 спецификации OpenMP (API для параллельных вычислений);
  • Улучшена поддержка грядущего С++ стандарта C++0x, например, в libstdc++ добавлены заголовочные файлы chrono, condition_variable, cstdatomic, forward_list, initializer_list, mutex, ratio, system_error и thread;
  • Произошли множественные изменения в поддержке языков C/C++/Fortran;
  • Улучшена поддержка уже поддерживаемых архитектур: добавлены средства оптимизации для CPU ARM Cortex-A9, Cortex-R4 и Cortex-R4F, PowerPC e300c2, e300c3, e500mc, IBM System z10 EC/BC; добавлена поддержка встроенных функций Intel AES, Intel PCLMUL, Intel AVX; улучшена поддержка архитектур MIPS, AVR, IA-32/x86-64, IA-32/IA64, PowerPC и т.д.
  • GCC стал считать ошибками некоторые программисткие «решения», который компилировались ранее. Например, теперь не работает «#elif» без аргумента; «cstdio» больше не подразумевает включение «string.h», «ios.h», «iomanip.h», «streambuf.h» и «locale.h», а «stdint.h» не включает «string.h» и «ios.h». ; строковые функции больше не принимают «char*» вместо «const char*»; ужесточены требования к инициализации C++ классов.

Разработчики Fedora уже ранее заявили о том, что версия 11 дистрибутива будет полностью скомпилирована GCC 4.4.0. Однако, работа предстоит немалая: при попытке пересборки новым компилятором 6228 пакетов дистрибутива было зафиксировано 559 ошибок.

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



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

Ответ на: комментарий от Sylvia

у меня тоже ноут, но хочется в нативном 64 битном режиме работать)

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

>Gentoo 64 хороша еще и тем , что более гибко управляются зависимости пакетов.

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

>и собираю я с -march=pentium4 , для ноута.

это что за ноут такой у тебя ? (мну собирает nocona)

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

>локальными оверлеями с исправленными ебилдами
Мне уже два года хватает того, что есть.

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

asus a6r, cel 1.7, 2 Gb RAM
и да.. ужасная ATI x200m

не устраивает в нем только общая глючность железок, тяжелый и сравнительно недолго работает от аккумулятора, если и буду менять , то только из за веса и батареек

Sylvia ★★★★★
()

>строковые функции больше не принимают "char*" вместо "const char*"

Упал, не встал. (с) Вообще-то там

Some of the standard C++ library include files have been edited to use replacement overloads for some common C library functions (if available), with the goal of improving const-correctness: functions passed a const char* return const char*.

Переводчика на мыло.

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

>http://www.tdragon.net/recentgcc/
>А ты им пробовал что нить собирать? О_о У меня Кутя в итоге >сегфолтилась при ресайзе окошка %)

Qt 4.5.0 собирается без "грязных хаков" , но оффициально троллями поддерживается только gcc 3.4.x(mingw)
Честно говоря запарил dllimport баг при передекларировании функции (gcc 4.3.x)

kitov ★★★
()

Ура, товарищи! Все на компиляцию GCC! Не забываем предварительно собрать библиотеки ppl и cloog.

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

> Когда-же MinGW переведут на 4-ую ветку GCC???

Не нужно MinGW. У виндузятников свой нестандартный cl. Пускай это мелкософт сделает на основе gcc нормальный компайлер.

GCC - это для Юниксов и UNIX-like.

Интересно, а мелкософт, видать, тоже для своего Office 2008 gcc пользует. :)

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

>К portage - прикручиваются (нужно только порыть нужный bashrc)

У меня per-packages cflags для icc и gcc.

Теперь бы придумать, как _разные_ gcc использовать для разных пакетов. Тогда решится до кучи проблема с несобираемыми gcc-4.3 пакетами :)

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

Ага, вроде, придумал как. Надо будет проверить на практике :)

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

> небольшая проверка производительности кода на С

Где-то тут Аккермана считали, с 4.4-pre сильно быстрее считался.

mv ★★★★★
()

автоматическое распараллеливание
ты еще не успел об этом подумать , а оно уже есть

kto_tama ★★★★★
()

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

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

> Вот что-что, а gcc я в системе обновлять не буду, хватит, наэксперементировался в детстве, так что буду ждать новую версию дистрибутива.

Ставишь в /usr/local/bin/gcc-4.4 и все дела. Новый gcc существует параллельно с версией из дистра.

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

> Интересно, а мелкософт, видать, тоже для своего Office 2008 gcc пользует. :)

Пользует, пользует. Ты думаешь Office for Mac чем компилируется? Или, например, Silverlight для мака, SSCLI. Все это MinGW. Только майкрософту сильно навороченный компилятор C++ не нужен. Поэтому они пользуют то, что есть.

alexeiz
()

> "cstdio" больше не подразумевает включение "string.h", "ios.h", "iomanip.h", "streambuf.h" и "locale.h", а "stdint.h" не включает "string.h" и "ios.h"

Велика и могучее анлийскую языка, я их понимать мало-мало?

Всё строго наоборот: включение <ios> или <string> больше не подключает <stdint.h>, аналогично и с первой частью. Переводчики...

kemm
()

> строковые функции больше не принимают "char*" вместо "const char*"

Ещё один бред воспалённого мозга аффтара. Теперь нельзя сделать что-то типа:

const char *blah = ...;
char *p;

...

p = strchr(blah, ' ');


Но никто не запрещает (естественно) делать так:
int foo(const char *);

...
char *bar;
...
return foo(bar);

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

>Вот что-что, а gcc я в системе обновлять не буду, хватит, наэксперементировался в детстве, так что буду ждать новую версию дистрибутива.

Ну, я, вроде, только что per-package компиляторы произвольные у себя прописал. Так что буду ждать 4.4 на пощупать. Оптимизация для многоядерников - это очень и очень мне интересно :)

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

> Теперь бы придумать, как _разные_ gcc использовать для разных пакетов. Тогда решится до кучи проблема с несобираемыми gcc-4.3 пакетами :)

# gcc-config -l
# gcc-config DESIRED_GCC

Или имелось ввиду автоматическое переключение при сборке?

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

>Или имелось ввиду автоматическое переключение при сборке?

Естественно :)

KRoN73 ★★★★★
()

Кода вышла ветка 4.3, я переполз на нее. Свои проекты собирал с ее помощью. Народ жаловался, что у них в системе все еще 4.1.x и бинарник, естественно, у них не работает.
Пришлось откатиться 4.1.2 попутно пересобрав пол мира в системе.

В дженту уже достаточно давно 4.3.2 размаскана. Полагаю, приблизительно так же и в других дистрибутивах. Следовательно теперь можно смело переходить и на 4.3.x, и на 4.4.x.
Поправьте меня.

p.s. Да, под виндой использую mingw32-3.x.

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

Я знаю что Office 2008 на GCC делается. В отличие от Office 2007.

То есть, вместо аранживки GCC под Windows мелкософт поддерживает два очень сильно отличающиеся друг от друга офисных продукта, причем для яббла я не видел фирменного русского офиса.

Хотя в GNU/Linux (и WindoZe) кроме gcc есть еще и Tiny C. Но для очень специфичных задач, типа начальной сборки и т.п..

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

> Переводчики - некомпетентные идиоты:

Эхм, не без того, выходит.

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

>Хотя в GNU/Linux (и WindoZe) кроме gcc есть еще и Tiny C.

Да, есть tcc. Вот только "вкусное" со "сладким" сравнивать не надо:

tcc - tiny C compiler

gcc - GNU compiler collection

Чем отличается "C compiler" от "compiler collection" - сам догадаешся или "разжевать"?

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