- *clang *gcc *c++Итак, некоторые субъективные наблюдения в результате работы с clang.
• Перейти на него легко — достаточно заменить c++/gcc в CMakeCache.txt на clang. Если код изначально не затачивался на разные компиляторные фишки и писался более-менее в соответствии со стандартом, то заточки особо не потребуется.
• Код компилирует строже, чем gcc, однако, местами поведение, скажем так, неочевидно. Например, он типа как инстанциирует шаблон даже там, где не просят (#826889/20).
• Код, им собранный, вполне работоспособен. Личкрафты запустились и успешно работают, например.
• По ощущениям собирает сильно быстрее, чем gcc. Особенно суровый шаблонный код с mpl/графами/етц. По цифрам — сборка clang'ом личкрафтов заняла 6 минут 47 секунд, gcc собирает минут за 8 с небольшим.
• Не оценил я прелести его сообщений об ошибках вообще. На бустовые пока не нарывался, а легонькие и так научился читать, что ли.
Replies (13)
- @0xd34df00d:@netneladno Из транка ок, я бы вдул. Правда, щас собирал другую конфигурацию и нарвался на xmlsettingsdialog/libxmlsettingsdialog.so.0.3.0: undefined reference to `std::auto_ptr<QScriptEngine>::~auto_ptr()'
- @0xd34df00d:@chemikadze Да хз, как тут сравнивать. Это ж надо еще кути всякие пересобирать цлангом же.
- @0xd34df00d:@0xd34df00d А, хотя это разумно. Тип у auto_ptr'а не был полностью определен. Все ок, надо юзать.
- @netneladno:@0xd34df00d то есть очевидно что он построже чем гсс?
- @0xd34df00d:@dk Опять же, трудно оценить — у меня сильно «клиентский» код, а расчетная часть (да тот же рендеринг в вебките) лежит в других либах, которые неохота цлангом пересобирать. Могу, разве что, сравнить размер бинарей на выходе.
- @netneladno:@0xd34df00d поцанчики говорят что gcc4.4 и clang 2.7 примерно одинаково. то есть гдето один гдето второй лидириет, без заметного отрываfrom 97EE1348, 13 months ago, in reply to /9
- @0xd34df00d:@kim В конфигурации RelWithDebInfo (оптимизации, но и дебаговая инфа) выхлоп clang'а больше в среднем раза в три. 31 метр против 12, 35.4 против 13.6. Слева сланг, справа gcc ) Ночью попробую в Release и MinSizeRel, щас жарко и машину жалко.from idead, 13 months ago, in reply to /10
- @borman:@0xd34df00d Есть подозрение, что он в дебаг-инфу LLVM-код кладетfrom Gajim35FB64AF, 13 months ago, in reply to /12