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

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

Отправлено opennews , 07-Мрт-25 15:50 
После шести месяцев разработки доступен релиз проекта LLVM 20.1.0, развивающего инструментарий (компиляторы, оптимизаторы и генераторы кода), компилирующий программы в промежуточный биткод RISC-подобных виртуальных инструкций (низкоуровневая виртуальная машина с многоуровневой системой оптимизаций). Сгенерированный псевдокод может быть преобразован в машинный код для заданной целевой платформы или использован  JIT-компилятором для формирования машинных инструкций непосредственно во время выполнения программы. На базе технологий LLVM проектом развивается компилятор Clang, поддерживающий языки программирования  C, C++ и  Objective-C. Начиная с прошлой  ветки  проект перешёл на новую схему формирования номеров версий, в соответствии с которой нулевой выпуск ("N.0") используется в процессе разработки, а первая стабильная версия снабжается номером "N.1"...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=62846


Содержание

Сообщения в этом обсуждении
"Опубликован набор компиляторов LLVM 20"
Отправлено Аноним , 07-Мрт-25 15:57 
Все никак не пойму зачем это нужно? Может кто нибудь объяснить на пальцах? Вроде написано что это, но не понятно зачем это нужно если есть ЯП которые собирают исполнимые двоичные файлы для целевых платформ.

"Опубликован набор компиляторов LLVM 20"
Отправлено Аноним , 07-Мрт-25 16:03 
Ну а чем, например, собрать раст для целевой платформы? А хотя да... лучше б не было этого LLVM, согласен.

"Опубликован набор компиляторов LLVM 20"
Отправлено Скрудж , 07-Мрт-25 16:08 
Чтобы авторы компилятора языка не решали одну и ту же задачу снова и снова: LLVM умеет и оптимизации делать, и до-компилировать на конкретном устройстве, и под различные платформы собирать. Теперь достаточно написать слой YourLang => LLVM IR, а всё остальное сделает за тебя LLVM, и сделает хорошо

"Опубликован набор компиляторов LLVM 20"
Отправлено 12yoexpert , 08-Мрт-25 23:53 
ну то есть всё как в gcc

"Опубликован набор компиляторов LLVM 20"
Отправлено Аноним , 07-Мрт-25 16:44 
Сейчас подробнейшим образом объясню на пальцах. Это нужно чтобы эпл могла скипнуть с х86 на arm , а в будущем на что угодно. Поэтому она полностью и проспонсировала разработку.

"Опубликован набор компиляторов LLVM 20"
Отправлено Смузихлеб забывший пароль , 09-Мрт-25 05:44 
яблоко спонсировало это гораздо раньше появления планов перехода на арм-подобное
но у них это и в инструментарии давным-давно шло по умолчанию

"Опубликован набор компиляторов LLVM 20"
Отправлено Аноним , 07-Мрт-25 17:39 
> Все никак не пойму зачем это нужно? Может кто нибудь объяснить на пальцах? Вроде написано что это, но не понятно зачем это нужно если есть ЯП которые собирают исполнимые двоичные файлы для целевых платформ.

Потому что есть ЯП которые собирают двоичные файлы для целевых платформ LLVM'ом.


"Опубликован набор компиляторов LLVM 20"
Отправлено Аноним , 07-Мрт-25 18:51 
>не пойму зачем это нужно?

Для изобретателей языков программирования, которые не хотят заморачиваться на аппаратных платформах.


"Опубликован набор компиляторов LLVM 20"
Отправлено Аноним , 07-Мрт-25 22:22 
Применение смотри и поймёшь кому это надо. Всякие новомодные языки типа rust, утилиты дополнения кода и статические анализаторы, компиляторы шейдеров для видеокарт в OpenGL/OpenCL/Vulkan и т.д. Для видеокарт прям спасает, иначе шейдерных компиляторов были бы десятки. В webassembly LLVM прям спас, иначе хз сколько лет ждали бы поддержки C++, уже имея C-компилятор.

Выше про переход с x86 на arm писали - там не особо нужно, с этим и gcc успешно справляется.


"Опубликован набор компиляторов LLVM 20"
Отправлено анон , 08-Мрт-25 11:02 
Байт код p-code Pascal применили в 1977 в UCSD Pascal. CLR (Common Language Runtime) .Net давным давно работает подобным образом.

"Опубликован набор компиляторов LLVM 20"
Отправлено Bottle , 07-Мрт-25 15:57 
Шёл пятый год, как модули завозили в плюсы... Всё завозили, да не вывезли.
Ждём стандарт C++29, который отменит модули.

