The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Новая версия набора компиляторов LLVM 3.3"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от opennews (??) on 18-Июн-13, 14:05 
После 7 месяцев разработки представлен (http://lists.cs.uiuc.edu/pipermail/llvm-announce/2013-June/0...) релиз проекта LLVM 3.3 (http://llvm.org) (Low Level Virtual Machine) - GCC совместимого инструментария (компиляторы, оптимизаторы и генераторы кода), компилирующего программы в промежуточный биткод (http://llvm.org/docs/BitCodeFormat.html) RISC подобных виртуальных инструкций (низкоуровневая виртуальная машина с многоуровневой системой оптимизации). Сгенерированный платформонезависимый псевдокод может быть преобразован при помощи JIT-компилятора в машинные инструкции непосредственно в момент выполнения программы.


Новая версия примечательна интеграцией поддержки целевых платформ AArch64 и AMD R600 GPU, поддержкой систем IBM S390 на базе архитектуры z, значительным улучшением поддержки платформ PowerPC и  MIPS. За счёт увеличение качества реализации автоматической векторизации циклов  и реализации серии общих оптимизаций заметно увеличена производительность кода, генерируемого LLVM 3.3.  В Clang доведена до готовности поддержка стандарта C++11, расширены возможности статического анализатора кода, добавлен инструментарий для автоматического преобразования кода C++ в вид, соответствующий спецификации C++11, подготовлены плагины для автоформатирования кода в vim и emacs.

Основные новшества (http://llvm.org/releases/3.3/docs/ReleaseNotes.html) LLVM 3.3:

-  Поддержка 64-разрядной архитектуры AArch64 (ARM64) в качестве целевой платформы. Архитектура AArch64 включает в себя новый набор команд A64, примечательный расширением числа регистров, новыми командами для вычислений с плавающей запятой (FP) и новыми векторными SIMD-инструкциями NEON. В настоящее время работа по реализации порта AArch64 ещё полностью не завершена, но уже поддерживается сборка приложений, написанных в соответствии со стандартами C99 и C++03, для платформы Linux.

-  Интеграция бэкэнда для использования в качестве целевой платформы GPU семейства R600 (HD2XXX - HD7XXX). Изначально бэкенд развивался в репозитории проекта Mesa, но  был перенесён в кодовую базу LLVM. Бэкэнд необходим для компилятора шейдеров LLVM, который в свою очередь требуется для открытой реализации стандарта OpenCL;

-  Увеличено качество кода, генерируемого при использовании  автоматической векторизации циклов (Loop Vectorizer), которая теперь включена по умолчанию при выборе режима оптимизации "-O3". Распараллеливание циклов позволяет заметно поднять производительность кода, генерируемого LLVM 3.3. В итоге независимые тесты производительности фиксируют более высокую производительность кода, собранного c использованием LLVM 3.3, по сравнению  с LLVM 3.2;

-  Представлен новый SLP векторизатор, который пока не используется по умолчанию и требует для своего включения указания опции "-fslp-vectorize". Поддержка ранее доступного векторизатора BB сохранена и может быть активирована при указании опции "-fslp-vectorize-aggressive";

-  Значительно улучшена реализация бэкенда для процессоров PowerPC, в том числе поддержка наборов инструкций PowerPC 2.04/2.05/2.06 и  обеспечение поддержки интегрированного ассемблера;-  Улучшен бэкенд для архитектуры MIPS, добавлена поддержка инструментария  Sourcery CodeBench, добавлены новые опции командной строки (-mxgot/-mno-xgot, -EL/-EB, -mmicromips/-mno-micromips, -msingle-float/-mdouble-float, -mabi=32 (o32 abi) и -mabi=64 (n64 abi)), улучшено качество генерации кода DSP-ASE;
-  Из состава удалён порт CellSPU и прекращена поддержка API для расширенной линковки на уровне промежуточного представления кода. В бэкенде для целевой платформы Hexagonv прекращена поддержка устаревших архитектур hexagonv2 и hexagonv3 (поддержка hexagonv4 и hexagonv5 сохранена).


Основные новшества (http://llvm.org/releases/3.3/docs/ReleaseNotes.html) субпроектов LLVM 3.3:

-  В компиляторе Clang полностью завершена (http://llvm.org/releases/3.3/tools/clang/docs/ReleaseNotes.html) реализация поддержки всех компонентов стандарта C++11, в том числе новых библиотек, таких как std::regex. В анонсе отмечается, что Clang является первым компилятором, поддерживающим в полной мере стандарт C++'11 (разработчики GCC выступали (https://www.opennet.ru/opennews/art.shtml?num=37070) с похожим заявлением). Для упрощения миграции на C++11 в состав включен новый инструмент "C++'11 Migrator", позволяющий автоматически конвертировать код C++ в представление, использующее элементы C++11. Кроме того, в Clang 3.3 добавлена возможность использования символов Unicode в идентификаторах.


В Clang Static Analyzer добавлены дополнительные проверки, позволяющие выполнять межпроцедурный статический анализ кода, выходящий за границы отдельных C++ конструкторов/деструкторов. Для разработчиков, использующих vim и emacs, представлен плагин "Clang Format", выполняющий функции интеллектуальной системы автоматического форматирования кода.


В состав Clang включены патчи, необходимые для  обеспечения сборки ядра Linux, что позволило (http://events.linuxfoundation.org/images/stories/slides/lfcs...) приблизиться к состоянию, когда немодифицированное ядро Linux можно будет пересобрать штатным компилятором Clang. До сих пор для подобной сборки требовалось применение серии патчей, как к ядру, так и к Clang;
-  Отмечен прогресс в реализации проекта Portable Computing Language OpenCL (PoCL (http://pocl.sourceforge.net/)), в рамках которого ведётся разработка полностью открытой реализации стандарта OpenCL, независимой от производителей графических ускорителей. PoCL позволит (https://www.opennet.ru/opennews/art.shtml?num=32092) разработчикам не задумываться об особенностях той или иной реализации стандарта и использовать предоставляемые компилятором оптимизации вместо применения специфических для каждой платформы техник ручной оптимизации. PoCL реализован по модульному принципу, позволяющему использовать различные бэкенды для выполнения OpenCL-ядер на разных типах графических и центральных процессоров;

-  Представлен проект Jade (https://github.com/orcc/jade) (Just-in-time Adaptive Decoder Engine), в рамках которого развивается универсальный движок для декодирования видео, использующих LLVM для JIT-компиляции адаптивных конфигураций декодера видео, определённых комитетом  MPEG Reconfigurable Video Coding (RVC);


-  Обновлена реализация LDC - компилятора для языка программирования D (http://ru.wikipedia.org/wiki/D_%28%D1%8F%...), комбинирующего фронтэнд из состава эталонного компилятора D с бэкендом на базе LLVM, позволяющим генерировать эффективный нативный код. LDC поддерживает генерацию кода для систем  x86/x86_64 Linux, Mac OS X и Windows, и PPC64 для Linux. В разработке находится создание генератора кода для архитектуры ARM.


Из параллельно развивающихся проектов, основанных на LLVM, можно отметить:


-  KLEE (http://klee.llvm.org/) - символьный анализатор и генератор тестовых наборов;

-  Runtime-библиотека compiler-rt (http://compiler-rt.llvm.org/);

-  llvm-mc (http://llvm.org/releases/2.6/docs/ReleaseNotes.html#mc) - автогенератор ассемблера, дизассемблера и других, связанных с машинным кодом компонентов, на основе описаний параметров LLVM-совместимых платформ.

-  VMKit (http://vmkit.llvm.org/) - виртуальная машина для Java и .NET;

-  Реализация функционального языка программирования Pure (http://pure-lang.googlecode.com/);

-   LDC (http://www.dsource.org/projects/ldc) - компилятор для языка D;

-  Roadsend PHP (http://code.roadsend.com/rphp) - оптимизатор, статический и JIT компилятор для языка PHP;

-  Виртуальные машины для Ruby: Rubinius (http://rubini.us/) и MacRuby (http://www.macruby.org/);

-  Unladen Swallow (http://code.google.com/p/unladen-swallow/)  - реализация языка Python;

-  LLVM-Lua (http://code.google.com/p/llvm-lua/)

-  FlashCCompiler (http://llvm.org/devmtg/2008-08/Petersen_FlashCCompiler.pdf) - средст...

URL: http://lists.cs.uiuc.edu/pipermail/llvm-announce/2013-June/0...
Новость: https://www.opennet.ru/opennews/art.shtml?num=37200

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Новая версия набора компиляторов LLVM 3.3"  +11 +/
Сообщение от Аноним (??) on 18-Июн-13, 14:05 
Оптимизирует так круто, что даже бесконечный loop выполняется за пару секунд.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Новая версия набора компиляторов LLVM 3.3"  +7 +/
Сообщение от Andrey (??) on 18-Июн-13, 14:55 
бесконечный loop выполняется на пару секунд быстрее :)
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

14. "Новая версия набора компиляторов LLVM 3.3"  +5 +/
Сообщение от Аноним (??) on 18-Июн-13, 15:37 
> бесконечный loop выполняется на пару секунд быстрее :)

В два раза быстрее!

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

37. "Новая версия набора компиляторов LLVM 3.3"  –4 +/
Сообщение от анон on 18-Июн-13, 17:48 
при значении бесконечности равном двум секундам
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

44. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от IMHO on 18-Июн-13, 20:04 
> Мы все знаем, что Linux — это круто… он выполняет бесконечные циклы за 5 секунд.
> Линус Торвальдс

linux был первым кто выполнял бесконечные цыклы, наверное потому что программа падала в core )))

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

48. "Новая версия набора компиляторов LLVM 3.3"  –1 +/
Сообщение от Аноним (??) on 18-Июн-13, 20:20 
> linux был первым кто выполнял бесконечные цыклы,

А что ваша система делает когда не озадачена? Грузит ящики бочками? :)

Ответить | Правка | ^ к родителю #44 | Наверх | Cообщить модератору

57. "Новая версия набора компиляторов LLVM 3.3"  –1 +/
Сообщение от anonymous (??) on 18-Июн-13, 21:27 
>> linux был первым кто выполнял бесконечные цыклы,
> А что ваша система делает когда не озадачена? Грузит ящики бочками? :)

Перестукивается с серверами майкрософта.

Ответить | Правка | ^ к родителю #48 | Наверх | Cообщить модератору

82. "Новая версия набора компиляторов LLVM 3.3"  +2 +/
Сообщение от arisu (ok) on 19-Июн-13, 09:19 
>> linux был первым кто выполнял бесконечные цыклы,
> А что ваша система делает когда не озадачена? Грузит ящики бочками? :)

вин9x, например, любила странички в свопе перекладывать. нет, серьёзно.

Ответить | Правка | ^ к родителю #48 | Наверх | Cообщить модератору

108. "Новая версия набора компиляторов LLVM 3.3"  +5 +/
Сообщение от Аноним (??) on 19-Июн-13, 15:38 
> странички в свопе перекладывать

Пасьянс?

Ответить | Правка | ^ к родителю #82 | Наверх | Cообщить модератору

2. "Новая версия набора компиляторов LLVM 3.3"  +2 +/
Сообщение от Аноним (??) on 18-Июн-13, 14:19 
> В компиляторе Clang полностью завершена реализация поддержки всех компонентов стандарта C++11, в том числе новых библиотек, таких как std::regex. В анонсе отмечается, что Clang является первым компилятором, поддерживающим в полной мере стандарт C++'11

Они теперь в каждом релизе будут это заявлять?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от BayaN (ok) on 18-Июн-13, 14:38 
> Они теперь в каждом релизе будут это заявлять?

А они это заявляли в предыдущем релизе? По-моему прошлая новость относилась к ветке 3.3 из которой как раз и отпочковался этот релиз.


Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

10. "Новая версия набора компиляторов LLVM 3.3"  +2 +/
Сообщение от Аноним (??) on 18-Июн-13, 15:16 
ага :)
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

12. "Новая версия набора компиляторов LLVM 3.3"  +2 +/
Сообщение от Аноним (??) on 18-Июн-13, 15:34 
"В компиляторе Clang полностью завершена реализация поддержки всех компонентов стандарта C++11, в том числе новых библиотек, таких как std::regex. В анонсе отмечается, что Clang является первым компилятором, поддерживающим в полной мере стандарт C++'11"

> Они теперь в каждом релизе будут это заявлять?

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

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

24. "Новая версия набора компиляторов LLVM 3.3"  +2 +/
Сообщение от arisu (ok) on 18-Июн-13, 16:51 
> Ну наверное до тех пор, пока не появится другой такой компилятор, в
> отношении которого можно будет заявить то же самое.

боюсь, что не появится никогда. как может появиться ещё один компилятор, которы «первый в полной мере поддерживает», если один уже есть?

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

41. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от Очередной Анонимус on 18-Июн-13, 17:59 
> как может появиться ещё один компилятор, которы «первый в полной мере поддерживает», если один уже есть?

Проблема в том, что таких «первых» уже два.

Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

52. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от Аноним (??) on 18-Июн-13, 20:29 
При том у обоих чего-нибудь да не хватает. Но пузомерка зато уже о-го-го :)
Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

70. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от arisu (ok) on 19-Июн-13, 08:57 
>> как может появиться ещё один компилятор, которы «первый в полной мере поддерживает», если один уже есть?
> Проблема в том, что таких «первых» уже два.

FIGHT!

Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

13. "Новая версия набора компиляторов LLVM 3.3"  +4 +/
Сообщение от Аноним (??) on 18-Июн-13, 15:36 
> Они теперь в каждом релизе будут это заявлять?

Будут. И правильно.
Разработчикам gcc очень не хватает хорошего пинка под зад, чтобы прекратить мастурбировать и начать работать.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

26. "Новая версия набора компиляторов LLVM 3.3"  +2 +/
Сообщение от Аноним (??) on 18-Июн-13, 16:55 
> Разработчикам gcc очень не хватает хорошего пинка под зад, чтобы прекратить мастурбировать
> и начать работать.

У разработчиков GCC кодогенерация уже намного лучше чем в шланге. Особенно если посмотреть на всякие там ARM и MIPS, где шланг вообще генерит нечто жуткое, а зачастую и просто глючное. А то что начиная с некоего момента сильно оптимизировать становится намного труднее - так это логично.

Легко ускорить в 2 раза паршивый кодогенератор. А вот ускорить в 2 раза близкий к оптимальному кодогенератор - уже ой. Что логично.

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

68. "Новая версия набора компиляторов LLVM 3.3"  –2 +/
Сообщение от linux must __RIP__ on 19-Июн-13, 08:32 
> У разработчиков GCC кодогенерация уже намного лучше чем в шланге. Особенно если посмотреть на всякие там ARM и MIPS, где шланг вообще генерит нечто жуткое, а зачастую и просто глючное. А то что начиная с некоего момента сильно оптимизировать становится намного труднее - так это логично.

Мы еще помним когда ядро собранное gcc отказывалось грузиться на x86. А вы не помните этого ?

Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

31. "Новая версия набора компиляторов LLVM 3.3"  –2 +/
Сообщение от arisu (ok) on 18-Июн-13, 17:01 
> Разработчикам gcc очень не хватает хорошего пинка под зад, чтобы прекратить мастурбировать
> и начать работать.

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

нет, поддержка цыпыпыадынадын — не интересует. тебя, кстати, тоже не интересует, потому что всё равно ты на нём если и пишешь, то максимум «приветмиры». а вот что не так с поддержкой разных архитектур и с кодогенерацией? пока что тут отстаёт именно clang/llvm, и это им надо работать-работать-работать, чтобы догнать.

и да, LTO в gcc есть. polyhedral model для оптимизации тоже есть. с gold'ом вообще весьма неплохо всё выходит. а превращать gcc в библиотеку для jit-компиляции никто не будет, потому что изначально это не входило в цели проекта.

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

39. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от анон on 18-Июн-13, 17:51 
а как на нём писать, если он не поддерживается?
Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

75. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от arisu (ok) on 19-Июн-13, 09:02 
> а как на нём писать, если он не поддерживается?

кем?

Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

91. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от Аноним (??) on 19-Июн-13, 10:11 
На чём?
Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

43. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от Andrew Kolchoogin (ok) on 18-Июн-13, 19:36 
> ты, без сомнения, можешь подробно рассказать, что именно тебя не устраивает в gcc
> и над чем стоило бы поработать.

Об этом могут рассказать сами разработчики LLVM: http://llvm.org/docs/GettingStarted.html#broken-versions-of-...

Из версии в версию у GCC грабли и баги.

Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

77. "Новая версия набора компиляторов LLVM 3.3"  +2 +/
Сообщение от arisu (ok) on 19-Июн-13, 09:04 
> Об этом могут рассказать сами разработчики LLVM: http://llvm.org/docs/GettingStarted.html#broken-versions-of-...
> Из версии в версию у GCC грабли и баги.

отличная ссылка. прелестная просто. хорошо иллюстрирует отсутствие мозга у фанбоев llvm и у бздешников в частности.

Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

88. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от Andrey Mitrofanov on 19-Июн-13, 09:52 
>> Об этом могут рассказать сами разработчики LLVM: http://llvm.org/docs/GettingStarted.html#broken-versions-of-...
>> Из версии в версию у GCC грабли и баги.
> отличная ссылка. прелестная просто. хорошо иллюстрирует отсутствие мозга у фанбоев llvm
> и у бздешников в частности.

Угу. Штаб-квартира рассказала Кольчугину, чем _его не устраивает GCC. Чем его не устраивает LLVM штаб-квартира не рассказала -- вывод очевиден! LLVM чудо как устраивает Кольчугина. ---Желееезные нервы, трусца.

Ответить | Правка | ^ к родителю #77 | Наверх | Cообщить модератору

61. "Новая версия набора компиляторов LLVM 3.3"  –1 +/
Сообщение от Аноним (??) on 18-Июн-13, 23:06 
> нет, поддержка цыпыпыадынадын — не интересует.

Не интересует функциональность компилятора, интересует функциональность мастурбатора? Проход, не задерживайся.

Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

76. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от arisu (ok) on 19-Июн-13, 09:03 
>> нет, поддержка цыпыпыадынадын — не интересует.
> Не интересует функциональность компилятора, интересует функциональность мастурбатора?
> Проход, не задерживайся.

сколько и какого софта *ты лично* написал на адынадын? без каких его фич, которые не реализваны в gcc, ты не можешь жить? вангую, что внятного ответа не будет. зато поорать про «поддержку и развитие» — завсегда готов, не так ли?

Ответить | Правка | ^ к родителю #61 | Наверх | Cообщить модератору

109. "Новая версия набора компиляторов LLVM 3.3"  –1 +/
Сообщение от 0xd34df00d (ok) on 19-Июн-13, 18:01 
С выходом gcc 4.8 жаловаться действительно (почти) не на что.

Только вот поддержка бажная — например, в 4.7 (который до сих пор в продакшене), есть довольно стремный баг, когда нельзя захватить лямбду в другую лямбду по значению, если другая лямбда используется в списке инициализации. Кое-какие проблемы с шаблонами есть.

Впрочем, в clang тоже багов хватает, и даже поболе, чем в gcc.

Не буду, впрочем, упоминать софт, который я на 11 пишу.

Ответить | Правка | ^ к родителю #76 | Наверх | Cообщить модератору

111. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от arisu (ok) on 19-Июн-13, 18:29 
я ж у анонимуса спрашивал, а не у человека, который действительно код пишет.

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

неоригинально скажу, что причина — в изначальной кривости самой фичи. не надо было пихать в стандарт невпихуемое, вот и всё.

> Кое-какие проблемы с шаблонами есть.

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

Ответить | Правка | ^ к родителю #109 | Наверх | Cообщить модератору

112. "Новая версия набора компиляторов LLVM 3.3"  –1 +/
Сообщение от 0xd34df00d (ok) on 19-Июн-13, 18:36 
> неоригинально скажу, что причина — в изначальной кривости самой фичи. не надо
> было пихать в стандарт невпихуемое, вот и всё.

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

А называть лямбды кривыми — так, простите, тут недалеко и до того, чтобы сами плюсы кривыми назвать. Впрочем, сегодняшние лямбды действительно кривоваты — ни полиморфизма тебе, ничего. В C++14 починят, впрочем (и, кстати, где-то в шланге это тоже уже реализовано).

>> Кое-какие проблемы с шаблонами есть.
> тоже фича та ещё. декларативный тюринг-полный язык, причём атомно неудобный — крутизна
> просто. чем меньше эта фигня используется — тем лучше. жуть.

ХЗ, я на темплейтах написал генератор запросов и функторов для недоORM на плюсах. Удобно и красиво и функционально, да. Любитель хаскеля во мне радуется.

При должном владении шаблоны вообще существенно сокращают время разработки.

Ответить | Правка | ^ к родителю #111 | Наверх | Cообщить модератору

113. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от arisu (ok) on 19-Июн-13, 18:58 
> А называть лямбды кривыми — так, простите, тут недалеко и до того,
> чтобы сами плюсы кривыми назвать.

ТЫ ЗНАЛ!

> При должном владении шаблоны вообще существенно сокращают время разработки.

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

Ответить | Правка | ^ к родителю #112 | Наверх | Cообщить модератору

115. "Новая версия набора компиляторов LLVM 3.3"  –1 +/
Сообщение от 0xd34df00d (ok) on 19-Июн-13, 19:00 
>> При должном владении шаблоны вообще существенно сокращают время разработки.
> а также помогают писать неподдерживаемый код. пардон, книга Александреску, например, выглядит
> как гримуар, написаный на неземном языке.

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

Условный перлокод тоже выглядит весьма страшно для неподготовленного читателя, но и там сферы применения есть. «Не нужно» не нужно :3

Ответить | Правка | ^ к родителю #113 | Наверх | Cообщить модератору

116. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от arisu (ok) on 19-Июн-13, 19:14 
применить можно почти любую фигню, но фигнёй-то от этого она быть не перестаёт, увы. и я не то, чтобы совсем уж «неподготовленый читатель». но всё равно гримуар.
Ответить | Правка | ^ к родителю #115 | Наверх | Cообщить модератору

117. "Новая версия набора компиляторов LLVM 3.3"  +2 +/
Сообщение от arisu (ok) on 19-Июн-13, 19:14 
p.s. Александреску-то не зря на D убежал. :3
Ответить | Правка | ^ к родителю #115 | Наверх | Cообщить модератору

114. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от arisu (ok) on 19-Июн-13, 18:59 
p.s. а всякие генераторы и прочее пишутся на DSL. который потом при необходимости транслируется в целевой язык. всё равно шаблонная магия хреново отлаживается.
Ответить | Правка | ^ к родителю #112 | Наверх | Cообщить модератору

18. "Новая версия набора компиляторов LLVM 3.3"  +10 +/
Сообщение от Andrey Mitrofanov on 18-Июн-13, 15:52 
>>первым компилятором, поддерживающим в полной мере стандарт C++'11
> Они теперь в каждом релизе будут это заявлять?

Ты не понял _тонкого _слегка рекурсивного юмора автора *этих* новостей:

Почувствуй переход от полной _цены к полной _мере, переход первого места от конкурсанта к конкурсанту! Чувствуешь? Чувствуешь!!?


18.06.2013 13:34  Новая версия набора компиляторов LLVM 3.3
...отмечается, что Clang является первым компилятором, поддерживающим в полной мере стандарт C++'11 (разработчики GCC выступали с похожим заявлением)

31.05.2013 23:20  Обновление набора компиляторов GCC 4.8.1
...сделало G++ первым компилятором C++, реализовавшим все значительные возможности стандарта C++11


20.04.2013 23:45  В Clang доведена до готовности поддержка стандарта C++11
...полностью завершена реализация поддержки всех компонентов стандарта C++11. Статус полной совместимости с C++11 был достигнут ... Примечательно, что проектом GCC реализация стандарта C++11 ещё не завершена.

21.12.2012 14:23  Новая версия набора компиляторов LLVM 3.2
...Clang обеспечена полноценная поддержка стандарта C++'11.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

49. "Новая версия набора компиляторов LLVM 3.3"  +2 +/
Сообщение от Аноним (??) on 18-Июн-13, 20:20 
> Они теперь в каждом релизе будут это заявлять?

И, главное, опять соврали - ниже перечислено то чего не хватает.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

3. "Новая версия набора компиляторов LLVM 3.3"  +2 +/
Сообщение от Главные Редакторы (ok) on 18-Июн-13, 14:33 
Главное преимуществ LLVM в скорости компиляции. Но это нужно только программисту пишущему программу, для программистов живущих в сферическом вакууме и создающих уникальные "вещи сами в себе" с точки зрения архитектуры и элегантности найденных решений. Кто вычислит взаимосвязь между скоростью компиляции и временем необходимым для создания программы?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Новая версия набора компиляторов LLVM 3.3"  –3 +/
Сообщение от BayaN (ok) on 18-Июн-13, 14:43 
> Главное преимуществ LLVM в скорости компиляции.

Ты зря стесняешься, сходи по ссылке http://llvm.org/ - там тебе расскажут в чем преимущества и зачем оно нужно.


Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

9. "Новая версия набора компиляторов LLVM 3.3"  +3 +/
Сообщение от Хрен с горы on 18-Июн-13, 15:09 
И заодно Apple Developers Kit предложат за недорого?
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

15. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от Аноним (??) on 18-Июн-13, 15:37 
> И заодно Apple Developers Kit предложат за недорого?

Вы так говорите, как будто это что-то плохое.

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

28. "Новая версия набора компиляторов LLVM 3.3"  –1 +/
Сообщение от Аноним (??) on 18-Июн-13, 16:56 
> Вы так говорите, как будто это что-то плохое.

Грeбля под одну контору - да, это плохое. Это вендорлоком попахивает.

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

53. "Новая версия набора компиляторов LLVM 3.3"  –1 +/
Сообщение от anonymus on 18-Июн-13, 21:18 
Intel, AMD, ARM, Qualcom, MIPS (part of Imagination Technologies), как-то слишком много названий у одной конторы.
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

59. "Новая версия набора компиляторов LLVM 3.3"  –1 +/
Сообщение от anonymus on 18-Июн-13, 21:48 
Ах да, и всеми вами любимый Google, и немного IBM.
Ответить | Правка | ^ к родителю #53 | Наверх | Cообщить модератору

63. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от Аноним (??) on 18-Июн-13, 23:12 
> Intel, AMD, ARM, Qualcom, MIPS (part of Imagination Technologies), как-то слишком много названий у одной конторы.

Контора зовется Apple, а те, кого ты перечислил - это свадебные генералы.

Ответить | Правка | ^ к родителю #53 | Наверх | Cообщить модератору

65. "Новая версия набора компиляторов LLVM 3.3"  –1 +/
Сообщение от anonymus on 18-Июн-13, 23:15 
Таким образом, разработчики из этих компаний, которые коммитят код в LLVM просто тратят оплаченное их компанией время?
Ответить | Правка | ^ к родителю #63 | Наверх | Cообщить модератору

74. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от arisu (ok) on 19-Июн-13, 09:01 
> Таким образом, разработчики из этих компаний, которые коммитят код в LLVM просто
> тратят оплаченное их компанией время?

примерно так, да.

Ответить | Правка | ^ к родителю #65 | Наверх | Cообщить модератору

90. "Новая версия набора компиляторов LLVM 3.3"  –1 +/
Сообщение от anonymus on 19-Июн-13, 10:02 
Финансы, подсказывают мне, что если бы эти работы не окупались в перспективе, то никто бы за них не взялся. Учи NPV.
Ответить | Правка | ^ к родителю #74 | Наверх | Cообщить модератору

101. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от arisu (ok) on 19-Июн-13, 12:15 
> Учи NPV.

а ты — русский.

Ответить | Правка | ^ к родителю #90 | Наверх | Cообщить модератору

105. "Новая версия набора компиляторов LLVM 3.3"  –1 +/
Сообщение от anonymus on 19-Июн-13, 12:54 
Чистая приведенная стоимость (ЧПС), тебе нравится больше?
Ответить | Правка | ^ к родителю #101 | Наверх | Cообщить модератору

106. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от Andrey Mitrofanov on 19-Июн-13, 13:46 
> Чистая приведенная стоимость (ЧПС), тебе нравится больше?

MBA-спиик в любом виде _не лучше.

Ответить | Правка | ^ к родителю #105 | Наверх | Cообщить модератору

107. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от arisu (ok) on 19-Июн-13, 14:08 
> Чистая приведенная стоимость (ЧПС), тебе нравится больше?

мне без разницы, я намекал, что запятая лишняя.

Ответить | Правка | ^ к родителю #105 | Наверх | Cообщить модератору

64. "Новая версия набора компиляторов LLVM 3.3"  –2 +/
Сообщение от Аноним (??) on 18-Июн-13, 23:12 
> Это вендорлоком попахивает.

Ты так говоришь, как будто это что-то плохое.

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

16. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от Аноним (??) on 18-Июн-13, 15:39 
Противники LLVM после каждой новости о нем, с очередным достижением, в очередной раз в чем-то утираются, и каждый раз что-то злобно квакают не в тему.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

19. "Новая версия набора компиляторов LLVM 3.3"  +2 +/
Сообщение от Аноним (??) on 18-Июн-13, 16:12 
А яблофилы громко об этом кричат :)
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

20. "Новая версия набора компиляторов LLVM 3.3"  +6 +/
Сообщение от Аноним (??) on 18-Июн-13, 16:16 
> Противники LLVM

У LLVM нет противников.

Есть только здравомыслящие люди, которые настороженно относятся к использованию в опенсорсе технологии, полностью контролируемой известной проприетарной компанией.

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

21. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от Аноним (??) on 18-Июн-13, 16:19 
> Есть только здравомыслящие люди, которые настороженно относятся к использованию в опенсорсе технологии, полностью контролируемой известной проприетарной компанией.

Впрочем, на них найдутся не менее здравомыслящие люди, считающие, что опенсорс должен существовать только на подачки проприетарных корпораций, и только под их жестким контролем. И ни в коему случае не пытался конкурировать с их продукцией.

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

27. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от arisu (ok) on 18-Июн-13, 16:55 
>> Противники LLVM
> У LLVM нет противников.
> Есть только здравомыслящие люди, которые настороженно относятся к использованию в опенсорсе
> технологии, полностью контролируемой известной проприетарной компанией.

у тебя что, исходники отберут, что ли? даже если и закроют новые версии, старые наработки отстанутся.

а проект, тем не менее, очень достойный. и как минимум один из его плюсов — это конкуренция с gcc. потому что без конкурентов разработчики могут и забить: «всё равно мы единственные, а потому — лучшие».

хотя вот идиотскую caret, которую впилили в gcc 4.8 — так лучше бы забили.

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

29. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от Аноним (??) on 18-Июн-13, 16:57 
> у тебя что, исходники отберут, что ли? даже если и закроют новые
> версии, старые наработки отстанутся.

Ну да. Вот только как ты относишься к всяким некрофагам, уцепившимся за gcc 2.95 или 4.2 накрайняк? Вот ты будешь вообще проверять как твоя программа билдуется в gcc 2.95? :)

Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

33. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от arisu (ok) on 18-Июн-13, 17:08 
> Вот ты будешь вообще проверять как
> твоя программа билдуется в gcc 2.95? :)

на 4.6 приходилось. хреново билдится. :3

Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

47. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от Аноним (??) on 18-Июн-13, 20:17 
> на 4.6 приходилось. хреново билдится. :3

По сравнению с перспективой билдить 4.2 (который умеет валиться с internal error без особых на то причин) и тем паче 2.95 - не так уж 4.6 и плох :). Хотя спору нет, 4.7-4.8 лучше.

Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

73. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от arisu (ok) on 19-Июн-13, 09:00 
но использовали же. -O0 наш друг, если что.
Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

35. "Новая версия набора компиляторов LLVM 3.3"  –1 +/
Сообщение от Клыкастый (ok) on 18-Июн-13, 17:43 
Код открыт. Форкни - контролируй сам.
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

46. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от Аноним (??) on 18-Июн-13, 20:13 
> Код открыт. Форкни - контролируй сам.

- А 20 гопников могут дать мне в табло...
- Но ты же тоже можешь дать в лицо 20 гопникам! Все честно!

Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

87. "Новая версия набора компиляторов LLVM 3.3"  –1 +/
Сообщение от Клыкастый (ok) on 19-Июн-13, 09:52 
>> Код открыт. Форкни - контролируй сам.
> - А 20 гопников могут дать мне в табло...
> - Но ты же тоже можешь дать в лицо 20 гопникам! Все
> честно!

Во как. Оказывается GPL уже не работает?


Ответить | Правка | ^ к родителю #46 | Наверх | Cообщить модератору

94. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от Andrey Mitrofanov on 19-Июн-13, 10:32 
>>> Код открыт. Форкни - контролируй сам.
>> - А 20 гопников могут дать мне в табло...
>> - Но ты же тоже можешь дать в лицо 20 гопникам! Все
>> честно!
> Во как. Оказывается GPL уже не работает?

Работает! Требуй у 20 гопников, давших тебе в лицо, передать тебе также все исходные удары в их лицца. И через суд, если не!!

Ответить | Правка | ^ к родителю #87 | Наверх | Cообщить модератору

62. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от Аноним (??) on 18-Июн-13, 23:11 
> Код открыт. Форкни - контролируй сам.

udev уже как-то форкнули. Можно не напоминать, чем это закончилось?
Помимо желания форкать, нужна еще и квалификация.

И авторитет. Если Вася Пупкин форкнет LLVM и начнет запиливать фичи, а яббл начнет запиливать свои (не спеша делиться кодом) - чьими фичами будут пользоваться в 99.99999% проектов?

Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

69. "Новая версия набора компиляторов LLVM 3.3"  –1 +/
Сообщение от linux must __RIP__ on 19-Июн-13, 08:54 
>> Код открыт. Форкни - контролируй сам.
> udev уже как-то форкнули. Можно не напоминать, чем это закончилось?
> Помимо желания форкать, нужна еще и квалификация.
> И авторитет. Если Вася Пупкин форкнет LLVM и начнет запиливать фичи, а
> яббл начнет запиливать свои (не спеша делиться кодом) - чьими фичами
> будут пользоваться в 99.99999% проектов?

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

Ответить | Правка | ^ к родителю #62 | Наверх | Cообщить модератору

71. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от Аноним (??) on 19-Июн-13, 08:58 
а сутенер просто спонсирует благродных дам.
Ответить | Правка | ^ к родителю #69 | Наверх | Cообщить модератору

92. "Новая версия набора компиляторов LLVM 3.3"  –1 +/
Сообщение от Клыкастый (ok) on 19-Июн-13, 10:17 
> а сутенер просто спонсирует благродных дам.

страшно представить, как выглядит GPL в таких аналогиях.

Ответить | Правка | ^ к родителю #71 | Наверх | Cообщить модератору

95. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от Andrey Mitrofanov on 19-Июн-13, 10:34 
>> а сутенер просто спонсирует благродных дам.
> страшно представить, как выглядит GPL в таких аналогиях.

Сутенёры предоставляют справку из докома о том, что они являются полностью оригинальным Произведением, рождены без исходников, просто Чудом.

Ответить | Правка | ^ к родителю #92 | Наверх | Cообщить модератору

97. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от Клыкастый (ok) on 19-Июн-13, 10:54 
Не разочаровал.
Ответить | Правка | ^ к родителю #95 | Наверх | Cообщить модератору

89. "Новая версия набора компиляторов LLVM 3.3"  –1 +/
Сообщение от Клыкастый (ok) on 19-Июн-13, 09:55 
>> Код открыт. Форкни - контролируй сам.
> udev уже как-то форкнули. Можно не напоминать, чем это закончилось?
> Помимо желания форкать, нужна еще и квалификация.

Так внезапно выяснится, что GPL не спасает...

> И авторитет. Если Вася Пупкин форкнет LLVM и начнет запиливать фичи, а
> яббл начнет запиливать свои (не спеша делиться кодом) - чьими фичами
> будут пользоваться в 99.99999% проектов?

...дважды выяснится.

И вдруг выяснится, просто нужна контора, которая делится открытым кодом. Опачки, для LLVM такая - есть.


Ответить | Правка | ^ к родителю #62 | Наверх | Cообщить модератору

96. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от Andrey Mitrofanov on 19-Июн-13, 10:41 
>> Помимо желания форкать, нужна еще и квалификация.
> Так внезапно выяснится, что GPL не спасает...
>> И авторитет. Если Вася Пупкин форкнет LLVM и начнет запиливать фичи, а
> ...дважды выяснится.

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

> И вдруг выяснится, просто нужна контора, которая делится открытым кодом. Опачки, для
> LLVM такая - есть.

Ойдаладно?? Одна Правильная Контора? Марш в приёмную ФСБ за Самым Правильным Кодом.

Ответить | Правка | ^ к родителю #89 | Наверх | Cообщить модератору

98. "Новая версия набора компиляторов LLVM 3.3"  –1 +/
Сообщение от Клыкастый (ok) on 19-Июн-13, 10:57 
> С чего ты взял, что _GPL_ должна скасать от отсутствия квалификации

Я? это жплботы тут верещат, что gpl от всех напастей.

> Ойдаладно?? Одна Правильная Контора?

Код открыт. Подключай свою, будет второй. И более того, форкни и закрой исходники - накажи проклятых Эпплов.

> Марш в приёмную ФСБ за Самым Правильным Кодом.

Ударился, не иначе.

Ответить | Правка | ^ к родителю #96 | Наверх | Cообщить модератору

67. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от Аноним (??) on 19-Июн-13, 00:36 
>> Противники LLVM
> У LLVM нет противников. Есть только здравомыслящие люди, которые настороженно относятся к использованию в опенсорсе технологии, полностью контролируемой известной проприетарной компанией.

Это называется - "Я не трус, но я боюсь" (С).

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

50. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от Аноним (??) on 18-Июн-13, 20:22 
> чем преимущества и зачем оно нужно.

Ага, ты еще предложи на сайте майкрософта преимущества винды смотреть. А это карманный проектик эппла, который по маркетинговому буллшиту спец великий.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

54. "Новая версия набора компиляторов LLVM 3.3"  –2 +/
Сообщение от anonymus on 18-Июн-13, 21:20 
>> чем преимущества и зачем оно нужно.
> Ага, ты еще предложи на сайте майкрософта преимущества винды смотреть. А это
> карманный проектик эппла, который по маркетинговому буллшиту спец великий.

Ага, а так же карманный проектик Intel, AMD, Qualcom, ARM, MIPS...

Ответить | Правка | ^ к родителю #50 | Наверх | Cообщить модератору

78. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от Аноним (??) on 19-Июн-13, 09:04 
>>> чем преимущества и зачем оно нужно.
>> Ага, ты еще предложи на сайте майкрософта преимущества винды смотреть. А это
>> карманный проектик эппла, который по маркетинговому буллшиту спец великий.
> Ага, а так же карманный проектик Intel, AMD, Qualcom, ARM, MIPS...

чтро за бред? У Intel - ICC, у AMD open64.

Ответить | Правка | ^ к родителю #54 | Наверх | Cообщить модератору

83. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от anonymus on 19-Июн-13, 09:37 
Угу, а драйвер Intel OpenCL использует LLVM, HSA компилятор от AMD использует LLVM. nVidia использует LLVM для CUDA.
Ответить | Правка | ^ к родителю #78 | Наверх | Cообщить модератору

118. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от Аноним (??) on 20-Июн-13, 01:40 
> Угу, а драйвер Intel OpenCL использует LLVM,

И где у интеля LLVM в драйвере? И где, собственно. сам драйвер с opencl? Им все ипут на этот счет мозг, но готового результата нет.

Ответить | Правка | ^ к родителю #83 | Наверх | Cообщить модератору

7. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от обычный программист on 18-Июн-13, 14:56 
>Главное преимуществ LLVM в скорости компиляции.

В свое время я это проверял,
взял свой проект(c++), благо там билд система основана на cmake,
и собрал с помощью clang и gcc, время было практически одинаково: 1 мин 40 сек на 4 ядерном проце +- 5 сек,
так что с учетом того, что и код он оптимизирует похуже использовать его не вижу смысла.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

110. "Новая версия набора компиляторов LLVM 3.3"  –1 +/
Сообщение от 0xd34df00d (ok) on 19-Июн-13, 18:07 
Во-первых, на богатом темплейтами коде clang из svn месячной давности c -O2 у меня компилирует куда шустрее, чем gcc 4.7 с -O2, процентов на 20. Правда, тут уже смотреть надо, что именно включает -O2 для каждого из компиляторов.

Во-вторых, у clang куда понятнее сообщения об ошибках, это надо признать. Особенно с теми же темплейтами. Даже gcc 4.7 пока еще не сравнится (4.8 не пробовал, впрочем).

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

8. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от Аноним (??) on 18-Июн-13, 15:03 
> Главное преимуществ LLVM в скорости компиляции.

Преимущество LLVM перед чем? Может, ты имел в виду "преимущество clang перед gcc и g++"? Так новость не о нём вообще-то, а об LLVM. Если говорить о преимуществах LLVM перед GCC (который GNU Compiler Collection, а не GNU C Compiler), как минимум одно очевидно — GCC нельзя использовать в качестве JIT-компилятора, в отличии от.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

23. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от freehck email(ok) on 18-Июн-13, 16:32 
Если, конечно, считать это преимуществом.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

32. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от Аноним (??) on 18-Июн-13, 17:03 
> Если, конечно, считать это преимуществом.

Иногда это может и преимуществом быть. Но очень нишевым. Ну да, из GCC неудобно делать генерилку кода для GPU, а самолично писать парсер opencl-ного диалекта си может и подзадолбать. Вот где-то там оно даже осмысленно. Хотя даже там с ним амд намучались по полной программе, с превышением.

Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

25. "Новая версия набора компиляторов LLVM 3.3"  +2 +/
Сообщение от arisu (ok) on 18-Июн-13, 16:53 
вообще-то одно из нехилых преимуществ *llvm* в том, что это очень неплохая библиотека для jit- и aot- компиляции, которую можно встраивать в свои проекты. а так — я не знаю, пишет ли кто-то вручную на ассемблере llvm. вряд ли.

а clang — это немного другой проект, вообще-то.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

30. "Новая версия набора компиляторов LLVM 3.3"  –1 +/
Сообщение от Аноним (??) on 18-Июн-13, 17:01 
> вообще-то одно из нехилых преимуществ *llvm* в том, что это очень неплохая
> библиотека для jit- и aot- компиляции, которую можно встраивать в свои проекты.

Кстати да, как портабельная генерилка кода для всяких там GPU и прочая - ну вроде нормально смотрится. Если разовьется до достойного уровня как кодогенератор представляющий ценность - так оно и к gcc через плагины привинчивается. Другое дело что качество кодогенерации там оставляет желать и смысл этим пользоваться - в районе нуля.

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

55. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от anonymus on 18-Июн-13, 21:24 
>> вообще-то одно из нехилых преимуществ *llvm* в том, что это очень неплохая
>> библиотека для jit- и aot- компиляции, которую можно встраивать в свои проекты.
> Кстати да, как портабельная генерилка кода для всяких там GPU и прочая
> - ну вроде нормально смотрится. Если разовьется до достойного уровня как
> кодогенератор представляющий ценность - так оно и к gcc через плагины
> привинчивается. Другое дело что качество кодогенерации там оставляет желать и смысл
> этим пользоваться - в районе нуля.

А будет пример тестов (кроме OpenMP) в которых Clang/LLVM, DragonEgg/LLVM, сильно проигрывают GCC?

Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

72. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от arisu (ok) on 19-Июн-13, 08:59 
> А будет пример тестов (кроме OpenMP) в которых Clang/LLVM, DragonEgg/LLVM, сильно проигрывают
> GCC?

да запросто. берём MIPS. собираем что-нибудь при помощи gcc. запускаем. собираем что-нибудь… wait! oh, shi~~~

Ответить | Правка | ^ к родителю #55 | Наверх | Cообщить модератору

84. "Новая версия набора компиляторов LLVM 3.3"  –1 +/
Сообщение от anonymus on 19-Июн-13, 09:41 
Вы лично работаете с MIPS? Или ARM, в крайнем случае?

Хотите пользоваться GCC пользуйтесь, или кто-то не дает? А орать, что что-то не нужно, по причине, что оно вам не нравится, не стоит

Ответить | Правка | ^ к родителю #72 | Наверх | Cообщить модератору

93. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от Клыкастый (ok) on 19-Июн-13, 10:20 
> Хотите пользоваться GCC пользуйтесь, или кто-то не дает? А орать, что что-то
> не нужно, по причине, что оно вам не нравится, не стоит

arisu тут один из немногих вменяемых, который не орёт "не надо". пройдитесь по треду.

Ответить | Правка | ^ к родителю #84 | Наверх | Cообщить модератору

100. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от arisu (ok) on 19-Июн-13, 12:13 
> А орать, что что-то не нужно, по причине, что оно вам не нравится, не стоит

и где я орал «не нужно»? ты попросил показать, когда clang/llvm сильно проигрывает. я показал: проигрыш бесконечен. с чего ты решил, что это равносильно «не нужно» — я не знаю.

Ответить | Правка | ^ к родителю #84 | Наверх | Cообщить модератору

119. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от Аноним (??) on 20-Июн-13, 01:45 
> А будет пример тестов (кроме OpenMP)

Ага, сразу отмазки начались - видио вы в курсе что в ряде проектов слив в разы :)

> в которых Clang/LLVM, DragonEgg/LLVM, сильно проигрывают GCC?

Для начала можно посмотреть как с этим амдшники мумукались. Там просто получить технически валидный поток команд для VLIW - целая эпопея. Про оптимизацию речь вообще не идет!

Крутая архитектура, крутые концепции, а про то что бывают VLIW-образные процессоры авторы этой поделки не просто не слышали но и в своих архитектурах и концепциях не допустили ни малейшей возможности что такое может существовать. Поэтому кодогенерация VLIW привинчена через феерические костыли. Отдельная фаза постпроцессинга разбирает тот бред который нагенерил LLVM и переупорядочивает код до состояния когда он хотя-бы будет технически валиден. Сам по себе LLVM этого вообще не может. Про то чтобы оптимально группировать команды в группы - речь и вовсе не идет.

В результате через 2 года траха у амдшников привели к тому что оно после этого на генерации шейдеров не очень сливает местечковому самопальному кодогенератору, куда более простому. Итого? Два года въе нескольких разработчиков vs НУЛЕВОЙ видимый юзеру результат. Налицо success story из разряда "как дурной прожект менеджмент может все хорошенько отфакапнуть".

Ответить | Правка | ^ к родителю #55 | Наверх | Cообщить модератору

123. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от Алексей (??) on 21-Июн-13, 10:59 
>> А будет пример тестов (кроме OpenMP)
> Ага, сразу отмазки начались - видио вы в курсе что в ряде
> проектов слив в разы :)

На самом деле все из-за того, что OpenMP доступен не под gpl только для GCC:
http://habrahabr.ru/post/184096/

Ответить | Правка | ^ к родителю #119 | Наверх | Cообщить модератору

124. "Новая версия набора компиляторов LLVM 3.3"  –1 +/
Сообщение от anonymus on 21-Июн-13, 17:03 
А как это происходит в Open64, или в другом многоархитектурном компиляторе?
Ответить | Правка | ^ к родителю #119 | Наверх | Cообщить модератору

17. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от ILoveMicrosoft (ok) on 18-Июн-13, 15:44 
> CUDA Compiler - позволяет сгенерировать GPU-инструкции из кода, написанного на языках Си, Си++ и Fortran;

Не понял, безотносительно к типу GPU (производителю)?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

22. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от ананим on 18-Июн-13, 16:29 
Да, если этот производитель nvidia.

зыж
по ссылке уже что ли шлёпнул бы.
а там и комменты почитал.

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

34. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от lucentcode (ok) on 18-Июн-13, 17:31 
LLVM развивается в нужную сторону. Скоро он станет отличной альтернативой GCC, даже для сборки Linux. Интересно, какой дистрибутив первым наладит процесс сборки с использованием сабжа?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

36. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от iZEN (ok) on 18-Июн-13, 17:45 
> LLVM развивается в нужную сторону. Скоро он станет отличной альтернативой GCC, даже
> для сборки Linux.
> Интересно, какой дистрибутив первым наладит процесс сборки с использованием сабжа?

FreeBSD давно уже собирается LLVM/Clang, а линуксу нужны какие-то нанотехнологичные патчи в самом LLVM/Clang и в своих исходниках.


Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

40. "Новая версия набора компиляторов LLVM 3.3"  +5 +/
Сообщение от анон on 18-Июн-13, 17:55 
> давно уже собирается

я давно уже собираюсь стать миллиардером

Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

60. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от Аноним (??) on 18-Июн-13, 22:15 
Очки протри. Уже собирается, а не собирается начать собираться.
Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

80. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от arisu (ok) on 19-Июн-13, 09:12 
всё, линуксокапец пришёл!
Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

51. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от Аноним (??) on 18-Июн-13, 20:26 
> Скоро он станет отличной альтернативой GCC,

...и под всякую эмбедовку нас опять начнут пичкать проприетарными SDK? Спасибо, это мы уже проходили. Добавки не надо. Корпорасты - это такие существа, которым дай волю и они термоядерные ковровые бомбардировки учинят. Если это сулит профит.

> Интересно, какой дистрибутив первым наладит процесс сборки с использованием сабжа?

Гента какая-нибудь, которым вечно дурь разработчиковскую девать некуда.

Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

56. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от anonymus on 18-Июн-13, 21:26 
> LLVM развивается в нужную сторону. Скоро он станет отличной альтернативой GCC, даже
> для сборки Linux. Интересно, какой дистрибутив первым наладит процесс сборки с
> использованием сабжа?

Debian, где-то была новость, что они собрали 80%, или больше своего репозитория, кроме ядра.

Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

38. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от Аноним (??) on 18-Июн-13, 17:49 
"Для разработчиков, использующих vim и emacs, представлен плагин "Clang Format", выполняющий функции интеллектуальной системы автоматического форматирования кода."

clang-format - это не плагин для вима с емаксом, а отдельная программа, выдающая отформатированный код в stdout

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

42. "Новая версия набора компиляторов LLVM 3.3"  +4 +/
Сообщение от valexey on 18-Июн-13, 18:30 
> В компиляторе Clang полностью завершена реализация поддержки всех
> компонентов стандарта C++11, в том числе новых библиотек, таких как std::regex.

Врут.

Не реализовано:
1) Minimal support for garbage collection and reachability-based leak detection
2) Abandoning a process and at_quick_exit
3) Extended integral types

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

45. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от Аноним (??) on 18-Июн-13, 20:12 
Ну а что вы ожидали от эппла? Громкий маркетинговый буллшит - штука такая.
Ответить | Правка | ^ к родителю #42 | Наверх | Cообщить модератору

58. "Новая версия набора компиляторов LLVM 3.3"  –1 +/
Сообщение от anonymus on 18-Июн-13, 21:45 
> Ну а что вы ожидали от эппла? Громкий маркетинговый буллшит - штука
> такая.

А может расскажешь нам, как компилятор может брать на себя работу стандартной библиотеки в случае at_quick_exit, или зачем делать "reachability-based leak detection," если уже есть инструмент основаный на LLVM, который реализует данную функциональность? От Apple там только 5 разработчиков, все остальное из других компаний индустрии.

Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

66. "Новая версия набора компиляторов LLVM 3.3"  +2 +/
Сообщение от valexey on 18-Июн-13, 23:49 
Стандартная библиотека это часть языка. И у clang она своя. Это раз.

Два - они же в анонсе хвастают в том числе и фичами стандартной библиотеки, например тем же std::regex.

Три - "reachability-based leak detection" нужен просто потому, что он есть в стандарте. Без него реализация не полна.

Ответить | Правка | ^ к родителю #58 | Наверх | Cообщить модератору

81. "Новая версия набора компиляторов LLVM 3.3"  +2 +/
Сообщение от arisu (ok) on 19-Июн-13, 09:15 
затем, чтобы не врать в заявлении о «полной реализации всех компонентов стандарта». если что-то не сделано, то это никак не «полная реализация». усёк?
Ответить | Правка | ^ к родителю #58 | Наверх | Cообщить модератору

85. "Новая версия набора компиляторов LLVM 3.3"  –1 +/
Сообщение от anonymus on 19-Июн-13, 09:43 
Если что-то не нужно делать, его не нужно делать.

И, arisu, меньше яду...

Ответить | Правка | ^ к родителю #81 | Наверх | Cообщить модератору

102. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от arisu (ok) on 19-Июн-13, 12:18 
> Если что-то не нужно делать, его не нужно делать.

вот именно. если полной реализации нет — не нужно писать, что она есть.

Ответить | Правка | ^ к родителю #85 | Наверх | Cообщить модератору

120. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от Аноним (??) on 20-Июн-13, 01:48 
> А может расскажешь нам, как компилятор может брать на себя работу стандартной
> библиотеки в случае at_quick_exit,

Внезапно, стандартная либа обычно с компилером поставляется. Или где-то рядом.

> или зачем делать "reachability-based leak detection,"

Хорошая отмазка - "это не нyжно, так яппл сказал" :). Так, а что там еще посчитали "лишним" в погоне за маркетинговым буллшитом? :)

