Чи готовий Clang / LLVM до прайм-тайму? [зачинено]


9

Clang можна використовувати замість gcc? Який ваш досвід щодо цього? Які недоліки ще є?

Продуктивність компіляції дуже краща, ніж gcc, але щодо продуктивності коду, сформованого при його виконанні?

Чи є хороші інструменти як передній (IDE) для запуску в Linux або Windows?

EDIT: Я маю на увазі компілятор C. C ++ це ще не так добре.

Відповіді:


9

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


Добре дотримуючись списку розсилки clang dev , нещодавно версія магістралі успішно будується:

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

Отже, я б сказав, що наступна версія (2.9) може бути хорошим компілятором "готового до прайм-тайму".

Однак якщо у вашого проекту є планування та бюджет, можливо, це не гарна ідея спробувати компілятор, який ще не є сильно перевіреним. Якщо вам дозволять експериментувати та надавати відгуки спільноті розробників Clang, тоді продовжуйте це, це виграш для всіх. Якщо ні, можливо, вам слід скористатися зрілим і широко використовуваним компілятором, як gcc (в останніх версіях), щоб мати "стабільну основу", на яку можна покластися, працюючи над вашим проектом.


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

Я б спробував стукнути на непрофесійному кросплатформенному проекті. Насправді це я зараз намагаюся.
Клаїм

Дякую. Я хвилююся щодо майбутнього проекту. Я розпочну як експеримент, але хочу зробити більше, ніж незабаром.
Маньєро

Якщо це довгостроковий проект, він може отримати користь від CLang, коли він буде стабільним, правильним, оптимізованим та повнофункціональним C ++ 0x (якщо ви використовуєте c ++). Тому що його мета - бути швидшим компілятором там і, мабуть, це вже є. І це важливо.
Клаїм

1
Clang також створює iOS, Xcode і майже все, що Apple доставляє.
Майк Веллер

8

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

Взагалі кажучи, clang збирає код швидше, ніж gcc, але gcc генерує краще оптимізований код. (Є крайні випадки, коли це не відповідає дійсності, але загалом це поточний статус.)


Я бачу ту ж проблему, Кланг поки занадто прив’язаний до MacOS / BSD.
Маньєро

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

1
@Klaim: Я кажу не про Clang per se , а про всю екосистему. Я спробував деякі проблеми з проблемами відбілювання Win7, але тільки компілятор на cli.
Маньєро

Я виявив, що Кланг створив швидший бінарний, ніж GCC, для мого проекту. Варто хоча б спробувати.
Кендалл Хопкінс

Також зараз компілятор за замовчуванням для iOS.
mamcx

3

Ви не повинні насправді залежати від конкретного компілятора, якщо вам це не потрібно. Отже, ви повинні мати можливість змінити компілятор на Makefile або щось таке, і все повинно працювати добре.

Тут я в основному використовую кланг для своїх іграшкових проектів, тому що це швидше і набагато важливіше: його повідомлення про помилки настільки прокляті ясніше. Але коли мені потрібно використовувати gdb, я компілюю з gcc та -ggdb. Тож кланг ще не є повною функцією і не міг бути моїм єдиним компілятором.

(BTW: Я на x86 gentoo, а проекти знаходяться на C та C ++)

редагувати : для уточнення, кланг працює швидше (в деяких випадках набагато швидше). Мені не цікаво фантазійних оптимізацій.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.