LINUX.ORG.RU

Вышел GCC 4.8.0

 


1

4

Вышла новая версия набора компиляторов GNU — 4.8.0. Среди нововведений:

  • Теперь для сборки GCC требуется компилятор С++.
  • Формат отладочной информации по умолчанию изменён на DWARF4, который поддерживается в GDB 7.5, Valgrind 3.8.0 и elfutils 0.154.
  • Добавлен новый уровень оптимизации -Og, предназначенный для быстрой компиляции и отладки, обеспечивая при этом приемлемую производительность.
  • Убран ряд узких мест в оптимизаторе, что существенно ускорило компиляцию чрезвычайно больших функций.
  • Добавлены AddressSanitizer (быстрый детектор ошибок работы с памятью) и ThreadSanitizer (детектор гонок данных).
  • Улучшены сообщения об ошибках, исходная строка выводится полностью, а колонка с ошибкой отмечается знаком ^. Опция ftrack-macro-expansion=2 теперь включена по умолчанию, что показывает стек раскрытия макросов:
    t.c:1:94: error: invalid operands to binary < (have ‘struct mystruct’ and ‘float’)
     #define MYMAX(A,B)    __extension__ ({ __typeof__(A) __a = (A); __typeof__(B) __b = (B); __a < __b ? __b : __a; })
                                                                                                  ^
    t.c:7:7: note: in expansion of macro 'MYMAX'
       X = MYMAX(P, F);
    
  • Улучшена поддержка стандарта C++11: поддерживается ключевое слово thread_local, синтаксис атрибутов, спецификаторов выравнивания и наследование конструкторов. Также добавлена опция -std=C++1y для поддержки будущего стандарта, пока она добавляет только возможность автоматического определения типа результата в определении функций.
  • Реализована предварительная версия языка Go 1.1.
  • Добавлена поддержка архитектуры AArch64.

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

★★★★★

Проверено: post-factum ()
Последнее исправление: post-factum (всего исправлений: 8)

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

Что-то я еще в своей жизни ни разу не видел нетормозной программы на java.

Открой для себя Opera Mini и over 100500 приложений для Android.

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

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

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

Программировать прикладные вещи на C++ — вообще утопия. Как только ведутся такие проекты, как Mozilla и OpenOffice?! Это же самобичевание и в конечном счёте неминуемое самоубийство с отягчающими.

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

template <typename, typename, typename> friend struct vec;

Красота!

pv4 ★★
()

Спасибо clang за то, что он создал здоровую конкуренцию. Теперь и жирный монстр в лице gcc решил пошевелить жопой и обзавелся весьма полезными фичами.

andreyu ★★★★★
()
Ответ на: комментарий от Pavval
public class HelloWorld {
  public static void main(String[] args) {
    System.out.println("Hello world!");
  }
}
templarrr ★★★★★
()
Ответ на: комментарий от iZEN

Открой для себя Opera Mini и over 100500 приложений для Android.

Я уже 2.5 года как пользователь Android. Причем всегда на топовых телефонах. Давай ты мне не будешь рассказывать сказки, что оно не тормозит? 2 секунды на запуск приложений и видимый отклик это не есть «не тормозит».

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

2 секунды на запуск приложений и видимый отклик это не есть «не тормозит».

Напиши такое же на C++ и познай истинный дзен.

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

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

Перестань теоретизировать и не путай ошибки и предупреждения. Ошибка - это несоответствие программы языку, а warning - не более чем желание компилятора поговорить. В твоем случае «defined but not used» ни к чему плохому не приведет.

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

Топовые по железу, в первую очередь проц и память.

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

warning - не более чем желание компилятора поговорить

В случае Си это не так.

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

Кто ждет-то? Ты лично?

Я и другие. Чтобы ощутить разницу между нативным кодом и кодом, порождённым JIT'ом. А вы перестали даже надеятся и поэтому ничего не ждёте?

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

Кстати, eclipse это типичный пример ужасающего java-приложения. В нем плохо всё, начиная от наиубогейшего гуя и заканчивая тормозами.

Reset ★★★★★
()

Ну вот и настало время узнать, как там дела у PCC? По сайту ничерта не понять...

LamerOk ★★★★★
()

Теперь для сборки GCC требуется компилятор С++.

Охренеть, если раньше GCC собирали только для того, чтобы в системе был компилятор C++, дак теперь и для того, чтобы собрать gcc нужен компилятор C++.. Зачем тогда вообще нужен gcc, когда есть полно альтернатив с подобным функционалом ?

Sharezil
()

Короче в компиляторе из основных изменений - улучшенная отладка (dwarf и т.п.). Ну прикольно, как для компилятора...

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

