LINUX.ORG.RU

GCC 4.6.0

 , ,


0

1

Вышла новая версия GNU Compiler Collection — 4.6.0.

Новшества:

  • улучшения в использовании памяти и скорости компиляции;
  • поддержка языка программирования Go;
  • новый уровень оптимизации -Ofast, который включает в себя все ключи из -O3 и ключи, позволяющие получить ещё более оптимизированный код, например -ffast-math;
  • улучшения в LTO (Link-Time Optimization);
  • улучшения в IPO (межпроцедурная оптимизация);
  • на 32-х битных системах теперь по умолчанию задействован ключ -fomit-frame-pointer (кроме -Os).

Добавлена поддержка следующих процессоров:

  • Intel Core i3/i5/i7 (-march=corei7, -mtune=corei7);
  • Intel Core i3/i5/i7 с новым набором инструкций — AVX (-march=corei7-avx, -mtune=corei7-avx);
  • AMD Bobcat (-march=btver1, -mtune=btver1).

Анонс

>>> Полный список изменений

★★★★

Проверено: hibou ()
Последнее исправление: post-factum (всего исправлений: 7)
Ответ на: комментарий от megabaks

Пришла весна, megabaks дружелюбен как никогда :)

По сабжу: радует. Традиционно ждем ебилда в портеже. :)

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

Эт гентушникам важно, а для нас нормальных людей это второстепенно... мы пока мороженого поедим.

Гентушники с презрением недоверием смотрят на 4.5.х версию, пользуясь 4.4.х в стабильной ветке. А тут новый выброс быдлокода в виде 4.6 версии. Пущай с начала от ошибок избавятся с регрессией производительности, несовместимости и прочих «прелестей».

В общем, гентушники пока пива попьют, пока вы мороженного поедите, пока Штальманн мозолей поест, пока евойный фонд приведет свой гсс 4,6 в божеский вид. Так-то.

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

>Гентушники с недоверием смотрят на 4.5.х версию, пользуясь 4.4.х в стабильной ветке.
говори за себя
у всех нормальных гентушнегов уже давным давно 4.5

megabaks ★★★★
() автор топика
Ответ на: комментарий от megabaks
sylvia:~:$gcc29 --version |head
2.95.4
sylvia:~:$egcs --version |head
egcs-2.91.66
sylvia:~:$cc3 --version |head
cc3 (GCC) 3.4.6 /argenta/
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

sylvia:~:$cc41 --version |head 
cc41 (GCC) 4.1.3 20080704 (Red Hat 4.1.2-27)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

sylvia:~:$cc42 --version |head 
cc42 (GCC) 4.2.5 /argenta/
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

sylvia:~:$cc43 --version |head 
cc43 /argenta/ 4.3.6
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

sylvia:~:$cc44 --version |head 
cc44 /argenta/ 4.4.6
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

sylvia:~:$cc45 --version |head 
cc /argenta/ 4.5.3
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

sylvia:~:$cc46 --version |head 
cc46 /argenta/ 4.6.0
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

sylvia:~:$clang --version |head 
clang version 2.8 (branches/release_28)
Target: i386-pc-linux-gnu
Thread model: posix
sylvia:~:$icc9 --version |head 
icc (ICC) 9.1 20080314
Copyright (C) 1985-2008 Intel Corporation.  All rights reserved.

sylvia:~:$icc10 --version |head 
icc (ICC) 10.1 20100527
Copyright (C) 1985-2010 Intel Corporation.  All rights reserved.

sylvia:~:$icc11 --version |head 
icc11 (ICC) 11.1 20100806
Copyright (C) 1985-2010 Intel Corporation.  All rights reserved.

sylvia:~:$icc12 --version |head 
icc12 (ICC) 12.0.0 20101116
Copyright (C) 1985-2010 Intel Corporation.  All rights reserved.

привет!

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

у всех нормальных гентушнегов уже давным давно 4.5

Т.е. в генте стабильная ветка существует только для того чтобы она была? Все нормальные гентушники используют ~arch?

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

> Т.е. в генте стабильная ветка существует только для того чтобы она была? Все нормальные гентушники используют ~arch?
Размаскировать отдельный пакет религия запрещает?

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

