Готов ли Clang / LLVM к прайм-тайм? [закрыто]


9

Clang можно использовать вместо gcc? Какой у вас опыт по этому поводу? Какие недостатки еще есть?

Производительность компиляции намного лучше, чем у gcc, но как насчет производительности кода, сгенерированного при его выполнении?

Есть ли хорошие инструменты в качестве front-end (IDE) для работы в Linux или Windows?

РЕДАКТИРОВАТЬ: я имею в виду компилятор Си. С ++ это еще не так хорошо.

Ответы:


9

Обновление: теперь (2013) Clang готов к работе в прайм-тайм и используется некоторыми компаниями, такими как Google. Однако он не полностью применим в Windows, работа на этой платформе - это «работа в процессе». LLVM / Clang в настоящее время является компилятором по умолчанию для MacOSX / XCode, но это не совсем те же версии, что и LLVM, так что остерегайтесь незначительных различий (в основном различий в номерах версий).


Хорошо следуя списку рассылки clang dev , недавно была успешно собрана версия ствола :

  • ядро Linux (недавняя ревизия)
  • Qt (с его специальным процессом сборки, по-видимому)
  • Хром (недавний пересмотр)

Итак, я бы сказал, что будущая версия (2.9) может быть хорошим компилятором, готовым к прайм-тайм.

Однако, если у вашего проекта есть планирование и бюджет, возможно, это не очень хорошая идея попробовать компилятор, который еще не был тщательно протестирован. Если вам разрешено экспериментировать и предоставлять отзывы сообществу разработчиков Clang, тогда сделайте это, это выгодно для всех. Если нет, то, возможно, вам следует использовать зрелый и интенсивно используемый компилятор, такой как gcc (в его последних версиях), чтобы иметь «стабильную почву», на которую можно положиться при работе над проектом.


Просто для дополнения, это не профессиональный проект ... все же, это почти 20% проект рабочего времени.
Маньеро

Я бы попробовал clang на непрофессиональном кроссплатформенном проекте. На самом деле это то, что я пытаюсь прямо сейчас.
Klaim

Спасибо. Моя забота о будущем проекта. Я начну как эксперимент, но я хочу сделать больше, чем скоро.
Маньеро

Если это долгосрочный проект, он может выиграть от CLang, если он стабильный, корректный, оптимизированный и полностью поддерживает C ++ 0x (если вы используете c ++). Потому что его целью является создание более быстрого компилятора, и, очевидно, он уже есть. И это важно.
Klaim

1
Clang также разрабатывает iOS, Xcode и почти все, что Apple выпускает.
Майк Веллер

8

Что ж, он, безусловно, готов для прайм-тайма в Mac OS X, так как многие приложения Mac OS X компилируются с использованием clang. Но даже на других платформах поддержка C довольно надежна, и команда добилась больших успехов с поддержкой C ++.

Вообще говоря, clang компилирует код быстрее, чем gcc, но gcc генерирует лучше оптимизированный код. (Существуют крайние случаи, когда это не так, но в целом это текущий статус.)


Я вижу ту же проблему, Clang пока слишком привязан к MacOS / BSD.
Маньеро

Я попробовал CLang на Windows 7, и он работал правильно. Я тоже попробовал это на Ubuntu. Я думаю, что ваша информация не актуальна, но это логично, так как в последние месяцы были предприняты многочисленные межплатформенные исправления. Так что, возможно, это не будет так Mac-центрично, как только выйдет следующая версия.
Klaim

1
@Klaim: Я говорю не о Кланге как таковом , а обо всей экосистеме. Я пробовал некоторые вещи на Win7 проблемах белого, но только компилятор на cli.
Маньеро

Я обнаружил, что Clang создал более быстрый двоичный файл, чем GCC, для моего проекта. Это стоит хотя бы попробовать.
Кендалл Хопкинс

Кроме того, компилятор по умолчанию теперь для iOS.
mamcx

3

Вы не должны зависеть от конкретного компилятора, если только вам это не нужно. Таким образом, вы должны быть в состоянии изменить компилятор в Makefile или что-то еще, и все должно работать хорошо.

Здесь я использую в основном clang для своих игрушечных проектов, потому что он быстрее и гораздо важнее: его сообщения об ошибках чертовски понятнее. Но когда мне нужно использовать gdb, я компилирую с gcc и -ggdb. Так что Clang еще не закончен и не может быть моим единственным компилятором.

(Кстати: я на x86 gentoo, а проекты на C и C ++)

редактировать : уточнить, Clang работает быстрее (в некоторых случаях, намного быстрее). Меня не волнуют модные оптимизации.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.