URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 66345
[ Назад ]

Исходное сообщение
"Новая версия набора компиляторов LLVM 2.7"

Отправлено opennews , 27-Апр-10 22:26 
После 6 месяцев разработки выпущена (http://lists.cs.uiuc.edu/pipermail/llvm-announce/2010-April/...) новая версия 2.7 проекта LLVM (http://llvm.org/releases/2.7/docs/ReleaseNotes.html) (Low Level Virtual Machine) - GCC совместимого инструментария (компиляторы, оптимизаторы и генераторы кода), компилирующего программы в промежуточный байткод RISC подобных виртуальных инструкций (низкоуровневая виртуальная машина с многоуровневой системой оптимизации). Сгенерированный платформонезависимый псевдокод может быть преобразован при помощи JIT-компилятора в машинные инструкции непосредственно в момент выполнения программы.

В новом релизе существенно улучшилось качество генерируемого кода, расширен состав генерируемой информации для отладчиков, а также сделано большое количестве изменений в инфраструктуре, самая важная из которых - это то, что Clang теперь может (http://www.opennet.ru/opennews/art.shtml?num=25305) успешно компилировать свои собственные исходные тексты, что в случ...

URL: http://lists.cs.uiuc.edu/pipermail/llvm-announce/2010-April/...
Новость: http://www.opennet.ru/opennews/art.shtml?num=26404


Содержание

Сообщения в этом обсуждении
"Новая версия набора компиляторов LLVM 2.7"
Отправлено iZEN , 27-Апр-10 22:26 
Есть с октября 2009 регулярно обновляемый порт LLVM 2.7 в FreeBSD: http://www.freshports.org/devel/llvm-devel/

"Новая версия набора компиляторов LLVM 2.7"
Отправлено Толстый , 27-Апр-10 23:54 
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
В любой другой операционной системе.

"Новая версия набора компиляторов LLVM 2.7"
Отправлено Толстый , 27-Апр-10 23:03 
Когда уже сделают поддержку исключений в Windows? Единственное, что мешает полноценному кросс-платформенному использованию.

"Новая версия набора компиляторов LLVM 2.7"
Отправлено asl , 28-Апр-10 03:14 
Patches are welcome (c) :)

"Новая версия набора компиляторов LLVM 2.7"
Отправлено Unixoid_потому_что_кривые_руки_писали_этот_модуль , 28-Апр-10 09:04 
>Когда уже сделают поддержку исключений в Windows?

Кому нужен этот кривой Windows, тот пускай и делает :-)


"Новая версия набора компиляторов LLVM 2.7"
Отправлено Толстый , 28-Апр-10 12:49 
Скажи это всем клиентам. Сними розовые очки.

"Новая версия набора компиляторов LLVM 2.7"
Отправлено Andrey Mitrofanov , 28-Апр-10 14:25 
>Скажи это всем клиентам. Сними розовые очки.

То есть _твоим клиентам надо, а сделать -- "пусть скорее уж" кто-нибудь другой, я правильно уловил твою мысль? Бизнес процветает, малацца! Вот это всё и расскажи этим самым "клиетам", выствляя счёт.


"Новая версия набора компиляторов LLVM 2.7"
Отправлено Толстый , 29-Апр-10 02:13 
Эта задача очень нетривиальна, я знаю пару человек которые начинали делать но особо не продвинулись(люди очень грамотные). Не сделают разработчики, буду пользоваться другим, что поделать. Я просто выразил мнение о фиче, которой лично мне не хватает в llvm. Вы сами много исправляли багов/реализовали фич в компиляторе которым пользуетесь(если пользуетесь), а также операционной системе и приложениях?

"Новая версия набора компиляторов LLVM 2.7"
Отправлено Толстый , 29-Апр-10 02:15 
Да и вообще речь шла о Windows. Он хоть и кривой, но люди для которых пишется ПО как ни странно сидять под виндой. Поэтому я изначально думаю над тем, чтобы софт был кросс-платформенный.

"Новая версия набора компиляторов LLVM 2.7"
Отправлено ABorland , 20-Май-10 01:23 
Ух какие качественные и тонкие Micro Тролли сегодня на опен нете

"Новая версия набора компиляторов LLVM 2.7"
Отправлено IGX , 28-Апр-10 03:38 
А можно в Clang компилировать код для Linux в Windows и наоборот? Т.е. возможна ли кросскомпиляция, в том числе для разных процессоров?

"Новая версия набора компиляторов LLVM 2.7"
Отправлено Unixoid_потому_что_кривые_руки_писали_этот_модуль , 28-Апр-10 09:02 
А зачем ? :-)

"Новая версия набора компиляторов LLVM 2.7"
Отправлено arcade , 28-Апр-10 10:32 
>А можно в Clang компилировать код для Linux в Windows и наоборот?
>Т.е. возможна ли кросскомпиляция, в том числе для разных процессоров?

Да. Хотя надеюсь Вы понимаете отличия компиляции программы в код от линковки с динамическими/статичесикими библиотеками. Если первое - на ура, то второе - только в полном окружении пусть и на другой системе.

PS: В этом смысле жгут NetBSD-шники. У них система собирается на любом другом юниксе и не требует наличие чего-либо - само всё бутстрапит из шелла.


