LINUX.ORG.RU
ФорумTalks

Тихо и незаметно Clang сравнялся с GCC

 , , , ,


1

9

Подъехали свежие бенчмарки: https://www.phoronix.com/scan.php?page=article&item=gcc7-clang4-jan&n...

Ъ:

WINS:
Clang 3.9.1:         12  [25.0%]
Clang 4.0 SVN:       9   [18.8%]
GCC 4.9.4:           7   [14.6%]
GCC 7.0.0 20170108:  7   [14.6%]
GCC 5.4.0:           7   [14.6%]
GCC 6.3.0:           6   [12.5%]

LOSSES: 
Clang 3.9.1:         13  [27.1%]
GCC 5.4.0:           12  [25.0%]
GCC 4.9.4:           7   [14.6%]
GCC 7.0.0 20170108:  7   [14.6%]
Clang 4.0 SVN:       7   [14.6%]
GCC 6.3.0:           2   [4.2%]

В некоторых тестах Цланг сильно отрывается вперёд.

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

tommy> вот китайцы как раз часто и пилят свои оси под игрушки (в буквальном смысле детские игрушки и тд) под MIPS и тд.

Обычно они готовые, но малоизвестные берут.

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

tommy> Равно как и не предназначен линукс ни для чего кроме серверов - любые попытки хоть какого то реалтайма все через патчи, костыли и тд.

С каких пор наличие реалтайма необходимо везде кроме серверов?

Quasar ★★★★★
()
Ответ на: комментарий от system-root

system-root> linux «в текущем виде появился исключительно благодаря» IPO RedHat

Чистейшая ложь. RedHat пришла на готовенькое. А популярность линукс на серверах приобрёл благодаря связке с Apache.

system-root> благодаря «швабодкафанатикам» появился термин Open source, вернее вопреки. лол.

Ты идиот?

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

kirk_johnson> Компилировать компилятором C++ код на Rust это конечно амбициозная затея, но на редкость тупая.

Вот и не надо сравнивать два совершенно разных продукта в этом случае. GCC - это набор компиляторов с модульной архитектурой. Clang - всего лишь фронтенд для LLVM.

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

kirk_johnson> Каким образом? Компилятор ВНЕЗАПНО перестает компилировать?

Может и такое случиться.

kirk_johnson> Какая разница? Код открыт? Да. Его может форкнуть любой желающий? Да. Он будет компилировать? Да.

Сиюминутным фактом в будущем сыт не будешь.

kirk_johnson> Стандарты (которые подвержены EEE) задает Apple?

Смотря где.

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

kirk_johnson> Нет, база там как раз убогая. И потребовалось несколько лет, чтобы выгрузку AST туда протолкнуть, и до сих пор это блин проблема из-за штолмана.

То есть, ты сделал вывод об убогости базы исключительно из-за идеологического аспекта, но никак не из технического?

Quasar ★★★★★
()
Последнее исправление: Quasar (всего исправлений: 1)
Ответ на: комментарий от kirk_johnson

kirk_johnson> Ага. Это что-то меняет?

Ты утверждаешь, что GCC плох технически. Оказывается, что ты называешь GCC технически плохим по идеологическим причинам, а не по техническим. Это меняет вообще всё.

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

FIL> Язабанзатакиецитаты.

Выложи свой пароль тогда.

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

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

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

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

А слабая это какая?

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

Может и такое случиться.

Каким образом?

Сиюминутным фактом в будущем сыт не будешь.

Будешь. Вот прямо щас ты можешь фокрнуть код. И ты сможешь это сделать через десять лет. Потому что смена лицензии обратную силу не имеет.

Смотря где.

Что значит «смотря где»? Стандарты C и C++ пишутся комитетом.

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

Это только теория. Люди покупают или модель даже не смотря на стоимость только потому что она новая, или просто по деньгам и функционалу.

Камера в 100500мпкс это реальность

Даже майкрософт постоянно переписывает кернел для x86. И в нинтендо разнообразных разве линукс внутри? Заказное и самописное ядро - не так и ужасно как вы расписываете. В большинстве случаев это оптимальное решение.

