| Новая версия набора компиляторов LLVM 2.8 |
|
|
| Автор: Administrator | |||
| 11.10.2010 08:33 | |||
|
Представлен релиз проекта LLVM 2.8 (Low Level Virtual Machine) - GCC совместимого инструментария (компиляторы, оптимизаторы и генераторы кода), компилирующего программы в промежуточный байт-код RISC подобных виртуальных инструкций (низкоуровневая виртуальная машина с многоуровневой системой оптимизации). Сгенерированный платформонезависимый псевдокод может быть преобразован при помощи JIT-компилятора в машинные инструкции непосредственно в момент выполнения программы. В новой версии отмечено значительное улучшение поддержки языка C++ в компиляторе Сlang, в частности завершено добавление всех необходимых возможностей и C++ компилятор теперь вполне пригоден к использованию. Дополнительно отмечается присоединение к LLVM (не включены в состав релиза 2.8) двух больших подпроектов: библиотеки libc++ и отладчика LLDB. libc++ представляет собой реализацию стандартной библиотеки классов C++, распространяемую под BSD-подобной лицензией и нацеленную на высокоэффективную генерацию кода и на максимальное обеспечение совместимости с существующими и будущими стандартами (C++0X). Из особенностей библиотеки также можно отметить минимальное потребление памяти, высокую скорость выполнения функций, быструю компиляцию и совместимость на уровне ABI с libstdc++ из состава GCC для некоторых низкоуровневых возможностей, таких как объекты-исключения (exception objects), rtti и распределение памяти. В рамках проекта LLDB развивается новая модульная инфраструктура отладки, использующая такие подсистемы LLVM как API для дизассемблирования, Clang AST (Abstract Syntax Tree), парсер выражений, генератор кода и JIT-компилятор. LLDB поддерживает отладку многопоточных программ на языках C, Objective-C и C++; отличается возможностью подключения плагинов и скриптов на языке Python; демонстрирует экстремально высокое быстродействие при отладке программ большого размера. Ключевые новшества LLVM 2.8:
Из параллельно развивающихся проектов, основанных на LLVM, можно отметить:
|












