Pull to refresh

Поприветствуем GCC 4.6

Reading time 1 min
Views 5.6K
imageВозрадуйтесь братия и сестры! Очередной релиз несомненно одного из самых значимых проектов был выпущен на свободу. Итак 25 марта версия 4.6 увидела свет.

Давайте кратко посмотрим, что интересного разработчики GCC предлагают нам.
  • Link Time Optimization. По умолчанию оптимизация происходит только на уровне юнита компиляции (файла), но с новой версией GCC вы можете оптимизировать бинарный код на уровне приложения. Код для LTO имелся еще в 4.5, но разработчики посчитали реализацию сырой и не включили в предыдущий релиз. Сейчас же LTO работает отлично на больших опенсорсных проектах (GCC, Mozilla) — время попробовать ее и на вашем проекте. LTO ведет к значительному сокращению конечного файла, а также увеличивает скорость работы приложения. Но ничего не дается бесплатно — происходит увеличение размера промежуточных (*.o) файлов и растет потребность компилятора в памяти.
  • Улучшение скоростных характеристик самого компилятора. Видимо это является ответом на критику со стороны Clang/LLVM. Теперь GCC компилирует ~ на 10% быстрее и требует меньше памяти.
  • Добавлена экспериментальная поддержка некоторых фич из будущих стандартов C++0x и C1X.
  • Появился frontend для языка Go. Скажем спасибо Ину Тейлору.
  • Добавлена поддержка процессоров Cortex-M4.
  • Теперь GCC корректно работает с Core Foundation на MacOSX. Это позволяет использовать версию 4.6 вместо устаревшей (4.2) из XCode.
  • Реализован SplitStack на платформе x86/64. Теперь не нужно выделять огромный неделимый кусок памяти для стека процесса. SplitStack позволяет выделять память под стек динамически в куче. Это дает возможность масштабировать количество процессов/co-routines в 32-битном аддресном пространстве до нескольких миллионов.
Tags:
Hubs:
+68
Comments 24
Comments Comments 24

Articles