"Новая версия набора компиляторов LLVM 2.7"
Отправлено IGX , 28-Апр-10 03:41 
Можно ли с помощью Clang в Windows скопилировать код для Linux Microblaze или просто двоичный код для некоторой функции, который потом динамически загрузить Microblaz'ом?

"Новая версия набора компиляторов LLVM 2.7"
Отправлено arcade , 28-Апр-10 10:34 
>Можно ли с помощью Clang в Windows скопилировать код для Linux Microblaze
>или просто двоичный код для некоторой функции, который потом динамически загрузить
>Microblaz'ом?

Да. На самом clang умеет делать универсальные бинарники для нескольких архитектур сразу.


"Новая версия набора компиляторов LLVM 2.7"
Отправлено Ariel , 28-Апр-10 12:38 
Но вы учитывайте, что бинарный файл имеет определённый формат который обеспечивает существование нескольких файлов в универсальном архиве, и, например mach-o это умеет, а elf или pe - нет. И любой файл слинкован с динамическими либами, которых может не быть на целевой системе, например в linux вообще отсутствует понятие framework, и загрузчик не умеет с ними работать. Кросскомпиляция без проблем используется, если у вас одна система на нескольких разных машинах, как например Mac OS X. Хотя, если использовать кроссплатформенное окружение (OpenStep), то почему нет.

"Новая версия набора компиляторов LLVM 2.7"
Отправлено IGX , 28-Апр-10 13:21 
1) Можно ли с помощью Clang скомпилировать машинный код для некоторой функции (без всяких обёрток в виде dll/so), который потом динамически загрузить?

"Новая версия набора компиляторов LLVM 2.7"
Отправлено IGX , 28-Апр-10 13:54 
2) Можно ли с помощью Clang скомпилировать промежуточный байт-код для некоторой функции, который потом скомпилировать при загрузке в машинный код и использовать скомпилированную функцию в программе?

"Новая версия набора компиляторов LLVM 2.7"
Отправлено Ariel , 28-Апр-10 15:36 
1
Насколько я знаю, компилируются единицы трансляции, т е файлы, из которых вы можете её экспортировать, если она с внешней линковкой, мне не ясен ваш вопрос,

2
о загрузке см. 1, скомпилировать в IR и затем исполнять на виртуальной машине llvm можно, это называется jit,

clang file.c -c -emit-llvm -o file.bc
lli file.bc


"Новая версия набора компиляторов LLVM 2.7"
Отправлено IGX , 28-Апр-10 18:05 
>1
>Насколько я знаю, компилируются единицы трансляции, т е файлы, из которых вы
>можете её экспортировать, если она с внешней линковкой, мне не ясен
>ваш вопрос,

Например, llvm позволяет во время выполнения программы конструировать функцию в памяти в виде IR, потом компилировать IR в машинный код, а затем через указатель на блок памяти, содержащий этот машинный код, вызывать функцию, как любую другую функцию вашей программы. У меня вопрос: позволяет ли подобное делать Clang, т.е. компилировать функцию Си/С++ в IR (подобно ручному конструированию IR в llvm) в память во время выполнения программы? Если да, то как примерно это делается?


>2
>о загрузке см. 1, скомпилировать в IR и затем исполнять на виртуальной
>машине llvm можно, это называется jit,
>
>clang file.c -c -emit-llvm -o file.bc
>lli file.bc

Спасибо за наводку, документацию на clang пока не читал.


"Новая версия набора компиляторов LLVM 2.7"
Отправлено Ariel , 28-Апр-10 22:01 
Не знаю, я не работал с IR, смотрите документацию в комплекте clang, или лучше спросите llvm mailing list.

"Новая версия набора компиляторов LLVM 2.7"
Отправлено Zenitur , 28-Апр-10 06:47 
А можно ли компилировать ядро?
:-)

"Новая версия набора компиляторов LLVM 2.7"
Отправлено arcade , 28-Апр-10 10:37 
>А можно ли компилировать ядро?
>:-)

FreeBSD'шники уже всю систему компилируют. http://wiki.freebsd.org/BuildingFreeBSDWithClang


"Новая версия набора компиляторов LLVM 2.7"
Отправлено anthonio , 28-Апр-10 06:59 
Логотип у них какой-то грозный... Всем бояться! :)

"Новая версия набора компиляторов LLVM 2.7"
Отправлено аноним , 28-Апр-10 11:23 
Логотип спонсировал Apple. Как и всё остальное.

"Новая версия набора компиляторов LLVM 2.7"
Отправлено anonimus , 28-Апр-10 11:57 
Как этой штукой компилить код, поддерживающий OpenCL? Есть какие-то плагины?
Но нигде не нашел ни статьи ни примеров, как это делать...

"Новая версия набора компиляторов LLVM 2.7"
Отправлено anonimus , 28-Апр-10 12:58 
...есть только некоторые упоминания об этом...

"Новая версия набора компиляторов LLVM 2.7"
Отправлено PereresusNeVlezaetBuggy , 28-Апр-10 12:45 
Спасибо, отличная новость во всех смыслах :)

"Новая версия набора компиляторов LLVM 2.7"
Отправлено Аноним , 28-Апр-10 13:22 
жду не дождусь, пока оно станет в продакшн. вкусные плюхи однако там есть.