Не шлангуй, мелкие ядро переписывают в том же объёме что и в линухе. Нинтендо - см про приставки. Кастом - не ужасно, но очень дорого и долго, time to market ниже плинтуса

вот китайцы как раз часто и пилят свои оси под игрушки (в буквальном смысле детские игрушки и тд) под MIPS и тд.

Обычно это либо обрезок линуха с эмулятором, либо что-то оставшееся с очень древних времен. Не пишут они нифига. Даже в настольные телефоны, куда раньше ставили тот же VxWorks, сейчас просто пихают ведроид. Посмотри на любой кетайский дескфон (не сиську), тот же fanvil. Да блин, даже домашние роутеры и те на линухе обрезанном

upcFrost ★★★★★
()
Последнее исправление: upcFrost (всего исправлений: 1)
Ответ на: комментарий от Quasar

Речь не про расширения _языка_, а про расширения продукта.

Ну не пользуйся расширенным продуктом. Я пока не вижу проблемы. Стандарт языков C и C++ описан, и расширение продукта никоим образом на этот факт не влияет.

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

Вот и не надо сравнивать два совершенно разных продукта в этом случае. GCC - это набор компиляторов с модульной архитектурой. Clang - всего лишь фронтенд для LLVM.

Оба этих продукта умеют компилироват C и C++. И это одна из их основных задач. Схренали мне их не сравнивать?

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

Модульность, и по этому возможность интеграции в IDE (без дублирования функционала). Сам сейчас пользуюсь Clang Static Analysis в Qt Creator — всем советую.

А еще у GCC мне не хватает -Weverything, приходится искать нужные флаги

KennyMinigun ★★★★★
()
Последнее исправление: KennyMinigun (всего исправлений: 1)
Ответ на: комментарий от kirk_johnson

Оба этих продукта умеют компилироват C и C++.

Clang умеет компилить его только в LLVM-IR. Он НЕ умеет делать бинарь, ни исполняемый, ни relocatable, никакой. GCC - да, набор, там все плотнее и монолитнее, но они вроде как тоже к схеме фронт-бэк пришли

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

kirk_johnson> Каким образом?

Уже выше писали: основа пилится бесплатно бздунами, которые ненавидят свободное ПО, а Apple берёт основу, наворачивает свои постоянно поддерживаемые патчи, и выпускает проприетарный компилятор, который в определённых аспектах намного лучше оригинала, а потом пиарит именно его. А дальше дело за малым: реализовывать ту же функциональность бздунам запретить под угрозой выкидывания их на мороз.

kirk_johnson> Будешь. Вот прямо щас ты можешь фокрнуть код. И ты сможешь это сделать через десять лет. Потому что смена лицензии обратную силу не имеет.

И этот форк автоматически будет содержать все возможности закрытой версии? Чушь не неси.

kirk_johnson> Что значит «смотря где»? Стандарты C и C++ пишутся комитетом.

См. MS Visual C++.

Quasar ★★★★★
()

Gcc – серьёзная, академическая разработка в отличие от clang. Их даже смешно сравнивать.

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

kirk_johnson> Оба этих продукта умеют компилироват C и C++. И это одна из их основных задач. Схренали мне их не сравнивать?

vi и LibreOffice Writer умеют текст. Xpaint и GIMP умеют растровые картинки. Zilog Z80 и Intel Core i7 умеют складывать байтики. Дальше можешь продолжать сам.

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

GCC как раз не академическая разработка, ровно как и Clang.

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

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

Это как?
Wine — альтернативная реализация проприетарного Windows API, разработчики живут и здравствуют, никто никого на мороз не выкинул.

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

Payload> Wine — альтернативная реализация проприетарного Windows API, разработчики живут и здравствуют, никто никого на мороз не выкинул.

WINE не Microsoft инициировал. И уж тем более Microsoft код в WINE не коммитил.

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

Clang умеет компилить его только в LLVM-IR. Он НЕ умеет делать бинарь, ни исполняемый, ни relocatable, никакой. GCC - да, набор, там все плотнее и монолитнее, но они вроде как тоже к схеме фронт-бэк пришли

Ага. Тока мы рассматриваем связку clang+llvm.

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

