Должен ли я начать ориентироваться на Clang / LLVM с моим проектом C ++ iPhone? - PullRequest
5 голосов
/ 12 декабря 2010

Apple активно продвигает LLVM и Clang.Слухи говорят, что это потому, что Apple хочет отказаться от GCC (из-за проблем с лицензией GPLv3) и переключиться на Clang.

Кто-нибудь знает, когда это произойдет?

Язапуск проекта C ++, который я планирую перенести на iPhone, и я не знаю, следует ли мне использовать функции C ++ 0x (по крайней мере, те, которые поддерживаются Clang) или мне следует написать код, совместимый с GCC 4.1 ...

1 Ответ

13 голосов
/ 12 декабря 2010

Слухи говорят, что это потому, что Apple хочет отказаться от GCC (из-за проблем с лицензией GPLv3) и переключиться на Clang.

Это не слух, это заявленная позиция Apple,Лицензия GPL на GCC не позволяет Apple полностью интегрировать компилятор / анализатор в свои инструменты разработки.С Clang / LLVM у них нет таких ограничений и, следовательно, они могут делать гораздо больше со своими инструментами (начиная со встроенного Clang Static Analyzer в Xcode 3.2 и намного дальше с Xcode 4).

За пределами лицензииИз-за проблем Clang / LLVM строится намного быстрее, чем GCC, а в тестах Apple (и из моего собственного опыта) создает исполняемые файлы с лучшими характеристиками, чем GCC.Он также генерирует гораздо более полезные сообщения об ошибках.Он был спроектирован модульно, что также должно упростить его поддержку и расширение, а не GCC.

Apple заявила, что все функции C ++, кроме экспортируемых шаблонов, поддерживаются в готовящемся LLVM Compiler 2.0 в Xcode 4и компилятор некоторое время находился в автономном режиме.Если вы не можете ждать или не хотите попробовать предварительные версии для разработчиков Xcode 4, вы можете проверить компилятор прямо сейчас, взяв исходный код с основного сайта LLVM .

Я настоятельно рекомендую просмотреть бесплатные видео WWDC 2010 для сеанса 300 - «Состояние средств разработки для разработчиков» и сеанса 312 - «Что нового в компиляторе LLVM», где они описывают то, над чем они работают в настоящее времяс компилятором LLVM.

По времени, только Apple может сказать вам, когда они что-то сделают, и даже они не могут точно знать, когда что-то будет готово для прайм-тайма.Вы можете сделать обоснованные предположения, основанные на траектории улучшения предварительного просмотра разработчиков Xcode, но это все.Тем не менее, Clang / LLVM - это путь Apple, так почему бы не планировать это?

...