Clang і llvm: сьогодення і підсумки

Clang і LLVM: сьогодення і підсумки
Отже, хто зацікавлений у розвитку Clang? І на llvm.org, і на clang.llvm.org викладаються матеріали з зборів розробників - власне, там виступають не тільки самі розробники Clang / LLVM, але і його користувачі. У списках учасників зазначено, яку компанію, корпорацію або університет вони представляють. Бачимо великих гравців: Apple, Google, Adobe, Sun, AMD, NVIDIA, Cray, DreamWorks Animation, VMWare, ARM. Дивлюся слайди до минулорічного зібрання, до доповіді «Стан Clang». Знову - великі і красиві графіки порівняння з GCC в швидкості. «Швидше в три рази!», «Швидше на 30 відсотків!». Підтримка потрібної Apple специфіки. Осуд GCC: «Діагностика GCC часто не приносить користі. Вводить в оману, виражена незрозуміло, не точна ». Далі наводяться майже ті ж приклади, що і в слайдах часів народження Clang.

Очевидно, що великі компанії зацікавлені в Clang / LLVM, а в першу чергу - звичайно ж, Apple, яка поки ще використовує GCC в своєму середовищі розробки XCode. Як ви думаєте, яка версія GCC включена в XCode? Там їх дві: 4.0 і 4.2. Це не «вихідні» GCC, а змінені в Apple. Однак не в цьому суть. Чому не використовуються нові версії GCC? GCC починаючи з версії 4.3 змінила ліцензію з GPLv2 на GPLv3. Наскільки я розумію, Apple не може використовувати ліцензований таким чином GCC в своїй XCode без того, щоб не ліцензувати XCode теж під GPL (в AppleInsider є про це стаття - https://appleinsider.com/articles/08/06/20/apples_other_open_secret_the_llvm_complier )

Так вийшло, що великі компанії побачили річку вільного програмного забезпечення та увійшли в її могутні води, але зрозуміли, що не зовсім по дорозі. Вийшли на берег і задумалися, а чи можна якось інакше? Вихід був знайдений - теж річки, теж з відкритим кодом, але з такими ліцензіями, де в перспективі грошей текти вільніше. Пішло повальне захоплення ліцензією Apache і іншими BSD-подібними. Загалом, що завгодно - тільки не «вірусна GPL».

Так вийшло, що стаття - не стільки про технічні можливості компілятора, скільки про його місці в світі програмування. Зараз, крім того, що Clang / LLVM швидше справляється з компіляцією і виводить повідомлення про помилки в іншому форматі, інших плюсів для розробки програм, які пов`язані зі специфікою ПО від Apple, я не бачу. Втім, якщо стояти на грунті практицизму, ці два плюса - вагомий аргумент на користь Clang.




Пробувати Clang в роботі можна вже зараз, скачавши з SVN-сховища з офіційного сайту. Для збірки з вихідних буде потрібно близько 4 гігабайт вільного місця на диску і деяку кількість часу - скільки саме, сказати не можу, бо багато разів переривав компіляцію, відриваючись у справах. Однак, якщо вам лінь робити збірку, можна - і це здорово! -використовувати LLVM в режимі онлайн, з сторінки https://llvm.org/demo/index.cgi. Забиваємо в поле редактора исходник, робимо потрібні налаштування і натискаємо кнопку Compile source code. На виході отримуємо код на асемблері. Зазначу, що в цій онлайн-грі в якості фронтендів використовується не Clang, а GCC. І компілюються, звичайно, не великі проекти, а ма-ленькі приклади.

Clang і LLVM: сьогодення і підсумки




Якщо ж зібрати Clang / LLVM з початкових кодів, то вам, крім повноцінного компілятора, буде доступна цікава і іноді корисна утиліта Static Analyzer (запускається командою scan-build, докладніше читайте на https://clang-analyzer.llvm.org/scan-build .html), яка в графічній формі, у вигляді HTML, надає результати свого аналізу коду (попередження про витоки і таке інше).

Для більш детального вивчення даних систем аналізу рекомендую Вам роздрукувати цю статтю цілком в великому форматі. В цьому Вам допоможе тіпографія112 (https://t-112.ru/production/vizitki/vizitki_shelkografiej/), де використовується висококласне друкарське обладнання!

підсумок

Чудово, що росте такий добротний конкурент, саме конкурент, для GCC. Навіть в середовищі хакерів ядра Linux часто чути нарікання на розробників GCC - мовляв, не прислухаються до потреб народу, занадто самодостатні, а компілятор видає глючний код.

Не знаю, який шлях розвитку краще саме для GCC: йти на поводу у конкретних потреб або створювати проект заради проекту. Але ось уже в новій версії GCC - 4.6 - заявлено (крім усього іншого) про прискорення процесу складання на 10% (на прикладі збірки самого GCC C для платформи x86-64) і чимало новинок в підтримці C ++ 0x - майбутнього стандарту C ++. У Clang підтримка C ++ 0x набагато скромніше.

Чи стане Clang через пару років таким же звичним в дистрибутивах UNIX-подібних систем, як нині GCC? Побачимо, але мені здається, що стане.

ІНШЕ

Clang і llvm - у gcc є конкурент фото

Clang і llvm - у gcc є конкурент

Відео: GCC or LLVM? Зв`язку Clang і LLVM часто згадують як заміну GCC - не зараз, але в перспективі. Що ж таке Clang і…

Компанія apple і open source webkit фото

Компанія apple і open source webkit

Якщо користь від Darwin для спільноти не дуже велика, то плоди інший реформи ПО в Apple сьогодні спостерігають багато…

J-90 - нова надія apple фото

J-90 - нова надія apple

Відео: Повний випуск Новорічного Вечірнього Кварталу 2017 Повним провалом завершилася кампанія продажів персональних…

Apple ipad 4 фото

Apple ipad 4

Apple iPad 4 постав перед широкою публікою в березні 2012 року. На радість любителям iPad, у оновленої його версії, як…

Інтернет-браузер apple safari фото

Інтернет-браузер apple safari

Apple Safari - браузер, розроблений компанією Apple, що входить в стандартну збірку операційної системи MacOS. П`ята…

Вільні продукти «від apple» фото

Вільні продукти «від apple»

Відео: 10 ПРОДУКТІВ APPLE про ЯКИХ ВИ не ЧУЛИ Крім доробок і модифікацій існуючих рішень корпорація має в своєму…

Компанія apple і open source фото

Компанія apple і open source

Відео: Apple Makes Swift Open Source, Developers Rejoice | Crunch Report Apple - одна з найбільших IT-корпорацій, одним…

Ardour 3: збірка фото

Ardour 3: збірка

Відео: Basic mixing in Ardour 3: Part 2 - Importing files, arranging tracks and overviewing the session Ardour 3…

» » Clang і llvm: сьогодення і підсумки