LINUX.ORG.RU

Gcc


97

0

Всего сообщений: 61

Dovecot переходит на CLang

 , , ,

Группа Open Source

Автор популярного IMAP/POP3 сервера Dovecot давно хотел перейти на CLang, но многие важные проверки на возможные ошибки не были реализованы, например проверка на корректность формата в printf() из-за этого и использовался GCC.

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

Были проведены тесты, которые показали, что код собранный CLang работает на 7% быстрее.

Похоже, что это первый из наиболее крупных проектов, которые официально сказали что CLang/LLVM это mainstream.

>>> Оригинал (dovecot.org)

catap
()

Разрешено использование C++ в GCC

 , , , , ,

Группа GNU's Not Unix

Вчера в списке рассылки GCC появилось важное сообщение по поводу использования языка программирования C++ при разработке GCC (GNU Compiler Collection, а не сам компилятор языка C).

Марк Митчелл (Mark Mitchell), один из основных разработчиков GCC:

Я рад сообщить, что руководящий комитет GCC и FSF одобрили использование C++ в самом GCC. Конечно, нет никаких причин использовать возможности С++ только потому, что мы умеем это делать. Главная цель - предоставить пользователям более качественные компиляторы, а не кодовую базу на C++ для самих себя.

Перед тем, как мы действительно начнём использовать C++, мы должны определиться с набором правил, которыми нужно будет руководствоваться при использовании C++ для разработки GCC. Я считаю, что для начала мы должны минимизировать список разрешённых возможностей С++, чтобы не подвергать разработчиков GCC, не знакомых с C++, таким резким переменам в основном языке разработки компиляторов. Мы всегда сможем расширить использование С++ позднее, если появится такая необходимость.

На данный момент разработчики ограничиваются стандартом C++98 и использованием типа long long для 64-битных целых чисел. Использование множественного наследования, шаблонов (тех, которые не входят в стандартную библиотеку C++) и исключений, скорее всего, будет запрещено. Это мотивировано тем, что это будет сложно для программистов на C, а также тем, что сами программисты C++ могут с лёгкостью допустить ошибки в таких вещах.

Так как язык C++ достаточно обширен, то Марк Митчелл предложил составить список того, что разрешается использовать, а не того, что использовать нельзя. На данный момент необходимо составить некоторые информационные нормативы, а не очередной стандарт ISO.

Все желающие поучаствовать в разработке нормативов могут связаться с разработчиками GCC. На данный момент предполагается сделать это в виде странички в Wiki.

>>> Официальный анонс (gnu.org)

MuZHiK-2
()

Google выпустил Native Client SDK

 , ,

Группа Open Source

Native Client - это кроссплатформенная технология с открытым исходным кодом от Google, позволяющая запуск нативного кода C/C++ в браузере. SDK основан на GNU Compiler Collection и доступен для Linux, Windows и Mac OS X. Поддерживаемые платформы x86, x86_64 и ARM. Разработчики заявляют, что технология Native Client безопаснее Flash и JavaScript, а так же значительно превосходит их по скорости выполнения. На текущий момент доступны клиент-плагины для браузеров Chrome, Safari, Firefox, и Opera.

>>> Подробности (chromium.org)

tr0ll
()

LLVM 2.7

 , , , , ,

Группа Open Source

Low-Level Virtual Machine - инфраструктура компиляторов для различных языков программирования, кодогенераторов байт-кода и двоичного исполняемого кода для различных платформ.

  • Clang
    • Умеет собирать сам себя
    • Улучшена поддержка Objective-C ABI
    • Поддержка ARM для Linux и Darwin ABI
    • Множество улучшений в анализаторе кода
  • DragonEgg - плагин для gcc, заменяющий встроенные в gcc оптимизаторы и кодогенераторы аналогами от LLVM. Поддерживает C, C++, Fortran, Ada и слегка Obj-C.
  • llvm-gcc работает с gcc-4.5 и поддерживает ARM v7 NEON
  • Новый логотип
  • Ассемблер и дисассемблер машкода
  • И множество других улучшений в кодогенераторах, оптимизаторах, интерпретаторах и JIT, кодоанализаторах и поддержке ARM...

LLVM развивается силами корпорации Apple и сообщества. Исходники доступны под лицензией BSD.

>>> Подробности (llvm.org)

shahid
()

GCC 4.5.0 released

 , ,

Группа GNU's Not Unix