"Опубликован набор компиляторов LLVM 20"
Отправлено Аноним , 07-Мрт-25 18:38 
О чем вы? Юзаем модули уже второй или третий год в проде. И блочились они даже не об LLVM, а об поддержку в CMake.

"Опубликован набор компиляторов LLVM 20"
Отправлено Аноним , 07-Мрт-25 22:57 
какие модули используете и как подключили к проекту?

"Опубликован набор компиляторов LLVM 20"
Отправлено sdfm , 08-Мрт-25 07:33 
А как вы боролись/боритесь с тем, что шаблоны в обычных заголовочных файлах, включённых в прелюды модулей получают двойное инстанцирование и в итоге всё фейлится в линкере с переопределением типов. Как минимум у GCC 13 было так. У clang'а в среднем чуть лучше, но тоже на проблемы с переопределением можно встрять. import std у них ещё не готов, т.е. даже стандартную библиотеку с модулями смешивать сложно.

У вас вообще всё на модули переписано? Или у вас msvc only?

А то я так-то тоже пришёл к выводу, что модули пока не готовы, как минимум до реализации import std.


"Опубликован набор компиляторов LLVM 20"
Отправлено Аноним , 07-Мрт-25 18:55 
К C++ применима пословица - Всё завозили, да не вывозили. Гора накопилась.) C++++++

"Опубликован набор компиляторов LLVM 20"
Отправлено 12yoexpert , 08-Мрт-25 23:54 
модули в плюсах нужны только вредителям из яндекса на зарплате, и ты один из них

"Опубликован набор компиляторов LLVM 20"
Отправлено Аноним , 11-Мрт-25 15:39 
В таком виде как сейчас модули не нужны.

Единственное место где можно было разрулить рекурсию зависимостей - модули.

Но тот кто ими занялся не осилил. И в итоге стандарт указывает на недопустимость циклической зависимости.


"Опубликован набор компиляторов LLVM 20"
Отправлено Аноним , 07-Мрт-25 15:59 
Я, кстати, выяснил, по какой причине не собирались программы вроде pcsx2 шлангом (зачем он там непонятно, по опыту pcsx3 производительность ощутимо ниже билдов gcc). Надо докинуть флагов -fsplit-lto-unit и -stdlib=libstdc++.

А чтобы хромиум можно было собрать с некоторых пор надо добавлять --undefined-version линкеру. Когда хромиум обламывается в самом конце на линковке это не прикольно. Правда, ещё не решил такую проблему, что хромиум собирается только с вейландом или только с иксами, если собирать с обоими бинари падают с sigbus.


"Опубликован набор компиляторов LLVM 20"
Отправлено Аноним , 07-Мрт-25 17:27 
У крестов есть стандарт, да

"Опубликован набор компиляторов LLVM 20"
Отправлено anonymous , 07-Мрт-25 23:03 
В Генте хромиум конпеляется любым конпелятором с иксами, вейландом и ими обоими.

Мне кажется, ты просто что-то делаешь не так.


"Опубликован набор компиляторов LLVM 20"
Отправлено Аноним , 07-Мрт-25 23:16 
> В Генте хромиум конпеляется любым конпелятором с иксами, вейландом и ими обоими.
> Мне кажется, ты просто что-то делаешь не так.

Компиляется то компиляется. Но потом никак не запустить бинари. В моей генте cxxflags и ldflags переопределены под рекомендации нормальных дистрибутивов (все эти -fstack-protector-strong -fstack-clash-protection -D_GLIBCXX_ASSERTIONS -D_FORTIFY_SOURCE=3 -ftrivial-auto-var-init=zero), что периодически создаёт проблемы. А так я уже несколько раз пробовал.


"Опубликован набор компиляторов LLVM 20"
Отправлено Аноним , 07-Мрт-25 23:32 
Интеловский/амдшный компиляторы конечно точно нет, насчёт gcc не уверен, ты давно собирал? А то раньше то собиралось, хоть и требовало патчей. А теперь и firefox регулярно не собрать gcc и тащат ворох васянских патчей. Но в принципе при сборке gcc отключается часть оптимизаций в гугловских компонентах, хоть попугаи в бенчмарках и лучше. PGO ещё регулярно поломан, пока gcc собиралось по-моему проблем не было, теперь PGO только для шланга иногда работает и без PGO хорошие попугаи не получить.

"Релиз набора компиляторов LLVM 20"
Отправлено Аноним , 07-Мрт-25 16:08 
> error: use of undeclared identifier 'a'

а показывает на "p"