ну как-то так
т.н. нестабильная ветка ничуть не менее стабильна
гента она такая - всю кривость рук хозяина берёт на себя

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

Размаскировать отдельный пакет религия запрещает?

Это противоречит самой идее использования стабильной ветки.

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

Если прям безумно страшно за стабильность (ну, например, дебианщик только перешёл в генту, ему ж страшно новое использовать, ему ведь вдолбили, что у арчеров всё постоянно падает, а версии пакетов в ~arch практически идентичны версиям пакетов из стабильной ветки арча).

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

Зачем за всех расписываться, я не гентушник, но blender-svn, самый свежий chromium, cairo с патчами я себе из AUR собирал. В ubuntu тоже не считал зазорным собрать ядрышко поновее, или ещё какую-то мелочёвку. Я люблю свежий, пусть и не стабильный, софт. Да мне не влом даже PKGBUILD руками править в emacs'е, так что, это разве тянет на какое-то отклонение?

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

да я тоже совсем старыми не пользуюсь особо,
не удаляю, потому что не мешают, так сейчас идет на 90% - 4.6.0
кое что с 4.5.3(pre), отдельные вещи другими

$cat /etc/portage/package.compilers
sys-boot/grub cc42 c++42 (старый кусок кода - старый gcc, два сапога пара, пусть будет)
media-gfx/graphviz cc44 c++44 (были проблемы с 4.5)
kde-base/pykde4 cc44 c++44 (4.5 - медленный, 4.4 собирает побыстрее)
net-analyzer/wireshark cc44 c++44 (аналогично)
app-emulation/virtualbox-modules cc45 c++45 (как ядро)
x11-drivers/nvidia-drivers cc45 c++45 (ядро)
dev-db/mysql-gui-tools cc43 c++43 (старый пакет)
sys-apps/paludis cc44 c++44 (слишком часто пересобирать, 4.4 быстрее, надо будет 4.6 попробовать следующую сборку)
net-libs/webkit-gtk cc43 c++43 (стабильнее, быстрее собрать)
app-emulation/wine cc43 c++45 (были проблемы с памятью, сейчас может и пофиксили, но настройки остались)
app-emulation/qemu cc43 c++45 (уже не помню зачем)
media-video/mplayer cc43 c++45 (с 4.6 свистит звук, 4.4 не слишком быстрый код компилит, 4.5 выпадает с ошибкой распределения регистров в одном файле)
net-libs/xulrunner cc44 c++44 (просто быстрее чем 4.5)
dev-db/mysql-workbench cc44 c++44 (быстрее 4.5)
media-video/dirac cc45 c++45 (не собралось с 46)
media-video/transcode cc45 c++45 (аналогично дираку)
dev-libs/boost cc44 c++44 (не помню уже зачем)
www-client/chromium cc43 c++43 (быстрее пересобрать)
media-gfx/inkscape cc43 c++43 (кажется с 46 не собралось, поставила чтобы пошустрее собралось)

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

> так что, это разве тянет на какое-то отклонение?
Сейчас тебе расскажут, что раз у тебя арч, значит ты красноглазый пыонэр, так как все «адекватные» люди пользуются стабильным как высохшее дерь^W^W^Wдебианом, или накрайняк LTS убутной.

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

Да ну?

Ну да. Проблемами стабилизации дистрибутива занимается его разработчик, цель использования стабильных веток - перекладывание проблем на разработчика дистрибутива. А использование отдельных пакетов из тестируемой/нестабильной ветки создаёт смесь, которой нет у разработчиков и тут уже стоит рассматривать возможность использования тестируемой ветки.

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

ну, например, дебианщик только перешёл в генту, ему ж страшно новое использовать

Вообще-то большинство дебианщиков на рабочей станции держит тестинг, а там уже 4.5.2. А есть и люди, которые силят на Сиде. В экспериментальной ветке 4.6.0-rc1 и его можно поставить, не ломая остальную систему в добавок к прочим. Дебиан не смог бы породить столько удачных форков и не стал бы успешен сам, если бы не был достаточно гибок в вопросе установки ПО.

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

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

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