GNU и команда разработки GCC рады представить релиз GNU Compiler Collection версии 4.5

В новой версии:

  • Добавлена поддержка плагинов позволяющих менять функциональность компиляторов без пересборки GCC
  • Поддержка оптимизации при компоновке (LTO)
  • Добавлена поддержка библиотеки MPC для улучшения математическо-расчетной части компилятора
  • Поддержка Intel Atom, а также наборов инструкций для новейших процессоров Интел и AMD (XOP,FMA4,MOVBE,LWP)
  • Поддержка новых процессоров ARM, AVR, Coldfire, Atmega, MeP, MIPS, Picochip (см. подробности)
  • Улучшения стандарта C++0x в libstdc++
  • Значительно улучшена подсистема векторизации и параллелизации кода Graphite
  • много других изменений

Анонс релиза

>>> Подробности изменений (gnu.org)

Sylvia
()

GCC-плагин DragonEgg прошёл тест на самосборку

 , , ,

Группа Open Source

Разработчики проекта LLVM сообщили о новом достижении - GCC-плагин DragonEgg достиг состояния, позволяющего пересобрать самого себя. В начале с использованием DragonEgg были пересобраны исходные тексты GCC-4.5, LLVM и dragonegg, а затем эксперимент был повторен с задействованием для пересборки свежескомпилированного бинарного файла.

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

В настоящий момент до достаточно высокого уровня доведена работоспособность DragonEgg для языков Си и Си++, частично реализована поддержка Fortran и Ada, хуже обстоят дела с поддержкой Obj-C и Obj-C++, много работы предстоит проделать для поддержки Java. На текущей стадии развития DragonEgg поддерживает архитектуры x86-32 и x86-64, может работать в Linux и Darwin.

Запись в блоге LLVM

>>> Взято с Opennet.ru (opennet.ru)

jeuta
()

Вышел GCC 4.3.4

 , ,

Группа GNU's Not Unix

Вышел корректирующий релиз open-source набора компиляторов для различных языков программирования, разработанный в рамках проекта GNU (gnu.org)GNU Compiler Collection 4.3.4.

По сравнению с GCC 4.3.3 главные изменения коснулись исправления накопившихся регрессий и серьезных ошибок найденных в предыдущей версии.

Следующая корректирующая версия ветки 4.3.x ожидается, вскоре после релиза 4.4.2.

Релиз 4.3.4 уже доступен на всех FTP (gnu.org) мира.

>>> Подробности (gnu.org)

fedkoff
()

Выпущен самообучающийся компилятор Milepost GCC

 , milepost,

Группа Open Source
"Корпорация IBM сообщила о доступности для всех желающих первого в мире компилятора, обладающего способностью машинного самообучения. Компилятор Milepost GCC с открытым исходным кодом (open source) оптимизирует программные приложения, что, в результате, приводит к сокращению сроков разработки и большому выигрышу в производительности приложений.
<...>
Как ожидалось, новый компилятор (результат совместной работы IBM и ее бизнес-партнеров из финансируемого Евросоюзом консорциума Milepost) резко сократит сроки вывода на рынок новых программных продуктов. Приложения теперь можно быстрее настраивать под целевые архитектуры, сокращая цикл разработки. Когда компания, например, хочет разработать новую модель мобильного телефона, она, как правило, нанимает группу разработчиков приложений на многие месяцы, чтобы созданное ими встраиваемое программное обеспечение работало на приемлемом уровне производительности. Компилятор Milepost GCC может сократить время, необходимое для достижения этого уровня, почти в 10 раз.
<...>
Компилятор Milepost GCC доступен для свободной загрузки с Web-сайта консорциума http://www.milepost.eu, начиная с 25 июня этого года. В проекте консорциума принимают участие IBM Haifa Research Lab, Израиль; Университет Эдинбурга (University of Edinburgh), Великобритания; ARC International Ltd., Великобритания; CAPS Enterprise, Франция; и INRIA, Франция".

>>> Подробности (pcmag.ru)

Sanitar
()

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

 , ,

Группа GNU's Not Unix

Вышел набор компиляторов 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 ошибок.

>>> Подробности (opennet.ru)

tempuser001
()

Применение специальных возможностей GCC в ядре Linux

 ,

Группа Документация
В ядре Linux® используется ряд особых возможностей набора компиляторов GNU (GCC) — от возможностей упрощения и более короткой записи до предоставления компилятору подсказок для оптимизации кода. Откройте для себя некоторые из этих особых возможностей GCC и узнайте, как их использовать в ядре Linux.

