Компилятор Clang преодолел барьер собственной пересборки

Разрабатываемый в рамках проекта LLVM компилятор Clang достиг новой стадии развития - им впервые удалось пересобрать собственную кодовую базу (550 тыс. строк кода на C++), иными словами собрать Clang используя только Clang. Полученный в результате такой сборки исполняемый файл прошел все разработанные в рамках LLVM тесты, направленные на выявление регрессивных изменений. Кроме синтетических тестов, был использован простой и надежный способ проверки: собранным при помощи Clang исполняемым файлом была осуществлена пересборка Clang по второму и третьему кругу.

Clang представляет собой LLVM фронтенд для языков C, С++ и Objective-C, который можно использовать вместо GCC. Исходные тексты Clang распространяются в рамках лицензии BSD, что делает этот компилятор интересным решением для замены GCC в BSD-подобных ОС. Например, близится к завершению проект адаптация данного компилятора для сборки базовой системы FreeBSD. В будущем во FreeBSD планируется использовать в качестве системного компилятора Clang, вместо GCC. В настоящий момент успешно собираются приложения базовой системы и ядра FreeBSD для архитектур i386 и amd64.

Из параллельно развивающихся с Clang основанных на LLVM проектов, можно отметить:

  • VMKit - виртуальная машина для Java VM и .NET VM;
  • Реализация функционального языка программирования Pure;
  • LDC - компилятор для языка D;
  • Roadsend PHP - оптимизатор, статический и JIT компилятор для языка PHP;
  • Rubinius и MacRuby - виртуальные машины для Ruby;
  • Unladen Swallow - реализация языка Python;
  • LLVM-Lua;
  • FlashCCompiler - средство для компиляции кода на языке Си в вид пригодный для выполнения в виртуальной машине Adobe Flash.

©  OpenNet