Clang

Вопросы написания собственного программного кода (на любых языках)

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Clang

Непрочитанное сообщение Olej » 02 апр 2013, 18:09

Виктория писал(а): Реплика оппозиции:
Ben Simmonds. C++11 with Clang on Windows and MinGW
и на хабрахабре http://habrahabr.ru/post/167281/
GnuWin32 - это уже не совсем идеальный эксперимент!
Я очень сильно не доверяю всему, что пишется на хабрахабре, всё что там написано - делю на 33 (есть ещё только одно место - это LOR, всё что там написано я делю на 34 :lol: ).
Эту статью я видел:
- автор там собирает Clang с помощью Mingw32 ...
- но только потому, что он "не умеет готовить" ;-) Cmake - как рекомендуют именно авторы проекта LLVM.
- потом ... он вообще даже не прикасается к их библиотеке libc++ :-(
- какая-то кволая статья.
- он вообще непонятно что собрал:
Первое что бросается в глаза — собранный clang чудовищно тормозит, и это при релизной сборке! Даже простейший «clang++ --version» может выполнятся несколько секунд.
- это уже симптомчик :lol:


Всё это и по многочисленным и толковым комментариям к этой статье видно ... там интересно из комментариев:
И вцелом поддержка винды хромает — она просто не нужна никому из тех, кто контрибьютит в llvm профессионально (по сути это сотрудники Apple и Google и некоторых HPC-ориентированных организаций).

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Clang

Непрочитанное сообщение Olej » 02 апр 2013, 18:12

Виктория писал(а):
Olej писал(а): "Откуда ноги растут..." :lol:
Жалко, что ноги сразу подобрали, ссылка мертвая.
И правда :-o
Но очень может быть, что это у них временная какая-то профилактика:
Erreur 503 - Service temporairement indisponible ou en maintenance
Хорошо, что я у них ссылки на картинки слямзил ;-) , откуда они цитировали ... а больше там вообще ничего интересного не было.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Clang

Непрочитанное сообщение Olej » 02 апр 2013, 18:19

Виктория писал(а):А мне попалось - Embarcadero тоже выбрало в качестве ориентиров Clang-совместимость
в блоге и на самом сайте - http://www.embarcadero.com/products/cbuilder
После этого от C++ Builder вообще остаётся только "пустая оболчка" IDE: окошки редактирования текста и т.п. - теперь это будет просто ещё один графический фронтэнд к Clang.
Ну и славненько ... им это только на пользу. ;-)

Сейчас очень многие перейдут на Clang.
Первыми с Clang кинутся (и уже кинулись) аутсайдеры ... в рассчёте, что их это спасёт: C++ Builder, MINIX 3, ... да и FreeBSD не то, чтоб очень ... "впереди планеты всей" ;-)
А в конечном итого все использующие GCC уйдут в Clang - об этом много говорилось, и это вопрос, похоже, решённый, вопрос только времени.

Аватара пользователя
Виктория
Писатель
Сообщения: 113
Зарегистрирован: 28 дек 2012, 14:05
Откуда: Самара
Контактная информация:

Re: Clang

Непрочитанное сообщение Виктория » 02 апр 2013, 18:47

Наверно, стоит ещё отметить что в связке СLang+LLVM есть ещё одна фигура - С++ интерпретатор Cling (официальная страница - http://root.cern.ch/drupal/content/cling, кратко в блоге http://gahcep.github.com/blog/2012/09/1 ... s-cpp-int/).
Интерактивный shell операционной системы? Там ещё ссылка есть на RubyMotion, выполняющий подобные функции...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Clang

Непрочитанное сообщение Olej » 02 апр 2013, 18:57

Olej писал(а):
Виктория писал(а):А мне попалось - Embarcadero тоже выбрало в качестве ориентиров Clang-совместимость
в блоге и на самом сайте - http://www.embarcadero.com/products/cbuilder
После этого от C++ Builder вообще остаётся только "пустая оболчка" IDE: окошки редактирования текста и т.п. - теперь это будет просто ещё один графический фронтэнд к Clang.
Ну и в отношении MS Visual Studio то же самое:
Olej писал(а): Интереснее дальнейшие шаги в том же направлении:
- назначить Clang компилятором по умолчанию для IDE Visual Studio;
- научить его (Visual Studio) использовать новую библиотеку libc++;
- ... ну, и предварительно собрать ту же libc++ в Visual Studio используя Clang;

Это была бы большая работа! ... в смысле её полезности.
А вместо MFC приделать оконную систему wxWidgets ... я когда-то приделывал такое к Visual Studio...

И тогда уже будет 2-е графических обёртки к Clang: а). C++ Builder и б). Visual Studio. :lol:

Аватара пользователя
Виктория
Писатель
Сообщения: 113
Зарегистрирован: 28 дек 2012, 14:05
Откуда: Самара
Контактная информация:

Re: Clang

Непрочитанное сообщение Виктория » 02 апр 2013, 19:32

Olej писал(а): И тогда уже будет 2-е графических обёртки к Clang: а). C++ Builder и б). Visual Studio. :lol:
А нужен ли C++ Builder? Использует ли кто в промышленных приложениях сетевые возможности Embarcadero? Массовое использование остановилось на 7 версии

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Clang

Непрочитанное сообщение Olej » 02 апр 2013, 20:18