>>> Подробности (ibm.com)

IBM_dW
()

Вышел GCC 4.4.0

 ,

Группа GNU's Not Unix

Хочется отметить следующие изменения, касающиеся поддержки языков Си и C++:

  • Опция -Wparentheses теперь позволяет легко обнаружить популярную ошибку, связанную с низким приоритетом побитовых операций «И» и «ИЛИ»
  • Опция -Wsequence-points теперь работает внутри условий if/while/for, и позволяет легко обнаружить неопределенное поведение, связанное с незнанием некоторыми неопытными программистами понятия sequence points
  • Улучшения в поддержке грядущего стандарта ISO C++0x, как со стороны компилятора, так и со стороны libstdc++
  • Возможность автоматической оптимизации циклов для более эффективного использования кэшей
  • Новый распределитель регистров, разработанный Владимиром Макаровым
  • Поддержка OpenMP 3.0

Начиная с версии GCC 4.4, планировалось изменить лицензию рантайм библиотеки. Поэтому GCC длительное время находился в «замороженном» состоянии, ожидая, пока FSF рассмотрит и одобрит новую лицензию. В результате разработчики уделили много времени устранению регрессий, и на данный момент имеется всего лишь 76 незакрытых багов.

>>> Подробности (gnu.org)

Manhunt
()

Сравнение компиляторов GCC3, GCC4 и Sun Studio

 , , sunstudio

Группа Linux General

По просьбе корпорации Sun, аналитики Phoronix.com провели сравнение эффективности работы компиляторов GCC 3.4.3, GCC 4.0.2, и Sun Studio 12. В тестах обе версии gcc вели себя схоже. Результаты измерений Sun Studio и скомпилированного ею кода по отношению к GCC:

  • PHP собирается из исходников быстрее в 1,7 раза.
  • LAME MP3 конвертирует wav -> mp3 в три раза дольше, а oggenc жмёт медленнее только на четверть.
  • Все сборки GnuPG шифруют на примерно одинаковой скорости. С SQLite ситуация аналогичная.
  • GraphicsMagick, собранный Sun Studio, работает в 2-4 раза быстрее, чем сборки от GCC.

Sun Studio - это набор компиляторов от Sun под ОС Linux и OpenSolaris для языков C, C++ и Fortran. Компиляторы владеют различными оптимизациями, в т.ч. OpenMP. Сравнение проходило на четырехядерном x86_64-процессоре под ОС OpenSolaris.

>>> Подробности (phoronix.com)

shahid
()

В Haiku OS появился нативный GCC4

 , ,

Группа Open Source
Препятствием к портированию программ в Haiku OS было отсутствие обновленной версии GCC4 компилятора. Можно воспользоваться GCC 4.1.2, но кросс-компиляция при этом может быть болезненной и разочаровывающей.

Майкл Лоц решил эту задачу - GCC 4.3.3 стал "родным" для Haiku. Теперь это реальность.

>>> Подробности (haiku-os.org)

gaux
()

Знакомимся с GCC 4

 ,

Группа Документация
GCC не стоит на месте. Выходят новые процессорные архитектуры, исследуются и реализуются более эффективные способы генерации и оптимизации кода, что делает GCC все более мощным. Закономерный результат - появление четвертой версии, положившей начало новой ветке. Данная статья рассказывает об основополагающих новшествах GCC 4 и доказывает, что настало время перейти на новую версию, если вы еще этого не сделали.

>>> Подробности (ibm.com)

IBM_dW
()

Компиляция

 ,

Группа Документация
В заметке "Как происходит компиляция" (автор Mike Diehl, перевод А.Тарасова) подробно объясняется ход процесса компиляции исходного текста в исполняемую программу. В первой части рассмотрены этапы компиляции, выполняемые компилятором GCC - обработка препроцессором, трансляция, ассемблирование и линковка. Во второй части процесс линковки рассмотрен более подробно. Также описаны системные вызовы Linux и то, как компилятор GCC проводит оптимизации.

>>> Подробности (rus-linux.net)

vikos
()

GCC 4.3.2

 , ,

Группа GNU's Not Unix
Вышел новый релиз GNU коллекции компиляторов GCC 4.3.2.

Изменений довольно много
http://gcc.gnu.org/gcc-4.3/changes.html

Официальный рапорт http://gcc.gnu.org/ml/gcc/2008-08/msg...

