LINUX.ORG.RU

Выпуск LLVM 16

 , ,


0

3

Вышла новая версия LLVM. Проект LLVM включает в себя оптимизатор и кодогенератор с LLVM IR во многие процессорные архитектуры, который используется многими проектами для реализации своих языков программирования, а также:

  • компилятор C/C++/Objective-C (Clang);
  • компилятор Fortran (Flang);
  • cтандартную библиотеку для С++ (libc++);
  • отладчик LLDB;
  • линкер LLD;
  • среду исполнения (runtime) для OpenMP;
  • некоторые другие компоненты.

Код LLVM распространяется по лицензии Apache 2.0 License with LLVM exceptions.

Ниже перечислены новые возможности стандарта С++, реализованные в этой версии LLVM для Clang/libc++.

libc++:

Clang:

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

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 4)

Лень читать. Там в gcc 11 (кажется 11.6) накрутили аннотаций. clang их поддерживает теперь?

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

Я эти сорта не различаю, по мне что штеуд, что АМД. Кроссом же не соберешь под какой-нибудь ARM.

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

Я тут посмотрел на NAG library, так NAG свою библиотеку на 90м переписали. Типа интерфейсы, все дела... А может так уже и на 2005м, я не очень в курсе, чем 90й от 2005го отличается.

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

Угу. Не хотят. Хотя мой личный опыт показывает, что в некоторых случаях очень даже надо. Один фортрановский метод конвертнул с помощью ф2ц, поправил извращения с индексами которые генерит ф2ц и получил значительное ускорение, более 20%. Так что можно конечно молиться на дедов академиков, а можно думать головой.

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

Проблема большинства программ, написанных на Фортран 66/77 в том, что они не написаны на Фортран 66/77, а используют кучу нестандартных расширений, хотя и реализованных практически во всех компиляторах. В gcc, например, обычно компилируется и работает, но вываливает кучу warning’ов.

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

поправил извращения с индексами

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

grem ★★★★★
()

я два дня пробую всякие компиляторы для своего проекта «Hello World», остановился пока на «intel fortran compiler»+«visual studio community», там очень много дополнений, расширений, модулей, кажется там всё есть для компиляции кода. Там ещё видел можно скачать «Visual Studio Code», как высплюсь попробую его, потаму что он работает на Linux.

Gennadevich
()
Ответ на: комментарий от MOPKOBKA

ну пока я не встретил никаких препятствий в фортране всё решаемо сменой компилятора, а как до графики доберусь посмотрим, пока что «test».😀

Gennadevich
()

Про Фортран упомянули, про Раст ни разу. Мамкиных протестунов видно издалека)

slepoy_pew
()
Ответ на: комментарий от Original_1

И не сдохнуть, будучи говнарём

Нужно слушать не только рок-группы, obviously.

i_am_not_ai
()

Релизный LLVM16 появился в портах FreeBSD. Установил. Большинство портов не хочет им собираться. Видимо, не доросли до его уровня ожиданий качества кода.

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

GCC отстал от всего мира. У Интела компилятор современный, у майкрософт компилятор современный ещё и лучший во всём и впереди планеты всей. Даже у Ембаркадеро компилятор отвечает всем современным требованиям. А разрабы gcc положили большой и толстый, уже С++23 выходит, а они только С++17 освоили и то не до конца.

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

Перевожу: корпоративные диверсанты объединились и сообща выпустили пачку несовместимых с gcc нововведений, дабы выставить его в плохом свете.

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

Неправильно. Правильно так, все что-то делают, а разрабы gcc просто так просиживают штаны. Их счастье, что эпл использует gcc как основу, как только эпл откажется от gcc, и напишут свой компилятор или перейдут на LVVM то гцц можно будет закопать с чистой совестью.

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

Правильно так, все что-то делают

«Что-то делать» это не всегда хорошо. gcc всегда был эталоном того, каким должен быть си и с++ компилятор. А ты описал диверсию по перехвату инициативы.

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

Даже у Ембаркадеро компилятор отвечает всем современным требованиям

Это который не мог даже в Boost и им приходилось нанимать DELIRIUM что бы он заработал с костылями?

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

Мда, да там у шланга побольше красных квадратиков будет, а у мс вообще почти везде. (C++23 core language)

Вместе с этим

у майкрософт компилятор современный ещё и лучший во всём и впереди планеты всей

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

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