Полно альтернатив в лице clang, что-ли? Или проприетарных компиляторов? То-то BSD-шники до недавнего времени свои ОС, на С написанные, gcc собирали.

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

На современном Лиспе, очевидно. Emacs, правда, заGNUлся. :))

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

AF ★★★
()

жэсточайшэ ждем ебилдов в основном дереве

punya ★★
()
Последнее исправление: punya (всего исправлений: 1)
Ответ на: комментарий от Reset

Кстати, eclipse это типичный пример ужасающего java-приложения. В нем плохо всё, начиная от наиубогейшего гуя и заканчивая тормозами.

Ура, Reset стал прежним, адекватным. С возвращением.

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

А вы перестали даже надеятся и поэтому ничего не ждёте?

А я и не начинал надеяться на Eclipse-in-C++.

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

Ура, Reset стал прежним, адекватным.

...А главные спонсоры Eclipse — Google, Novell, IBM, Oracle — стали неадекватными?.. :-)

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

...А главные спонсоры Eclipse — Google, Novell, IBM, Oracle — стали неадекватными?.. :-)

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

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

Просто на этот раз его троллинг тебе понравился.

В данном случае я с ним полностью согласен. Недавно ради интереса запустил сборку eclipse от гугеуля - это был реальный пипец. Такого тормозного и кривого говна я давно не видел.

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

Для тебя топовое == «4,5» экран"?

OMAP 4460 - подтормаживает.
Tegra 3 - подтормаживает.
Exynos 4-ядерный - подтормаживает.

tell me moar.

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

Это не более чем личное мнение. Но есть и другие мнения.

Да почти у всех мнение такое.
Плюются, матерятся, но альтернативы нет.

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

В данном случае я с ним полностью согласен. Недавно ради интереса запустил сборку eclipse от гугеуля

Плакал. И эти люди типа имеют мнение об Eclipse.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)

Раньше срачи про компиляторы были гораздо лучше. Особенно когда новости Сильвтя писала. ЛОР уже не тот.

По теме: когда же для Фортрана реализуют поддержку строк произвольной длины?

Vudod ★★★★★
()

Вышел GCC 4.8.0

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

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

Мнение хомячков и леммингов волнует зрителя. Они его вообще для чего используют? Я, например, каждый день использую параллельно Eclipse CDT и VS2010 для одного и того же C++ проекта (150 подпроектов, миллионы loc). И эклипсом пользоваться намного удобнее, благодаря разным мелочам. И не тормозит.

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

queen3 ★★★★★
()
Последнее исправление: queen3 (всего исправлений: 1)
Ответ на: комментарий от iZEN

Если за системой следят не быдлокодеры, то ничего страшного. Жёсткий контроль творит чудеса.

queen3 ★★★★★
()

Такие новости убеждают что Free Pascal было классной идеей, и правильно реализованной.

tp_for_my_bunghole
()

Улучшены сообщения об ошибках, исходная строка выводится полностью, а колонка с ошибкой отмечается знаком ^. Опция ftrack-macro-expansion=2 теперь включена по умолчанию, что показывает стек раскрытия макросов:

Винде теперь точно капец, пердовые технологии!

anonymous
()

Улучшены сообщения об ошибках, исходная строка выводится полностью

Джва года ждал!

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

Собрал clang
Собрал gcc с помощью clang
Переключился на gcc
Собрал мир с помощью gcc
Удалил clang

Так?

P.S. Кстати говоря, с помощью чего там clang собирается?

AlexCones ★★★
()
Последнее исправление: AlexCones (всего исправлений: 1)
Ответ на: комментарий от Begemoth

Они же чуть в С++11 не попали. Точнее говоря, попали, но вылетели. Так что для 14 было бы как раз.

[предполагаю] В Go никак не придумают добавить что-то похожее, но лучшее чем С++ generics по той же причине, что и в С++ не могут придумать нормальные концепты, чтобы этими generics было бы удобно пользоваться. [/предполагаю]

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

Я думаю, что дело в ядре. iOS же не подтормаживает.

Я боюсь даже подумать, насколько будет там BSD тормозить.
Да и iOS тоже далеко не образец плавности.

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

а warning - не более чем желание компилятора поговорить. В твоем случае «defined but not used» ни к чему плохому не приведет

Надо ультимативней, как в Go. Если переменная определена, но не используется, то это ошибка, т.к. либо ты описался где-то, либо это комментарий. Ведь что может в рабочем коде делать неиспользуемая переменная? Для всяких security-анализов и прочего нужен был бы спец флаг типа отладки.

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