Это список докладов о проблемах GCC с багтрака, которые исправлены в версии 4.3.2.
Список может быть неполным, т.к. некоторые проблемы требовали срочного решения и не попали в него.

http://gcc.gnu.org/bugzilla/buglist.c...

>>> Подробности (gnu.org)

Bod
()

C vs. JVM's benchmark

 , ,

Группа Java
Стэфан Краузе в своём блоге
http://www.stefankrause.net/
опубликовал новые тесты производительности кода, написанного на C и на Java.

В тесте используются компилятор GCC 4.2.3 и различные версии JVM (Sun JDK 6, IBM JDK 6, Excelsior JET, Apache Harmony, BEA JRockit).

Тесты проводились на ноутбуке Dell Insprion 9400 с 2GB RAM и процессором Intel Core 2 2GHz под Ubuntu 8.04 (x86). Исходные коды прилагаются.

>>> Подробности (stefankrause.net)

iZEN
()

Коммерческая IDE Sourcery G++

 , ,

Группа Проприетарное ПО
Компания CodeSourcery выпустила коммерческую интегрированную среду разработки приложений Sourcery G++, основанную на инструментах GNU (gcc, gdb, binutils) с интерфейсом на базе Eclipse.

SGPP представлена в трёх редакциях:

  • Professional - присутствуют все компоненты, включая IDE, обновления и безграничную техническую поддержку (эта редакция стоит $399);
  • Personal - аналогично предыдущему, но без поддержки;
  • Lite - бесплатная версия, включает в себя только утилиты командной строки.

Итак, что же представляет собой это чудо промышленного шпионажа?

  • GNU C и C++ компиляторы. CodeSourcery улучшила этот набор компиляторов, добавив поддержку большего числа процессоров и улучшив оптимизирующие алгоритмы.
  • GNU Ассемблер и компоновщик (linker). SGPP также включает в себя скрипты для компоновщика для различных конфигураций.
  • Runtime-библиотеки. SGPP предоставляет glibc как стандарт де-факто, uClibc для систем uClinux, а также Newlib.
  • GNU Отладчик.
  • Debug Sprites. Предоставляют возможности отладки оборудования через JTAG и ICE устройства.
  • Симулятор набора инструкций. Включает в себя СНИ из QEMU и позволяет запускать приложения, скомпилированные для другой архитектуры.
  • GNU/Linux прекомпоновщик (prelinker). Это постобработчик, который может значительно уменьшить время запуска скомпилированных приложений; CodeSourcery изменили прекомпоновщик так, чтобы он работал также на не-GNU/Linux системах, в т.ч. и Windows.
  • Eclipse IDE. Предоставляет визуальную среду программирования, включая редактор с подсветкой синтаксиса, визуальный отладчик, и др.
  • Поддержка целевых архитектур: ARM, ColdFire, fido, MIPS, Power Architecture, Stellaris, x86.
  • Поддержка целевых ОС: GNU/Linux, uClinux.
  • Регулярные обновления.
  • Техническая поддержка.

Подробнее о Sourcery G++

>>> Подробности (linuxdevices.com)

alex_custov
()

Изучаем параметры GCC

 ,

Группа Документация
Опубликован перевод статьи Getting Familiar with GCC Parameters.

В статье рассмотрены следующие параметры GCC (GNU C Complier):

  • Параметры, относящиеся к оптимизации.
  • Параметры, относящиеся к вызову функций.
  • Параметры, относящиеся к отладке.
  • Параметры, относящиеся к препроцессору.

>>> Ссылка на перевод (netsago.org)

n0xi0uzz
()

GCC-4.3.0

 

Группа GNU's Not Unix
Вышла новая версия GNU Compiler Collection - 4.3.0 с большим количеством изменений по сравнению с веткой 4.2.X (инкрементальный патч для версии 4.2.3 в bz2-архиве занимает 35Мб!). Изменения претерпел оптимизатор (который обещает быть быстрее и генерировать лучший код), функциональность (добавлено много новых параметров командной строки), поддержка процессоров и платформ и многое другое, с чем все желающие могут ознакомиться по следующим ссылкам:

изменения для ветки 4.3: http://gcc.gnu.org/gcc-4.3/changes.html
ссылка для скачивания: ftp://gcc.gnu.org/pub/gcc/releases/gc...
инкрементальный патч: ftp://gcc.gnu.org/pub/gcc/releases/gc...

>>> Подробности (gnu.org)

frame
()