> От Apple там только 5 разработчиков,

При том clang только они и пилят по сути. А остальные - ну да, там LLVM всякий пилят и что еще.

Ответить | Правка | ^ к родителю #58 | Наверх | Cообщить модератору

79. "Новая версия набора компиляторов LLVM 3.3"  +2 +/
Сообщение от arisu (ok) on 19-Июн-13, 09:07 
они уже запилили поддержку nested functions и http://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html ? или для qsort надо по-прежнему писать отдельную функцию, которой даже параметр не передашь?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

86. "Новая версия набора компиляторов LLVM 3.3"  –2 +/
Сообщение от anonymus on 19-Июн-13, 09:46 
> они уже запилили поддержку nested functions и http://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html
> ? или для qsort надо по-прежнему писать отдельную функцию, которой даже
> параметр не передашь?

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

Ответить | Правка | ^ к родителю #79 | Наверх | Cообщить модератору

99. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от BayaN (ok) on 19-Июн-13, 11:56 
>GNU C не является стандартом

Он очень туда просится, но в комитете к сожалению одни наркоманы.

Ответить | Правка | ^ к родителю #86 | Наверх | Cообщить модератору

103. "Новая версия набора компиляторов LLVM 3.3"  +2 +/
Сообщение от arisu (ok) on 19-Июн-13, 12:25 
> GNU C не является стандартом

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


