GCC 4.5.2, набор компиляторов GNU
|
ЭЖД
*nix`оид
[SoftoRooMTeaM]
Группа: Наши Люди Сообщений: 11.935 Регистрация: 18.09.2004 Пользователь №: 1.679
Респектов: 789
| GCC 4.4.0 GNU Compiler Collection (обычно используется сокращение GCC) — набор компиляторов для различных языков программирования, разработанный в рамках проекта GNU. GCC является свободным программным обеспечением, распространяется фондом свободного программного обеспечения (FSF) на условиях GNU GPL и GNU LGPL и является ключевым компонентом GNU toolchain. Он используется как стандартный компилятор для свободных UNIX-подобных операционных систем, и в нескольких проприетарных операционных системах, в том числе Apple Mac OS X. Изначально названный GNU C Compiler, он поддерживал только язык Си. Позднее, GCC был расширен для компиляции исходных кодов на таких языках программирования как C++, Objective-C, Java, Fortran, и Ada. С версии 4.2.2 GCC перешёл на лицензию GPLv3. Начало GCC было положено Ричардом Столлманом, который реализовал первый вариант GCC в 1985 на нестандартном и непереносимом диалекте языка Паскаль; позднее компилятор был переписан на языке Си Леонардом Тауэром (англ. Leonard H. Tower Jr.) и Ричардом Столлманом, и выпущен в 1987 как компилятор для проекта GNU, который сам по себе являлся свободным программным обеспечением. Разработка GCC курируется Free Software Foundation. В настоящее время GCC поддерживается группой программистов со всего мира. GCC является лидером по количеству процессоров и операционных систем, которые он поддерживает. Будучи официальным компилятором системы GNU, включая варианты системы, построенные на ядре Linux (GNU/Linux), GCC также является главным компилятором для сборки ряда других операционных систем, среди них: различные варианты BSD, ReactOS, Mac OS X, NeXTSTEP и BeOS. GCC часто выбирается для разработки программного обеспечения, которое должно работать на большом числе различных аппаратных платформ. Различия между «родными» для каждой из аппаратных платформ компиляторами приводят к трудностям при разработке кода, который бы корректно компилировался разными компиляторами, а кроме того, при использовании различных компиляторов сильно усложняются сборочные скрипты, которые должны собирать ПО для всех аппаратных платформ. При использовании GCC для компиляции кода под разные платформы будет использован один и тот же синтаксический анализатор. Поэтому если удалось собрать программу для одной из целевых платформ, то велика вероятность, что программа нормально соберётся и для других платформ. В версии 4.1.1 (выпущенной 24 мая 2006), стандартный компилятор включал в себя front-end’ы для: - Ada (GCC для Ada aka GNAT)
- Си
- C++ (C++ для GCC aka G++)
- Fortran (GCC для Fortran aka gfortran)
- Java (GCC для Java aka GCJ)
- Objective-C
Front end для CHILL был добавлен ранее, но из-за недостаточной поддержки был исключён из набора. До релиза версии 4.0 front-end’ом для Fortran был G77, который поддерживал лишь FORTRAN 77. В новых версиях G77 был исключён в пользу нового GFortran frontend который поддерживает Fortran 95. Так же существуют front-end’ы для Pascal, D, Modula-2, Modula-3, Mercury, VHDL и PL/I. Материал из Википедии — свободной энциклопедииВ релизе 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++ классов.
Home_ http://gcc.gnu.org/Downloads (~61 Mb)_ ftp://ftp.gnu.org/gn...-4.4.0.tar.bz2 | |
| |
28.07.2009 - 15:55 |
ЭЖД
*nix`оид
[SoftoRooMTeaM]
Группа: Наши Люди Сообщений: 11.935 Регистрация: 18.09.2004 Пользователь №: 1.679
Респектов: 789
| gcc 4.4.1 Доступна новая версия набора компиляторов GCC - 4.4.1, содержащая набор исправлений найденных ошибок, регрессивных изменений и проблем с совместимостью. Downloads (~60 Mb)_ ftp://gcc.gnu.org/pu...-4.4.1.tar.bz2 | |
| |
15.10.2009 - 20:46 |
ЭЖД
*nix`оид
[SoftoRooMTeaM]
Группа: Наши Люди Сообщений: 11.935 Регистрация: 18.09.2004 Пользователь №: 1.679
Респектов: 789
| | |
| |
21.01.2010 - 20:07 |
ЭЖД
*nix`оид
[SoftoRooMTeaM]
Группа: Наши Люди Сообщений: 11.935 Регистрация: 18.09.2004 Пользователь №: 1.679
Респектов: 789
| | |
| |
15.04.2010 - 19:40 |
ЭЖД
*nix`оид
[SoftoRooMTeaM]
Группа: Наши Люди Сообщений: 11.935 Регистрация: 18.09.2004 Пользователь №: 1.679
Респектов: 789
| GCC 4.5.0 GCC 4.5.0 в котором представлен новый оптимизатор на этапе компоновки, реализована экспериментальная поддержка некоторых возможностей стандарта C++0x, продолжена интеграция наработок проекта Graphite с реализацией поддержки автоматического распараллеливания операций. Основные изменения: - Общие нюансы:
- Для сборки GCC теперь требуется математическая библиотека MPC (multiprecision library) для более точных вычислений на этапе компиляции;
- Часть старых архитектур была объявлена устаревшей и будет полностью исключена в версии 4.6.0: IRIX до версии 6.5, Solaris 7, Tru64 Unix до версии 5.1, более подробно читайте об этом с списке рассылки;
- Убрана поддержка систем, объявленных устаревшими в версии GCC 4.4.0;
- Из релиза исключены утилиты protoize и unprotoize;
- Улучшились возможности по генерации отладочного кода, в связи с чем требуется GDB версии не ниже 7.0;
- Для x86 архитектур код с плавающей точкой, генерируемый согласно ужесточенным требованиям стандарта C99, будет работать гораздо медленней, чем в старых версиях GCC. Для решения этой проблемы используйте ключ компиляции -fexcess-precision=fast;
- Атрибут функции noinline более не гарантирует то, что GCC не создаст клон функции - для предотвращения создания клона появился новый атрибут noclone. Клонирование функции обозначает, что создаётся дубликат функции при некоторых обстоятельствах, например, когда известно значение одного из атрибутов функции;
- Новые возможности оптимизации:
- Флаг компиляции -save-temps теперь может использовать дополнительный аргумент. Так, при использовании опций -save-temps и -save-temps=cwd GCC будет писать временные в текущую рабочую директорию, основываясь на расположении исходников. При -save-temps=obj временные файлы будут сохраняться в туже директорию, куда были сохранены объектные файлы (-o). Это позволит компилировать одно и тоже дерево исходников в разные директории.
- Файлы с отладочной информацией теперь будут сохраняться туда же, куда были сохранены объектные файлы;
- Для компиляции сложных арифметических выражений теперь используется библиотека MPC, что позволило более точно высчитывать их результат;
- Появилась новая опция межфайловой оптимизации при линковке файлов -flto. Эта опция заставляет компилятор добавлять в каждый объектный файл некоторую секцию .ELF, и когда затем происходит линковка файла GCC, заметив эту секцию выполняет оптимизацию всех объектных файлов как-будто если бы это был един файл исходников;
- Подсистема Graphite теперь позволяет включать автоматическую параллезацию с помощью опции -floop-parallelize-all;
- Переписана инфраструктура оптимизации на основе restrict qualified pointers, что привело к генерации более производительного кода. Также была включена оптимизация кода для этой возможности при использовании флага компиляции -fno-strict-aliasing;
- Улучшен код функций, генерируемый для уровней -O2 и -Os: если встречаются прототипы функции, параметры которых затем нигде не используются то тогда эти параметры не передаются, а аргументы передаваемые по указателю передаются по значению.
- GCC теперь оптимизирует код исключений.
Среди прочих изменений нужно отметить улучшенную поддержку стандарта C++0x, улучшенные возможности выдачи сообщений об ошибках на этапе компиляции, улучшение компиляции кода C++, использующего темплейты и многое другое. Downloads (~64 Mb)_ ftp://gcc.gnu.org/pu...-4.5.0.tar.bz2 | |
| |
1.05.2010 - 9:08 |
ЭЖД
*nix`оид
[SoftoRooMTeaM]
Группа: Наши Люди Сообщений: 11.935 Регистрация: 18.09.2004 Пользователь №: 1.679
Респектов: 789
| GCC 4.4.4 Проведена работа по исправлению ошибок, регрессивных изменений и проблем с совместимостью. С момента выхода версии 4.4.3 отмечено 72 исправления. Downloads (~61,5 Mb)_ ftp://gcc.gnu.org/pu...-4.4.4.tar.bz2 | |
| |
1.08.2010 - 12:53 |
ЭЖД
*nix`оид
[SoftoRooMTeaM]
Группа: Наши Люди Сообщений: 11.935 Регистрация: 18.09.2004 Пользователь №: 1.679
Респектов: 789
| GCC 4.5.1 Проведена работа по исправлению ошибок, регрессивных изменений и проблем с совместимостью. С момента выхода версии 4.5.0 отмечено 132 исправления. Downloads (~64,5 Mb)_ ftp://gcc.gnu.org/pu...-4.5.1.tar.bz2 | |
| |
4.10.2010 - 17:39 |
ЭЖД
*nix`оид
[SoftoRooMTeaM]
Группа: Наши Люди Сообщений: 11.935 Регистрация: 18.09.2004 Пользователь №: 1.679
Респектов: 789
| GCC 4.4.5 проведена работа по исправлению ошибок, регрессивных изменений и проблем с совместимостью. С момента выхода версии 4.4.4 отмечено 35 исправлений, большинство из которых связанно с устранением внесенных ранее регрессивных изменений. Отдельно можно отметить исправление ошибки, приводящей к проблемам при работе новых Linux-ядер, собранных в GCC 4.4.x (ошибка также исправлена в ветках 4.5.x и 4.3.x). Downloads (~61,6 Mb)_ ftp://gcc.gnu.org/pu...-4.4.5.tar.bz2 | |
| |
18.12.2010 - 16:26 |
ЭЖД
*nix`оид
[SoftoRooMTeaM]
Группа: Наши Люди Сообщений: 11.935 Регистрация: 18.09.2004 Пользователь №: 1.679
Респектов: 789
| GCC 4.5.2 Отмечено 75 исправлений, большинство из которых связанно с устранением внесенных ранее регрессивных изменений. Downloads (~64,7 Mb)_ ftp://gcc.gnu.org/pu...-4.5.2.tar.bz2 | |
| |
|
|