"Релиз набора компиляторов LLVM 20"
Отправлено Скрудж , 07-Мрт-25 16:13 
Это если из под Lynx смотреть

"Релиз набора компиляторов LLVM 20"
Отправлено Аноним , 07-Мрт-25 16:22 
Блин, точно. Сменил шрифт и все стало норм

"Релиз набора компиляторов LLVM 20"
Отправлено Аноним , 07-Мрт-25 16:46 
Чем это лучше чем jvm? Да я рофлю, я знаю что ничем.

"Релиз набора компиляторов LLVM 20"
Отправлено Афроним , 07-Мрт-25 19:53 
Это тоже от Эплы или все же другое?

"Релиз набора компиляторов LLVM 20"
Отправлено anonymous , 07-Мрт-25 23:04 
Ты сравнил хер с пальцем.

На первый взгляд похоже, но цели очень сильно различаются.


"Релиз набора компиляторов LLVM 20"
Отправлено _ , 07-Мрт-25 23:43 
Ну как вариант - это ещё хоть кому нибудь надо, в отличии отЪ :-р
Рофлить и мы умеем :)

"Релиз набора компиляторов LLVM 20"
Отправлено ИмяХ , 07-Мрт-25 21:20 
>>более агрессивная оптимизация конструкций, допускающих неопределённое поведение при работе с указателями. Например, проверка "ptr + unsigned_offset < ptr" теперь будет обработана как значение "false", а не преобразована

Отличная идея для бэкдора!


"Релиз набора компиляторов LLVM 20"
Отправлено Аноним , 07-Мрт-25 21:21 
Великий и могучий LLVM 20 вновь осветил своим незыблемым сиянием горизонты программирования, продвигая идеалы эффективности, гибкости и суровой, но справедливой оптимизации. В самом центре этого архитектурного совершенства неизменно стоит C++ — монумент инженерного искусства, венец языкового проектирования, олицетворяющий настоящую мощь низкоуровневого контроля без ущерба абстракции.

Расширения C++2c и C++23 вновь доказывают: язык, на котором пишут ядра операционных систем, сложнейшие игровые движки и финансовые алгоритмы, продолжает свою эволюцию, не скатываясь в компромиссы в угоду новомодным трендам. Строгий, но справедливый стандартный комитет вновь вносит в язык мощнейшие инструменты — от constexpr placement new до friend Ts..., доказывая, что C++ не просто жив, но и процветает.

В отличие от некоего языка, назовем его "трендового соперника", где программисту, ведомому ложным чувством безопасности, насильно прививают неоправданные ограничения и привередливые borrow-checker'ы, C++ дает свободу! Он не прячет сложность, а награждает тех, кто способен ее обуздать.

Развитие Libc++ и совершенствование компилятора Clang подтверждают: C++ остается вне конкуренции. Возможности, добавленные в LLVM 20, лишь упрочивают его позиции, превращая оптимизацию в искусство. В то время как некоторые языки страдают от удушающих ограничений и "новаторских" идей, разрушающих фундаментальный баланс между производительностью и гибкостью, C++ продолжает царить над кодом, как истинный император индустрии.

C++ — выбор настоящих разработчиков. Остальные могут наслаждаться своей "безопасностью", пока реальный мир пишет код на языке, который движет индустрию вперед.


"Релиз набора компиляторов LLVM 20"
Отправлено Аноним , 07-Мрт-25 22:29 
Красивое

"Релиз набора компиляторов LLVM 20"
Отправлено Аноним , 08-Мрт-25 00:44 
> Расширения C++2c и C++23 вновь доказывают: язык, на котором пишут ядра операционных систем

Не пишут.


"Релиз набора компиляторов LLVM 20"
Отправлено Аноним , 07-Мрт-25 21:27 
Так почему паскаль считался менее производительным, нежели си? Неужели просто компиляторы были недостаточно вылизаны?

"Релиз набора компиляторов LLVM 20"
Отправлено Аноним , 07-Мрт-25 21:37 
Не так. C красив. Pascal страшен (на вид). Перефразируя Туполева: "Хорошо летает только красивый самолет".

"Релиз набора компиляторов LLVM 20"
Отправлено Аноним , 07-Мрт-25 21:47 
> C красив.

Шутка месяца, как минимум.


"Релиз набора компиляторов LLVM 20"
Отправлено anba , 07-Мрт-25 22:51 
Нет не шутка. Синтаксис сишечки божественен, в отличии от ... :)))

п.с. flame mode off