#define lambda(_return_type, _body_and_args) ({ \
  _return_type __fn__ _body_and_args \
  __fn__; \
})

...
int ascending;
...
qsort(array, 42, sizeof (int), lambda (int, (const void *a, const void *b) { return (ascending ? (*(int*)a)-(*(int*)b) : (*(int*)b)-(*(int*)a)); }));

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

и да, я это активно использую. именно потому, что удобно. я не прочь сравнивать gcc и clang/llvm, но последний никак не может собрать мой софт. пичалечка.

Ответить | Правка | ^ к родителю #86 | Наверх | Cообщить модератору

121. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от Аноним (??) on 20-Июн-13, 01:50 
> разве не красота? особенно если учесть, что лямбда имеет доступ к переменным
> функции-родителя, как это показано в коде выше. понятно, что пример синтетический,
> первая придуманая иллюстрация.

Хм, симпатичненько.

Ответить | Правка | ^ к родителю #103 | Наверх | Cообщить модератору

104. "Новая версия набора компиляторов LLVM 3.3"  +1 +/
Сообщение от arisu (ok) on 19-Июн-13, 12:27 
да и вообще, nested functions весьма способствуют удобной и красивой организации кода без геморроя с передачей кучи параметров и без загаживания namespace. макросы не предлагать, это ужос-ужос-ужос.
Ответить | Правка | ^ к родителю #86 | Наверх | Cообщить модератору

125. "Новая версия набора компиляторов LLVM 3.3"  +/
Сообщение от iZEN (ok) on 08-Июл-13, 10:51 
Обновился:
% cc --version
FreeBSD clang version 3.3 (tags/RELEASE_33/final 183502) 20130610
Target: x86_64-unknown-freebsd9.1
Thread model: posix
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру