LINUX.ORG.RU

LLVM 4.0.0

 ,


1

5

13 марта состоялся релиз LLVM 4.0.0. LLVM — это набор компонентов и технологий для создания трансляторов языков программирования.

Основные новые возможности новой версии:

  • экспериментальная поддержка сопрограмм (Coroutines in LLVM);
  • поддержка (пока экспериментальная) AVR включена в официальную версию и дальнейшая ее разработка будет происходить в основной ветви исходного кода LLVM;
  • соглашения о вызовах __vectorcall (разработано Microsoft) и __regcall (разработано Intel).

Также с 4.0.0 проект LLVM присоединился к гонке версий: новая схема номеров версий предусматривает увеличение мажорной версии с каждым новым релизом (т. е. следующий мажорный релиз будет 5.0.0); обновления к 4.0.0 будут нумероваться 4.0.x.

>>> Подробности

★★★★★

Проверено: jollheef ()

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

Если имеется ввиду FreeBSD, то компиляторы тут не причём. Это у FreeBSD мэйнтейнеров какие-то проблемы возникли более года(!) назад, но они так их и не решили:

LLDB builds with shared libraries are currently broken so I've disabled shared library builds. Tools should start faster, but the package are much larger.

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

Если тебе с LLVM assembly разобраться сложно,то сделать свой ЯП вообще неподъемная задача

Необязательно. Можно отлично знать логику и придумать Пролог, ничего не зная о компьютерах.

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

LLDB - это дебаггер. Во всех сборках пакетов я не использую отладчик и отладочный код исключён.

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

в нутре llvm действительно муторно разбираться, баговат он. а если писать backend то вообще атас.

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

пачку define теперь языком стало можно назвать?

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

почему его нужно собирать gcc, а не шлангом?

Ну чем выставишь, тем и собирай. Только разницы особой нет. Все узают gcc, значит и я gcc.

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

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

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

Если бы ни нежелание изобретать велосипеды, мог бы транслировать и в машинные коды.

Всю оптимизацию выполнял бы сам, или оптимизация - для тех, кто не умеет писать оптимально?

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

Вот в том то и загвоздка, что влом. Вот и остается транслить в Си и верить в gcc. Впрочем приятнее было бы в VM байткод конечно, но хочется же производительности реалтайма.

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

Но LLVM вводит много всякой абстрактной лабуды при отсутствии нормальной объясняющей литературы.

Если честно - это единственная адекватная претензия к LLVM. С манами там кисло. Вот только юзеру ман не нужен

Все остальное (особенно про транслятор в С) - бред

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

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

в рассылке недавно был пост про баг в LLVM:

float f = 0.0, d;
if (f != 0.0)
   d = 1.0f/f;

падает с делением на ноль. для деления floatов забыли прописать условие «не спекулировать».

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

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

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

(особенно про транслятор в С) - бред

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

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

Предложи свои варианты выхлопа фронтэнда
чтоб по регистрам самому потом расфасовывать не пришлось

ты фронт и бэк не путаешь? RA фронту вообще в хрен не вперлось

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

C - тоже бэк. Точнее конкретно gcc. Потому что С - только формат.

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