Apple и тащила Clang в массы. Потому, что понимала, что за другими платформами типа арм - носимое будущее. Сейчас Clang стал конфеткой, писать на крестах и сишечке - одно удовольствие, софт одинаково быстро работает как на окошках, так и на маках с пингвином. Наступило будущее кроссплатформы, когда софт с пол пинка собирается икскодом и заливается на айфон или дроид за минуту, и разворачивается там для дебага из ide

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

А этот дурацкий баг так и не пофиксили https://github.com/llvm/llvm-project/issues/43670

В MS STL пофикшен баг: https://github.com/microsoft/STL/commit/581b4f089c303123071a173a16ca2f2260a3a891

с libc++ всё сложнее, так как на тех же самых изменениях тесты с gcc падают(с clang проходят)

gcc говорит что нельзя брать адрес consteval функции. Нужно разбираться, то ли в тестах LLVM что-то не то. То ли в gcc кодогенераторе что-то не то.

Я на выходных погляжу, может удастся пофиксить.

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

gcc всегда был эталоном

Нет, gcc всегда был говном. Это общепризнаный факт.

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

уже С++23 выходит, а они только С++17 освоили и то не до конца

Кто понял жизнь, тот не спешит.

BydymTydym
()
Ответ на: комментарий от snizovtsev

Рвутся и регулярно переписывают. Вот в Питоне (scipy) вместо обёртки над lsoda теперь самописный на сях solve_ivp. Работает хуже: медленнее и недостаточно точно, но зато не дедами сделано. Слава богу, что оставили возможность пока lsoda дёргать.

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

А кто вам сказал, что он устарел? Для чего устарел? Во многих отношениях он удобнее и безопаснее Си и существенно производительнее Си++. Но, конечно, разрабатывать игры или драйверы видеокарты на нём я бы не стал. А вы писали программы для прогноза погоды, например? Или методы оптимизации для тех же нейросетей?

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

А кто вам сказал, что он устарел?

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

Во многих отношениях он удобнее и безопаснее Си и существенно производительнее Си++.

С++ это самый производительный язык на данный момент, он имеет лучшие компиляторы, продвинутый язык с шаблонами, constexpr, consteval, и другими средствами. Возможно я ошибаюсь, можно простой пример который показывает где Fortran быстрее?

А вы писали программы для прогноза погоды, например? Или методы оптимизации для тех же нейросетей?

Нет, я далек от этой области, но уверен что она не является сильно особенной, и еще знаю что Tensorflow написан на С++.

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

Видимо разработчикам GCC было чем заняться, пока это не стало «обязательно должно быть в любом компиляторе». Я представляю как они офигивали после выхода каждого нового стандарта C++.

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

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

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

https://en.cppreference.com/w/cpp/20

g++ поддерживает C++20.

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

Да, рывок между C++98 и C++11 имеет смысл, между C++11 и C++17 тоже.

А вот какой был реальный смысл в C++14 и C++20 я понять не могу.

Единственное, что мне понравилось в C++20 – метод contains в контейнерах STL.

Зато добавили никому не нужные модули. Разработчики компиляторов прожигают стулья от модулей, но их НИКТО ни в одном проекте не использует. Зачем спрашивается?

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

Зато добавили никому не нужные модули. Разработчики компиляторов прожигают стулья от модулей, но их НИКТО ни в одном проекте не использует.

Так ведь если будут использоваться модули, то сборка проекта будет быстрее => программисту остаётся меньше времени, чтобы посмотреть на котиков в интернете

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

Единственное, что мне понравилось в C++20 –

это std::ranges.

dataman ★★★★
()
Ответ на: комментарий от snake266
  1. Какие системы сборки поддерживают модули?
  2. Какие IDE?
  3. В модулях работают шаблоны?
  4. А вам известно, что компилировать модули надо иерархично, а не все вместе параллельно?
  5. Какие библиотеки кроме STL поддерживают модули?
zx_gamer ★★
()
Ответ на: комментарий от zx_gamer

Какие системы сборки поддерживают модули?

CMake 3.26: https://github.com/Kitware/CMake/blob/master/Help/dev/experimental.rst#c20-module-apis

Правда пока без GCC(у GCC есть отдельный форк с патчами чтобы работал в CMake с модулями, описан в статье ниже)

MSVC 19.34 and newer (provided with Visual Studio 17.4 and newer)
LLVM/Clang 16.0 and newer

https://www.kitware.com/import-cmake-c20-modules/

fsb4000 ★★★★★
() автор топика
Последнее исправление: fsb4000 (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.