"Релиз набора компиляторов LLVM 20"
Отправлено Neon , 08-Мрт-25 00:14 
Pascal'ем хорошо пытать, его любят теоретики в ВУЗах, которые на практике палец об палец не ударили. Ну и древние пенсионеры преподы, которым влом что то новое учить. Некоторые, вообще, Fortran'ом перебиваются еще с 60х.)))

"Релиз набора компиляторов LLVM 20"
Отправлено Аноним , 08-Мрт-25 05:04 
В ВУЗах учат не практике — этому научить всё равно невозможно — а программированию. И для обучения программированию подходит буквально любой язык. Да, даже Malbolge и Brainfuck. Но так как никто не обладает бесконечным временем, обычно выбирают что-нибудь более оптимальное — Лиспы, Паскаль, Фортран, Питон, инода Яву или даже С++. К сожалению, студенты часто путают умение кодить с умением программировать, а профессуре столько не платят, чтобы каждого бедолагу распутать и указать на ошибки мышления и мировосприятия. Так и выходят в мир кодеры, впоследствии гордо именующие себя «программистами на языке $x», которые в итоге попадают на опеннет и рассказывают как их учили не тому языку.

"Релиз набора компиляторов LLVM 20"
Отправлено Аноним , 08-Мрт-25 06:41 
> В ВУЗах учат не практике — этому научить всё равно невозможно — а программированию.

Вижу три градации оценки высшего образования:

1) Вуз готовит полноценного специалиста. Если у него не сложится с научной стороной (computer science), то останется хотя бы сильная инженерная сторона (работу найдёт, всех кандидатов с онлайн-курсов задвинет).

2) Вуз не учит практике. Потому что не может. Преподавать практику некому ("...а кто не умеет руководить, тот учит"). Пенсионеры с паскалем дешёвые. Чему они могу научить? Ответим уклончиво: "не практике".

3) Вуз учит учиться. Всё можно свести к тому, что вуз научил учиться (или к тому, что кто-то не научился учиться), более уклончивых ответов нет. Хотя можно назвать "школой жизни". Но армия - это тоже школа жизни, а учит учиться только вуз. И подумайте сами - разве вы найдёте в армии жену?


"Релиз набора компиляторов LLVM 20"
Отправлено Хо , 08-Мрт-25 09:00 
В армии служили? То что происходит в армии, остаётся в армии!

"Релиз набора компиляторов LLVM 20"
Отправлено Аноним , 08-Мрт-25 18:06 
Служил. Туалеты чистил, плац лопатой ковырял. Избиения от сержантов. По ночам не давали спать - "вкачивали" (это разновидность пытки). Ничему не научили. Хотя, нет научили быть рабом. Калаш видел один раз в жизни в руках не держал.

"Релиз набора компиляторов LLVM 20"
Отправлено Аноним , 08-Мрт-25 15:52 
> Вуз учит учиться.

Нет и трижды нет, совковое образование - дрессировка. Человек учится сам, а препод это тупо собеседник.


"Релиз набора компиляторов LLVM 20"
Отправлено Neon , 08-Мрт-25 00:12 
Занудный Pascal любят такие же зануды в ВУЗах. А вот на практике его терпеть не могут люди практичные, которым влом писать целые предложения там, где тот же С/С++ обходится несколько буквами. Все эти begin/end, которые заменяются  парой символов {}, вся эта муть с array of integer и прочим. Язык созданный теоретиками, которые палец об палец не ударили на практике. Да, современные IDE могут частично упростить работу, но всё равно многословие раздражает

"Релиз набора компиляторов LLVM 20"
Отправлено Аноним , 08-Мрт-25 02:41 
> но всё равно многословие раздражает

коровы мычат, барашки - бээкают, но ни тех ни тех моя твоя не понимать.