vi и LibreOffice Writer умеют текст. Xpaint и GIMP умеют растровые картинки. Zilog Z80 и Intel Core i7 умеют складывать байтики. Дальше можешь продолжать сам.

Ну чушь-то не пори. vi текстовый редактор, а Writer текстовый процессор. Они предназначены для разных вещей. В то время как gcc и clang/llvm делают одно и то же.

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

бздунами, которые ненавидят свободное ПО

Ненавидят потому что выбрали менее ограничивающую лицензию?
Я наверное маргинал, раз использовал public domain.
Напомню, GPL коду нельзя линковаться с проприетарным, иначе открывай всю кодовую базу.

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

GCC - да, набор, там все плотнее и монолитнее, но они вроде как тоже к схеме фронт-бэк пришли

Они уже давно пришли к схеме front-middle-back.

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

Что мешает разработчикам BSD софта реализовать функционал проприетарного форка? Код из проприетарного форка никто не возьмёт.

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

Gcc – серьёзная, академическая разработка в отличие от clang. Их даже смешно сравнивать

Minix тоже

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

Уже выше писали: основа пилится бесплатно бздунами, которые ненавидят свободное ПО, а Apple берёт основу, наворачивает свои постоянно поддерживаемые патчи, и выпускает проприетарный компилятор, который в определённых аспектах намного лучше оригинала, а потом пиарит именно его.

Есть платные компиляторы C/C++ под Linux. И что дальше, все вдруг перестали использовать GCC?

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

А вот тут поподробнее, пожайлуста. Кто будет запрещать и откуда выкидывать.

И этот форк автоматически будет содержать все возможности закрытой версии? Чушь не неси.

Нет, не будет. Я этого и не говорил. Он будет ровно таким же, как сейчас. То есть будет уметь компилировать C и C++ по стандарту + GNU extensions. Ядро скомпилировать сможешь, свободный софт тоже. Что тебе ещё нужно-то?

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 1)
Ответ на: комментарий от kirk_johnson

kirk_johnson> Ну чушь-то не пори. vi текстовый редактор, а Writer текстовый процессор. Они предназначены для разных вещей. В то время как gcc и clang/llvm делают одно и то же.

Это ты чушь порешь. Clang/LLVM не умеет ADA, Pascal, Fortran, Objective C, Objective C++, Java и Go.

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

Ага. Тока мы рассматриваем связку clang+llvm.

Вот если рассматривать Clang+LLVM, то это абсолютно другое сравнение. Но тогда надо принимать во внимание бэк, от которого зависит очень много чего. А то будет у тебя рег-аллокатор все значения ставить одному и тому же регистру и в стек складировать когда регистров 64 штуки, и производительность будет ппц. никакой шланг здесь не поможет, RA это вообще не его дело.

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

Это ты чушь порешь. Clang/LLVM не умеет ADA, Pascal, Fortran, Objective C, Objective C++, Java и Go.

Ага. Потому что это компилятор C и C++ :D Про GCC мы сейчас тоже говорим в разрезе его умения компилировать C и C++. Я вообще не уверен, что кто-то использует GCC для компиляции Fortran.

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

Вот если рассматривать Clang+LLVM, то это абсолютно другое сравнение. Но тогда надо принимать во внимание бэк, от которого зависит очень много чего. А то будет у тебя рег-аллокатор все значения ставить одному и тому же регистру и в стек складировать когда регистров 64 штуки, и производительность будет ппц. никакой шланг здесь не поможет, RA это вообще не его дело.

Эээ... Ну вообще все подразумевают LLVM, и не пишут просто потому, что это типа самоочевидно.

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

Payload> Ненавидят потому что выбрали менее ограничивающую лицензию?

Дело не в ограничениях, а в стараниях угодить проприетарщикам.

Payload> Напомню, GPL коду нельзя линковаться с проприетарным, иначе открывай всю кодовую базу.

Ну и отлично. Никто не засрёт экосистему проприетарщиной.

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

Ну и отлично. Никто не засрёт экосистему проприетарщиной.

Да боже мой, тебя что, проприетарщики в детстве изнасиловали?

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

Они уже давно пришли к схеме front-middle-back.

