Pull to refresh

Состоялся релиз LLVM 3.1

Compilers
22 мая состоялся релиз LLVM 3.1, семейства компиляторных инструментов, построенных на модульной основе. Проект активно развивается как альтернатива GCC такими компаниями, как Apple и Google.

Наиболее заметные изменения включают в себя улучшенную поддержку нового стандарта C++'11 Clang'ом (включая лямбды, списки инициализации, константные выражения, пользовательские литералы и атомики); появление AddressSanitizer — инструмента для динамического отлова ошибок работы с памятью; серьёзные улучшения времени компиляции и появление новых фич для ARM архитектуры; заметно улучшенная поддержка архитектуры MIPS (включая MIPS64).
image

Для тех, кому интересны подробности — добро пожаловать под кат.

Напомню, что главный инструмент LLVM — это Clang, «родной» для платформы Mac компилятор языков C / C++ / Objective C. Компилятор также доступен на других основных платформах — Linux и Windows. Правда, поддержка Windows до сих пор носит экспериментальный характер. Этот компилятор выгодно отличается от конкурентов скоростью работы и мощной и точной диагностикой ошибок. Для тех, кто ищет альтернативу GCC, но не хочет отказываться от open-source продуктов, новый релиз — это отличный повод попробовать этот компилятор.

Наверно, главной интересной фичей в LLVM 3.1 является появление AddressSanitizer среди стандартных тулов — инструмента для динамического поиска ошибок работы с памятью. Этот инструмент, рождённый в недрах Гугла, позволяет поймать переполнения буфера (в куче, на стеке, в глобалах) и use-after-free ошибки, при относительно небольшом замедлении исполнения (порядка двух раз). Это очень хороший довесок к уже существующему инструменту статической верификации кода Clang Static Analyzer.

LLVM 3.1 также включает в себя DragonEgg — GCC plug-in, подменяющий gcc оптимизатор кодогенератором LLVM. Новый релиз полностью поддерживает GCC 4.5 и 4.6 и частично только что вышедший 4.7. Полностью поддерживаются языки Ada, C, C++ и Fortran, частично Go, Java, Obj-C и Obj-C++. Как мы видим, хоть GCC фронтэнд и перестал быть основным для LLVM, этот подпроект продолжает активно развиваться.

Полный список изменений можно найти в release notes. А попробовать компилятор — скачав его в бинариях или сорсах с сайта проекта.
Tags:LLVMClangбиткодкомпиляторAddressSanitizer
Hubs: Compilers
Total votes 37: ↑36 and ↓1 +35
Views4.3K

Comments 45

Only those users with full accounts are able to leave comments. Log in, please.

Popular right now

Administrator Linux.Basic
April 24, 202155,000 ₽OTUS
Node.js: серверный JavaScript
April 26, 202127,000 ₽Loftschool
Факультет дизайна
April 26, 2021236,988 ₽GeekBrains
Профессия iOS-разработчик
April 26, 202190,000 ₽SkillFactory

Top of the last 24 hours