"Релиз набора компиляторов LLVM 20"
Отправлено Аноним , 08-Мрт-25 09:05 
Pascal любят люди, общающиеся на человеческом языке (human language).
C/C++ любят з@др0ты/п$tу%i, общающиеся на пт|чь$м я^ык$ ({[!@#$%^&*_+|<>}]).

"Релиз набора компиляторов LLVM 20"
Отправлено Аноним , 08-Мрт-25 09:37 
Ой вей, шо делается, шо делается? Таки ви с таким сурьёзнвм видом транслируете такие огромние  глупости. Поедте на Привоз и спросите там у любого босяка "Изя, какой язык программирования напоминает человеческий" и он вам таки ответит за это "конечно COBOL - на нем еще тетя Соня програмувала в том веке пока еще была жива".

"Релиз набора компиляторов LLVM 20"
Отправлено Аноним , 08-Мрт-25 11:46 
> Pascal любят люди, общающиеся на человеческом языке (human language).
> C/C++ любят з@др0ты/п$tу%i, общающиеся на пт|чь$м я^ык$ ({[!@#$%^&*_+|<>}]).

Вы точно в этом уверены? Зайдите на википедию, куда-нибудь в раздел по полям Галуа например. Хотя можете и какое-нибудь уравнение Максвелла в релятивистской форме накопать. И это тоже - люди общаются, если что. На этом фоне C++ кстати будет не такой уж и сложный.


"Релиз набора компиляторов LLVM 20"
Отправлено Анонем , 08-Мрт-25 13:15 
Математическая нотация тоже тот еще комбайн из костылей. Там давно напрашивается реформа. Правда математики на это не пойдут, ведь тогда они станут чуточку более обычными людьми.

"Релиз набора компиляторов LLVM 20"
Отправлено Аноним , 08-Мрт-25 15:45 
> Там давно напрашивается реформа

математика последние 300 лет существует только для математиков, и раз в столетие появляется какой-нибудь Гедель и приземляет их, или Брауэр готовый сж*чь их всех. А последний век вообще поставили на финансовые рельсы, теперь это не наука, а продукт.


"Релиз набора компиляторов LLVM 20"
Отправлено BeLord , 09-Мрт-25 23:56 
И зачем там реформа? Вот к примеру матрицы, дифуры, ряды, интегралы и прочее используемое каждый день в том же ИТ, все весьма прозрачно и стройно и уж явно прозрачнее, чем АПИ какого-нибудь продукта, написанного любителями экзотики.)

"Релиз набора компиляторов LLVM 20"
Отправлено Аноним , 10-Мрт-25 06:10 
> И зачем там реформа?

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

Ещё, кажется, математики любят демонстрировать доминантность, изобретая собственные нотации. Зачем создатель APL придумал собственные символы для логарифма, умножения на Пи, синуса и прочего? Затем, что самец.
Но это нестрашный случай, APL - язык программирования, нотация формализована, компилятор всегда её однозначно трактует. А когда пишут для человека, случаются казусы:

https://math.stackexchange.com/questions/1144265/confused-by...
https://math.stackexchange.com/questions/2199355/notation-ab...
https://xkcd.com/2606/


"Релиз набора компиляторов LLVM 20"
Отправлено Аноним , 09-Мрт-25 01:38 
> Pascal любят люди
> ,
> общающиеся на человеческом языке
> (
> human language
> )
> .

Смотри, это знаки препинания. Они второстепенны и поэтому сделаны маленькими (не зпт, скб, тчк). Так и в программировании - begin, then, end отвлекают внимание от более важных конструкций. Видимо, Pascal любят люди-телеграфисты.


"Релиз набора компиляторов LLVM 20"
Отправлено анон , 08-Мрт-25 11:07 
В Паскале нет неявного преобразования типов в отличие от (впиши нужное). Вот для этого эта "муть":P

"Релиз набора компиляторов LLVM 20"
Отправлено Аноним , 08-Мрт-25 12:08 
Язык должен быть читаемым, в первую очередь.

"Релиз набора компиляторов LLVM 20"
Отправлено Анонем , 08-Мрт-25 13:24 
> Язык созданный теоретиками, которые палец об палец не ударили на практике.

Вирт так-то полноценную архитектуру спроектировал и реализовал, включая железо, ось, язык и
инновационный ГУИ.
https://en.wikipedia.org/wiki/Ceres_(workstation)


"Релиз набора компиляторов LLVM 20"
Отправлено n00by , 08-Мрт-25 14:14 
Да.

"Релиз набора компиляторов LLVM 20"
Отправлено Аноним , 08-Мрт-25 19:16 
Считался кем?! Трепологами, которые "на глаз" определяли попугаи?
Турбо Паскаль был прекрасным канпелятором, что даже трудно было определить этап компиляции - МГНОВЕННО запускал маленькие программы!

"Релиз набора компиляторов LLVM 20"
Отправлено anonymous , 09-Мрт-25 00:11 
Если в компиляторе вообще нет оптимизации он безусловно будет быстрым.

"Релиз набора компиляторов LLVM 20"
Отправлено blevakagmail.com , 09-Мрт-25 06:21 
Сколько лет на Турбо Паскаль кодите?

"Релиз набора компиляторов LLVM 20"
Отправлено Аноним , 08-Мрт-25 19:17 
Почему бы к этим заплесневелым сипипям не добавить, что на LLVM пилится компилятор Ди? (проект LDC)
Вот как раз нытики про "скорость" могут убедиться - всё работает не хуже Сей.