LINUX.ORG.RU

Debian: clang способен заменить gcc

 , ,


0

1

Sylvestre Ledru провел эксперимент по сборке репозитория Debian с помощью компилятора clang. Вопреки ожиданиям, результаты оказались обнадеживающими:

На мой взгляд, clang уже стабилен и достаточно хорош для пересборки большинства пакетов Debian, хотя многие из них потребуют незначительных исправлений.

В ближайшие несколько лет, учитывая лучшие инструмены статического анализа кода, clang может заменить gcc/g++ как компилятор C/C++ по умолчанию в дистрибутивах Linux и BSD.

Разработчики clang продвигаются очень быстро: с версией 2.9 не собиралось 14.5% пакетов, а с 3.0 - 8.8%. Сделаны существенные шаги: chromium/chrome собираются по умолчанию с помощью clang, Xcode по умолчанию предоставляет clang, FreeBSD работает над переходом с gcc на clang и т. д.

Однако для Debian важно, чтобы clang справлялся со всеми поддерживаемыми архитектурами (11 официальных, 6 неофициальных).

Собрать не удалось 1381 пакет из 15658. Самая частая причина неудачи - более строгое следование стандартам со стороны clang.

Найденные баги будут отправлены в багтрекер Debian вместе с патчами. Автор исследования продолжит тестировать новые версии clang.

>>> Подробности

★★★★

Проверено: Shaman007 ()

Ответ на: комментарий от DeVliegendeHollander

Несколько удивило (и порадовало), что Open Watcom жив. Я про него уже лет 10 не слышал

ага, в своё время watcom сдох маленько, а потом его оживили вроде как, и по слухам довольно таки успешно, но сам я его не трогал

shty ★★★★★
()
Ответ на: комментарий от shty

Ну вот мне и повод немножко расширить свой кругозор в отношении альтернативных компилеров. :)

«А то всё кабинет, кабинет...» (с) Кавказская пленница

DeVliegendeHollander ★★
()
Ответ на: комментарий от anonymous

То есть пользуйтесь паскалесофтом, пользуйтесь, но не дай вам ктулху задуматься о его природе, а уж тем более не заглядывайте в его открытый код?

Seems legit, чо.

beresk_let ★★★★★
()

Самая частая причина неудачи - более строгое следование стандартам со стороны clang.

О чём это говорит? О том, что некоторые разработчики - криворукие бараны.

bbk123 ★★★★★
()
Ответ на: комментарий от shty

Так речь идет о создании константных объектов, так что ваш пример вообще не в тему.

A-234 ★★★★★
()
Ответ на: комментарий от bbk123

Нет, не правильно. Зубрить тонкости стандартов - лишняя, глупая работа. Именно компилятор должен проверять соответсвие кода стандартам. Так что проблема в том, что разработчики gcc - криворукие бараны. А разработчики clang - молодцы, сотни нефити им. О том и весь сыр-бор с переходом на clang.

dizza ★★★★★
()
Ответ на: комментарий от dizza

Именно компилятор должен проверять соответсвие кода стандартам.

Вот он и проверяет, не компилируя код школоты.

bbk123 ★★★★★
()
Ответ на: комментарий от dizza

Я тот тут причем? Разработчики clang спердобились,

Они, в отличие от тебя, не называют коллег «криворукими баранами».

им это и говори.

Я хотел сказать это именно тебе.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Они, в отличие от тебя, не называют коллег «криворукими баранами».

Угу, ты же каждого лично знаешь.

Я хотел сказать это именно тебе.

А вот не надо.

dizza ★★★★★
()
Ответ на: комментарий от dizza

Они, в отличие от тебя, не называют коллег «криворукими баранами».
Угу, ты же каждого лично знаешь.

Угу, ты же лично написал компилятор Си.

Я хотел сказать это именно тебе.

А вот не надо.

Вполне очевидно, что тебе это нужно.

tailgunner ★★★★★
()

можно будет собирать пакеты быстрее если задействовать gpu(opencl) для компиляции?

dr04 ★★
()
Ответ на: комментарий от shty

нет конечно

Внезапно да! Поскольку термин «композитный» это допускает и плевать, что ударные свойства железного прута это никак не меняет. Так и тут. В макоси от микроядра как от изоленты на арматуре. А если без аналогий, то там, в отличие от QNX, драйвера не являются сервисами к микроядру, там единственным сервисом является BSDядро. И единственная функция этого mach - спорной надобности абстракция от железа (которого и так 2,5 варианта).

iBliss
()
Ответ на: комментарий от Andru

Что забавно, Apple его поддержку на днях выпилила, теперь для аппрува проекта сборка должна работать под ARMv7 only.