гы, ты риальне не знаешь, что такое LAPACK, или просто троллишь? если риальне - то принимай сочувствия.

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

> все что больше O3 приравнивается к O3, а почему там так прописано... ну уж не знаю, традиция, всегда так было

Иными словами авторы gcc сами сделали себе проблемы, а авторы glibc и прочего довели эту глупость до логического завершения.

bbk123 ★★★★★
()

Мне вот интересно во времена GCC 3.3 (может быть и более поздних версиях) говорили что GCC уже не торт, что кодогенерация и её скорость ухудшились, и ъ-разработчики юзают старую версию 2.95.

Сейчас как обстоит дело с этим вопросом?

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

>(sca)lapack, arpack, spherepack, ani2d

это всего лишь средства разработки, которые можно заменить (например, Eigen 3, написанный на крестах, предоставляет интерфеqс BLAS, LAPACK в разработке) без потери совместимости с существующими проектами

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

не вот интересно во времена GCC 3.3 (может быть и более поздних версиях) говорили что GCC уже не торт, что кодогенерация и её скорость ухудшились, и ъ-разработчики юзают старую версию 2.95.

Сейчас:

не вот интересно во времена GCC 4.5 (может быть и более поздних версиях) говорили что GCC уже не торт, что кодогенерация и её скорость ухудшились, и ъ-разработчики юзают старую версию 4.4.

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

по секрету скажу что GCC 3.4.6 по скорости (Си) пока еще не догнала ни одна из веток 4.х (4.6 не сравнивала пока), а уж более компактный и быстрый код с -Os 4.x вообще далеко сзади )

2.95 достаточно медленные, причем заметно, процентов на 30% код хуже работает.

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

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

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

>лучше -march=native -mtune=generic

опять пример Пачо Рамоса и Хай Жей Лю ?
я уже обьяснила что это был частный случай.
-march=native (-mtune=native) by design должно быть лучше
частные случаи для отдельных процессоров gcc сам определит

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

блин, ты так пишешь, как будто это для любого проца прописная истина

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

ну у них на T*** так
у меня на E7200 тоже так
у кого-то (не помню ник) на амд тоже так
имхо стоит задуматься

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

нет - та вика ни на что не годится

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

там выше (или не в этом треде) есть ссылочка на багзиллу, что у товарища с Pentium Dual Core -march=native предлагает использовать -mtune=generic, на что у этого товарища возникает вопрос, а почему генерик а не нокона?

На что ему Лю отвечает что для 4.4 для ноконы и прескотта лучше использовать генерик, потому что оно быстрее

итого имеем частности
1) версия 4.4
2) процессор пентиум дуал коре

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

>имхо стоит задуматься

ага, кривой GCC косячит с шедулингом инструкций для корок так, что даже generic быстрее

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

да ради бога, тестировать никто не запрещает,
только факты такие

1) успех с одной версией гцц и конкретной програмой (даже конкретной версией программы с привязкой к определенным use) не означает что будет успех
с другой программой
с другой версией гцц
с другими use флагами

и уж особенно если результат в пределах погрешности

2) для компиляции в бинарных дистрибутивах -mtune=generic является оптимальным вариантом, даже при сборке под некую целевую группу процессоров (-msse3 например)

3) процессоры достаточно неоднородны, тех же корок существует куча вариаций

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

gzip
qt - over qtperf
емнип ещё что-то...
давно было - не помню я

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

вот кстати повод заценить пресловутые оптимизации Core2 в GCC 4.6...
мне совсем не охота правда этим заниматься, визуально - быстрее (но это субьективно)
нужно замеры делать... может провороникс сделает.... они любят это


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

похороникс вообще закопать надо - они тесты делать не умеют
только-только начали писать опции для фс - да и то маны не осилили
какие они нафиг тестеры!?...

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

под 586 только мандрива и сузя )
многие на i486 равняются, там нет -mtune, так что можно использовать -mtune=generic (как в убунту) или -mtune=i686 (как Патрик)

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

у них времени много для тестов , хотя методики конечно иногда не совсем корректны.

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