можешь ссылку кинуть с кратким (чтоб не пришлось по сорцам ползать) описанием? ну, или статью, или еще чего. кстати, там есть обособленные названия как для шланга, типа gnu compiler suite и тому подобное?

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

Payload> Что мешает разработчикам BSD софта реализовать функционал проприетарного форка? Код из проприетарного форка никто не возьмёт.

Прямая зависимость от Apple. Денег не дадут, откажут в поддержке важных кусков кода, и т.д. Если бы у FreeBSD был свой компилятор, проблемы бы просто не было. Clang - это вброс кода от Apple на доработку. По факту проект FreeBSD занимается именно доработкой и поддержкой, а не полностью самостоятельной разработкой.

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

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

в zte open c, насколько я помню, и то и другое было искаропки. и на выбор от производителя было 2 прошивки - на ffos и на android.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от kirk_johnson

Эээ... Ну вообще все подразумевают LLVM, и не пишут просто потому, что это типа самоочевидно

ок, вот я пишу бэк к llvm. тред говорит что шланг работает быстрее. бэк - дремучая альфа, а реализация gcc хоть и кривая-косая, но есть полная. что будет бодрее, мой бэк со шлангом, в котором 90% оптимизаций еще не прикрутил, или gcc? а если polly вкрутить? а если взять плату с сопроцом и часть кода на него перекинуть?

я к тому что ассоциировать производительность бинарника с качеством фронтенда мягко говоря странно.

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

kirk_johnson> Есть платные компиляторы C/C++ под Linux. И что дальше, все вдруг перестали использовать GCC?

Эти компиляторы сделаны для узкоспециализированных задач.

kirk_johnson> А вот тут поподробнее, пожайлуста. Кто будет запрещать и откуда выкидывать.

См. выше.

kirk_johnson> Нет, не будет. Я этого и не говорил. Он будет ровно таким же, как сейчас. То есть будет уметь компилировать C и C++ по стандарту + GNU extensions. Ядро скомпилировать сможешь, свободный софт тоже. Что тебе ещё нужно-то?

Много чего, что потом появится. Да хотя бы поддержка новых архитектур и расширений команд процессоров.

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

ок, вот я пишу бэк к llvm. тред говорит что шланг работает быстрее. бэк - дремучая альфа, а реализация gcc хоть и кривая-косая, но есть полная. что будет бодрее, мой бэк со шлангом, в котором 90% оптимизаций еще не прикрутил, или gcc? а если polly вкрутить? а если взять плату с сопроцом и часть кода на него перекинуть?

Я даже не знаю, как на это ответить. Подразумевается, что бэк рабочий, llvm и clang свежие и хорошо друг с другом работающие. Какие ещё очевидные уточнения ты хочешь внести?

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

Много чего, что потом появится. Да хотя бы поддержка новых архитектур и расширений команд процессоров.

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

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

kirk_johnson> Ага. Потому что это компилятор C и C++ :D Про GCC мы сейчас тоже говорим в разрезе его умения компилировать C и C++. Я вообще не уверен, что кто-то использует GCC для компиляции Fortran.

Fortran с GCC как раз очень даже используют. А попытка избавиться от GCC через шланг с сомнительным результатом - это как раз выкидывание нужных другим людям инструментов.

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

Fortran с GCC как раз очень даже используют. А попытка избавиться от GCC через шланг с сомнительным результатом - это как раз выкидывание нужных другим людям инструментов.

Ну так и пускай Fortran дальше компилируют. Им кто-то мешает что-ли?

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

Подразумевается, что бэк рабочий, llvm и clang свежие и хорошо друг с другом работающие. Какие ещё очевидные уточнения ты хочешь внести?

мой бэк рабочий, просто не использует многие возможные оптимизации. процитирую сам себя чтоб стало более понятно что я имею ввиду

я к тому что ассоциировать производительность бинарника с качеством фронтенда мягко говоря странно.

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

мой бэк рабочий, просто не использует многие возможные оптимизации. процитирую сам себя чтоб стало более понятно что я имею ввиду

Чуваааак. Ещё раз. Все, что там используется — стоковое.

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