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

Исходное сообщение
"На базе Sparse создан LLVM-бэкенд, нацеленный на пересборку ..."

Отправлено opennews , 31-Авг-11 02:12 
Разработчики Sparse (https://sparse.wiki.kernel.org/), семантического парсера для языка Си, объявили (http://permalink.gmane.org/gmane.comp.parsers.sparse/2600) о создании LLVM-бэкенда sparse-llvm (https://github.com/penberg/sparse-llvm). Конечной целью проекта является создание рабочего компилятора Си, способного собрать ядро Linux. Код проекта распространяется под лицензией MIT.


LLVM-бэкенд уже способен генерировать код для простых примеров на языке Си для различных платформ, но проект ещё находится на ранней стадии развития и не способен осуществить сборку реальных проектов. Созданный на базе Sparse LLVM-бэкенд, пока ограничен поддержкой таких возможностей языка Си, как вызов функций, разбор выражений Switch и if-else, выполнение арифметических, бинарных и операций с плавающей запятой. Тем не менее автор проекта считает (http://lwn.net/Articles/456761/), что  sparse-llvm сможет достигнуть стадии пересборки ядра Linux раньше, чем Clang, так как Sparse, на базе которого развиваетс...

URL: http://lwn.net/Articles/456709/rss
Новость: http://www.opennet.me/opennews/art.shtml?num=31636


Содержание

Сообщения в этом обсуждении
"На базе Sparse создан LLVM-бэкенд, нацеленный на пересборку ..."
Отправлено фтанг , 31-Авг-11 02:12 
>LLVM-бэкенда позволит обеспечить генерацию универсального платформонезависимого псевдокода

llvm генерит bitcode и он платформенно зависим.
http://llvm.org/docs/FAQ.html#platformindependent


"На базе Sparse создан LLVM-бэкенд, нацеленный на пересборку ..."
Отправлено arcade , 31-Авг-11 10:36 
Сам читал перед тем как ссылку ставить?

LLVM изначально генерит платформонезависимый биткод. Сами языки C и C++ не рассчитаны на компиляцию в платформонезависимый код из-за выбора архитектуры выполнения на уровне препроцессинга исходника. Но сие не значит что путём определённых манипуляций с кодом мы не можем выкинуть или заменить платформозависимые части.


"На базе Sparse создан LLVM-бэкенд, нацеленный на пересборку ..."
Отправлено Аноним , 31-Авг-11 17:37 
> Сам читал перед тем как ссылку ставить?
> LLVM изначально генерит платформонезависимый биткод. Сами языки C и C++ не рассчитаны
> на компиляцию в платформонезависимый код из-за выбора архитектуры выполнения на уровне
> препроцессинга исходника. Но сие не значит что путём определённых манипуляций с
> кодом мы не можем выкинуть или заменить платформозависимые части.

gcc же делает платформо-независимый gimple. Короче ты не сможешь взять файл с биткодом и запустить его на другой архитектуре. Так что дроч на llvm вместо gcc непонятен


"На базе Sparse создан LLVM-бэкенд, нацеленный на пересборку ..."
Отправлено XoRe , 04-Сен-11 17:54 
> gcc же делает платформо-независимый gimple. Короче ты не сможешь взять файл с
> биткодом и запустить его на другой архитектуре. Так что дроч на
> llvm вместо gcc непонятен

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


"На базе Sparse создан LLVM-бэкенд, нацеленный на пересборку ..."
Отправлено Аноним , 05-Сен-11 15:05 
>А зачем брать файл с биткодом, когда можно взять исходник?

Почему это? LLVM финансируется прежде всего Apple, которая очень не любит показывать исходники.


"На базе Sparse создан LLVM-бэкенд, нацеленный на пересборку ..."
Отправлено Аноним , 31-Авг-11 12:34 
> llvm генерит bitcode и он платформенно зависим.
> http://llvm.org/docs/FAQ.html#platformindependent

Правильнее было бы сказать не платформозависим, а платформонезависим с определенными исключениями. По ссылке раздел FAQ только про GCC-фронтэнд, а в новости речь про Sparse.


"На базе Sparse создан LLVM-бэкенд, нацеленный на пересборку ..."
Отправлено mihon73 , 31-Авг-11 17:43 
> llvm генерит bitcode и он платформенно зависим.
> платформенно зависим

Это как так? Моя твоя не понимать


"На базе Sparse создан LLVM-бэкенд, нацеленный на пересборку ..."
Отправлено Аноним , 31-Авг-11 10:50 
> Разработчики Sparse (https://sparse.wiki.kernel.org/), семантического парсера для
> языка Си, объявили (http://permalink.gmane.org/gmane.comp.parsers.sparse/2600) о
> создании LLVM-бэкенда sparse-llvm (https://github.com/penberg/sparse-llvm). Конечной
> целью проекта является создание рабочего компилятора Си, способного собрать ядро Linux.
> Код проекта распространяется под лицензией MIT.

на базе GCC значит такое не возможно.. интересный факт - запишем в книжечкую


"На базе Sparse создан LLVM-бэкенд, нацеленный на пересборку ..."
Отправлено dq0s4y71 , 31-Авг-11 13:02 
Да, "родной" кодгенератор у Спарс кривой. У меня валился в сегфолт на простейших выражениях. С другой стороны, что ожидать от "глупого" бэк-энда, как его окрестил сам Торвальдс...

"На базе Sparse создан LLVM-бэкенд, нацеленный на пересборку ..."
Отправлено Аноним , 31-Авг-11 22:09 
> Тем не менее автор проекта считает, что sparse-llvm сможет достигнуть стадии пересборки ядра Linux раньше, чем Clang, так как Sparse, на базе которого развивается sparse-llvm, изначально полностью поддерживает парсинг кода всего ядра.

а разве Clang не собирает ядро? По моему они уже года два, как собрали.


"На базе Sparse создан LLVM-бэкенд, нацеленный на пересборку ..."
Отправлено Аноним , 31-Авг-11 22:23 
С Clang собирается только минимум, позволяющий загрузиться. C Clang не работает куча подсистем (SELinux, Posix ACL, IPSec, eCrypt, Xen, IPv6, Netfilter, поддержка модулей ядра  и т.п.).
PS. http://www.opennet.me/opennews/art.shtml?num=28418

"На базе Sparse создан LLVM-бэкенд, нацеленный на пересборку ..."
Отправлено ананим , 01-Сен-11 03:00 
>а разве Clang не собирает ядро? По моему они уже года два, как собрали.

угу. собрали и уже 2 года не обновляли.
следующую сборку ждут ещё через 2 года.


"На базе Sparse создан LLVM-бэкенд, нацеленный на пересборку ..."
Отправлено Аноним , 05-Сен-11 15:08 
> а разве Clang не собирает ядро?

Нет. Рекламная брехня на эту тему была, но основания для нее достаточно жидкие (собирается лишь куцый уродец с кучей проблем).

>По моему они уже года два, как собрали.

Два года назад собрали этого уродца, и с тех пор никаких подвижек нет.