От, млять, зачем я делал порт игры для 2g? Получается я зря потратил время и силы?

andreyu ★★★★★
()
Ответ на: комментарий от gns

Ну и насколько там хорош C++ в плане компиляции существующего кода? Это не троллинг, я действительно не имел сомнительного удовольствия разрабатывать что-то для мака.

Ну только им и собираю проект. Весь проект на плюсах, только в движке несколько частей на obj-c.
Текущий проект почти 20K строк кода.

andreyu ★★★★★
()
Ответ на: комментарий от tailgunner

Речь была о том, что «нет вменяемой кодогенерации». «Retargettable code generator» есть в любом современном компиляторе, вопрос в его качестве («вменяемости»).

Про качество не знаю, желающие могут проверить сами. Но для armv6 и armv7 все хорошо.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Речь была о том, что «нет вменяемой кодогенерации». «Retargettable code generator» есть в любом современном компиляторе, вопрос в его качестве («вменяемости»).

Про качество не знаю

То есть вменяемой кодогенерации под неинтересные ябблу платформы может и не быть.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

То есть вменяемой кодогенерации под неинтересные ябблу платформы может и не быть.

Может быть, а может и не быть. Мне не интересно гадать.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

От, млять, зачем я делал порт игры для 2g? Получается я зря потратил время и силы?

Что я могу сказать... авось тебе повезёт, но Big Fish Games с воплями трусили моего знакомого из Бразилии, что бы тот ARMv7 сборку им дал, т.к. ARMv6 Apple отказался принимать. Ах да, тут ещё одна феерия случилась с iOS 5.1. Эти мудаки из Apple что-то поломали и отвалился write/writeln паскалевский(оный вроде write системный для вывода в stdout использовал), и юзеры сразу похерили все рейтинги одной игрульке, портом которой занимался... :(

Andru ★★★★
()
Ответ на: комментарий от tailgunner

В их списке рассылки участвуют также люди из Intel и AMD. Плюс многие используют Linux, в качестве основной платформы.

Я бы сказал, что и в GCC не было поддержки многих платформ, если бы они не были кому-нибудь нужны. В таком случае, они нужны будут напишут и включат в основную ветку.

anonymous
()
Ответ на: комментарий от anonymous

В их списке рассылки участвуют также люди из Intel и AMD. Плюс многие используют Linux, в качестве основной платформы.

Про Linux и платформу x86 всё понятно.

и в GCC не было поддержки многих платформ, если бы они не были кому-нибудь нужны. В таком случае, они нужны будут напишут

Вот как раз насчет «напишут и включат» есть сомнения. Компилятор под BSD-лицензией, так что написать (и выложить в открытый доступ) бэкенд может либо университет, либо крупная компания. Apple так и сделала. Но кто будет следующим?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

LLVM пилят и люди из Google, для NaCl, еще в основной ветке уже присутствует такая хитрая архитектура как XCore.

Qualcomm пока пилит, как GCC так и LLMV и думают полностью переключаться на него, после того как выведут его на сравнимый уровень производительности (на последней конференции говорили о 90%, по сравнению c GCC).

anonymous
()
Ответ на: комментарий от anonymous

LLVM пилят и люди из Google, для NaCl

NaCl разве не x86-only?

Qualcomm пока пилит, как GCC так и LLMV и думают полностью переключаться на него

Это печально.

tailgunner ★★★★★
()
Ответ на: комментарий от vurdalak

гентарды как обычно только подбирают за старшими. если в дебиане впилят — тогда можешь надеяться

anonymous
()
Ответ на: комментарий от vurdalak

что не значит, что он начинает работать. тот же gcc4.6 хардмаскед, и в багзилле куча porting issues, а в дебиян тестинге уже давно есть. бугурть дальше

anonymous
()
Ответ на: комментарий от anonymous

Так это конкретно gcc, одна из самых важных софтин. А прикладной в генте раньше появляется.

vurdalak ★★★★★
()
Ответ на: комментарий от Reset

Сравнивал. Скорость одинаковая.

не использую фортран, наши физики используют интеловский фортран, вот его скорость работы прилично больше чем у конвертированного в Си.

golodranez ★★★★
()
Ответ на: комментарий от golodranez

Про _сильно_ больше не верю. Про больше по сравнению с gcc верю. Про больше по сравнение с конвертированным кодом и откомпилированным тем же icc не верю.

Reset ★★★★★
()
Ответ на: комментарий от buddhist

Вообще, я лелею утопическую мечту, что сишечка когда-нибудь умрет, освободив место для паскалеподобных языков :)

Ядра и демоны на паскале? Нет, спасибо.

sv75 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.