Olej писал(а): Ох, что-то мне подсказывает, что нужно сносить нафиг все репозитарные пакеты RPM (и то же самое в любом дистрибутиве Linux) и ставить всё это из исходников:
- LLVM;
- Clang;
- libc++;
1. http://llvm.org/releases/download.html#3.2
Это LLVM + Clang последней релизной версии 3.2
LLVM source code (12M) (.sig)
LLVM Test Suite (69M) (.sig)
Clang source code (8.4M)(.sig)
Compiler RT source code (1.4M)(.sig)
Clang Binaries for FreeBSD9/x86_64 (69M)(.sig)
Clang Binaries for MacOS X/x86_64 (67M)(.sig)
Clang Binaries for Ubuntu-12.04/x86 (67M)(.sig)
Clang Binaries for Ubuntu-12.04/x86_64 (71M)(.sig)
Experimental Clang Binaries for Mingw32/x86 (85)(.sig)
DragonEgg(650K) (.sig)
Polly(396K) (.sig)
2. http://clang.llvm.org/get_started.html
Это детальная инструкция (с URL) установки последней версии LLVM + Clang из SVN репозитария.

3. http://libcxx.llvm.org/
libc++ есть (или я нашёл?) только из SVN репозитария, здесь подробнейшая инструкция.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Clang

Непрочитанное сообщение Olej » 03 апр 2013, 09:49

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

Вот эта тема: сборка Clang.

А здесь пусть остаются (продолжаются) вопросы использования Clang.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Clang

Непрочитанное сообщение Olej » 04 апр 2013, 10:44

Olej писал(а): Вот эта тема: сборка Clang.
Сборка показывает:
- LLVM+Clang 3.2 успешно собираются...
- исчезают странные сообщения относительно использования <iostream> из GCC библиотеки libstdc++, возникавшие в 3.0;
- и новый вариант библиотеки libc++ тоже собирается, и приложения с ней могут быть скомпонованы.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Clang

Непрочитанное сообщение Olej » 26 сен 2013, 19:18

Olej писал(а):А здесь пусть остаются (продолжаются) вопросы использования Clang.
Снова возникла возможность вернуться к Clang:
- подбросили мне проработать проект, алгоритмика описана, из области обработки речи, распознавание...
- нужно набросать хотя бы прототип...
- начал я прописывать это на C (GCC) ... но просидев над этой сигнальной обработкой 3-4 дня полных, вижу, что таким инструментом я это даже на уровне работающего прототипа буду делать 2-3 мес. ... не годится ...
- взял, и переписал всё сделанное на С - в С++, STL и вектора для представления сигнальных последовательностей ...
- и раз уж так всё повернулось, то параллельно решил прокатывать всё это и в Clang с тем, чтобы потом сравнить по производительности кода и т.д., а задача как-раз очень способствующая оценкам производительности, там очень много цифровой фильтрации, да ещё многоканальной, на длинных эталонных .wav последовательностях...

И первое на что я напоролся (анекдот!) это ошибка такого рода:
- компилируем то что уже есть в объектные файлы:

Код: Выделить всё

bash-4.2$ make -f Makefile.clang
clang  -c -xc++ -w -std=c++11 LyonCommon.cc -o LyonCommon.o
clang  -c -xc++ -w -std=c++11 SecondOrderFilter.cc -o SecondOrderFilter.o
clang  -c -xc++ -w -std=c++11 DesignLyonFilters.cc -o DesignLyonFilters.o
- после этого хочу всё это собрать с единой тестовой задачей LyonTests.cc (что вполне нормально для GCC) ... но получается огромный лист предупреждений (что и рассмотреть их нельзя) + ошибок, даже если запретить все предупреждения:

Код: Выделить всё

bash-4.2$ clang -w -xc++ -lstdc++ LyonTests.cc LyonCommon.o DesignLyonFilters.o SecondOrderFilter.o -o LyonTests
LyonCommon.o:1:1: error: expected unqualified-id
<U+007F>ELF<U+0001><U+0001><U+0001><U+0003>
^
LyonCommon.o:11:580: error: extraneous closing brace ('}')
  ...}
     ^
LyonCommon.o:11:597: error: unknown type name 'U'
  ...U<89><E5>V<83><EC>$<8B>E<U+0010><8B>M...
     ^
LyonCommon.o:11:598: error: expected unqualified-id
  ...<89><E5>V<83><EC>$<8B>E<U+0010><8B>M...
     ^
4 errors generated.
Как оказалось (убил на это кино часа 3 времени!), Clang в этом случае (из-за множества понимаемых ним языков) указание -xc++ воспринимает буквально, и объектные файлы .o тоже хочет перекомпилировать по 2-му разу как C++ код :-o .
Убираем -xc++ с линковки и всё становится на место:

Код: Выделить всё

bash-4.2$ clang  -c -xc++ -w -std=c++11 LyonTests.cc -o LyonTests.o
clang  LyonTests.o LyonCommon.o SecondOrderFilter.o DesignLyonFilters.o -lstdc++ -lm  -o LyonTests

И всё ОК! ;-)
Вот такое вот кино...
Кстати, вторая библиотека то, libm.so - GNU-шная что ни на есть! Т.е. кроме замены libc++.so на libstdc++.so, со всеми прочими DLL по совместимости проблем нет.

P.S. Время не напрасно убил: проектик уже достаточно объёмный, со сложными классами и наследованием ... но по совместимости полетел влёт! ;-)

Ответить

Вернуться в «Программирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей