The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Релиз набора компиляторов LLVM 22"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Релиз набора компиляторов LLVM 22"  +/
Сообщение от opennews (??), 02-Мрт-26, 12:22 
После шести месяцев разработки представлен релиз проекта LLVM 22.1.0, развивающего инструментарий (компиляторы, оптимизаторы и генераторы кода), компилирующий программы в промежуточный биткод RISC-подобных виртуальных инструкций (низкоуровневая виртуальная машина с многоуровневой системой оптимизаций). Сгенерированный псевдокод может быть преобразован в машинный код для заданной целевой платформы или использован  JIT-компилятором для формирования машинных инструкций непосредственно во время выполнения программы. На базе технологий LLVM проектом развивается компилятор Clang, поддерживающий языки программирования  C, C++ и  Objective-C. Начиная с ветки 18.x проект перешёл на новую схему формирования номеров версий, в соответствии с которой нулевой выпуск ("N.0") используется в процессе разработки, а первая стабильная версия снабжается номером "N.1"...

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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


4. "Релиз набора компиляторов LLVM 22"  +/
Сообщение от Карлос Сношайтилис (ok), 02-Мрт-26, 12:27 
> Возможности, связанные с языком С: Реализован черновик спецификации, определяющей механизм отложенного выполнения "defer"

Если вы не идёте к RAII, RAII идёт к вам

Ответить | Правка | Наверх | Cообщить модератору

34. "Релиз набора компиляторов LLVM 22"  +/
Сообщение от Аноним (34), 02-Мрт-26, 14:42 
Давно пора. Только вот зачем они сделали эту фичу как control block, а не как декларацию с полноценными лямбда-функциями, мне не понятно. Так придётся колхозить замыкания, если надо захватывать значения переменных на этапе defer, что часто бывает нужно. И теперь даже если потом добавят лямбды, с текущим defer они не совместимы. В общем, подложили лишние грабли и себе, и C++.
Ответить | Правка | Наверх | Cообщить модератору

5. "Релиз набора компиляторов LLVM 22"  –5 +/
Сообщение от Аноним (5), 02-Мрт-26, 12:35 
Какой ещё ARM? Только ASML, только x64!
Ответить | Правка | Наверх | Cообщить модератору

11. "Релиз набора компиляторов LLVM 22"  +2 +/
Сообщение от Аноним (11), 02-Мрт-26, 13:15 
Чего ?
ARM это архитектура, а ASML делают литографы, которые потом покупает например TSMC и производит процессоры для Qualcomm или Apple.
p.s.:
- https://cdn.videocardz.com/1/2026/02/QUALCOMM-SNAPDRAGON-X2-...
- https://cdn.videocardz.com/1/2026/02/QUALCOMM-SNAPDRAGON-X2-...
Ответить | Правка | Наверх | Cообщить модератору

6. "Релиз набора компиляторов LLVM 22"  +/
Сообщение от Аноним (6), 02-Мрт-26, 12:46 
Как ставить-то?
Ответить | Правка | Наверх | Cообщить модератору

9. "Релиз набора компиляторов LLVM 22"  +/
Сообщение от dannyD (?), 02-Мрт-26, 13:12 
В генту уже доступен.
Ответить | Правка | Наверх | Cообщить модератору

29. "Релиз набора компиляторов LLVM 22"  +/
Сообщение от злой_ой (?), 02-Мрт-26, 14:22 
как всегда машина времени:

$ cat /usr/ports/devel/llvm22/Makefile | grep ^DISTVERSION
DISTVERSION=    22.1.0
$ ls -la /usr/ports/devel/llvm22/Makefile
-rw-r--r--  1 root wheel 25902 26 Feb 21:47 /usr/ports/devel/llvm22/Makefile
$ ls -la /usr/ports/devel/llvm22/distinfo
-rw-r--r--  1 root wheel 180 26 Feb 21:47 /usr/ports/devel/llvm22/distinfo

Ответить | Правка | Наверх | Cообщить модератору

40. Скрыто модератором  +/
Сообщение от Аноним (40), 02-Мрт-26, 15:02 
Ответить | Правка | Наверх | Cообщить модератору

42. "Релиз набора компиляторов LLVM 22"  +/
Сообщение от Аноним (42), 02-Мрт-26, 15:08 
Ты портопомойку сравниваешь с main tree. Не надо так.
Ответить | Правка | К родителю #29 | Наверх | Cообщить модератору

24. "Релиз набора компиляторов LLVM 22"  +/
Сообщение от Аноним (42), 02-Мрт-26, 14:08 
Не спеши, может, компиляцию хрома опять сломали. Раст, опять же, к осени ждать только.
Ответить | Правка | К родителю #6 | Наверх | Cообщить модератору

7. "Релиз набора компиляторов LLVM 22"  –4 +/
Сообщение от Аноним (7), 02-Мрт-26, 12:57 
>поддержка именованных циклов

у раста подсмотрели)
https://doc.rust-lang.org/std/keyword.break.html

Ответить | Правка | Наверх | Cообщить модератору

10. "Релиз набора компиляторов LLVM 22"  +1 +/
Сообщение от Аноним (10), 02-Мрт-26, 13:13 
Технологии языков прошлого века, когда родителей раста ещё не было в планах.
Ответить | Правка | Наверх | Cообщить модератору

15. "Релиз набора компиляторов LLVM 22"  –1 +/
Сообщение от нах.. (?), 02-Мрт-26, 13:43 
Но подсмотрели то у Раста)
Ответить | Правка | Наверх | Cообщить модератору

27. "Релиз набора компиляторов LLVM 22"  +/
Сообщение от Аноним (34), 02-Мрт-26, 14:20 
На самом деле, эти идеи далеко не новы и обсуждались задолго до Раста. И у конкретно этого решения с метками есть свои минусы и противники, как и у альтернатив. Поэтому долго не стандартизировали. Видимо, просто плюнули и решили, что что-то - лучше, чем ничего.
Ответить | Правка | Наверх | Cообщить модератору

30. "Релиз набора компиляторов LLVM 22"  +/
Сообщение от злой_ой (?), 02-Мрт-26, 14:27 
подсмотрели метки? у раста?

man perlsyn
/LABEL

уже и не вспомнить, с каких пор там оно.

Ответить | Правка | К родителю #15 | Наверх | Cообщить модератору

38. "Релиз набора компиляторов LLVM 22"  +/
Сообщение от Vindex (?), 02-Мрт-26, 15:00 
Эта фишка была в D ещё задолго до появления Rust
Ответить | Правка | К родителю #15 | Наверх | Cообщить модератору

8. "Релиз набора компиляторов LLVM 22"  +2 +/
Сообщение от Аноним (-), 02-Мрт-26, 12:58 
> Добавлена поддержка именованных циклов, позволяющих присваивать имена циклам и оператору switch, которые можно указывать в операторах break и continue для явного определения цикла, из которого производится выход.

Что только не придумают, лишь бы goto не использовать.

Ответить | Правка | Наверх | Cообщить модератору

12. "Релиз набора компиляторов LLVM 22"  +/
Сообщение от Сусанин (?), 02-Мрт-26, 13:28 
> Добавлена поддержка именованных циклов, позволяющих присваивать имена циклам...

Наконец-то сподобились перетащить это из Perl, в котором это уже десятки лет есть ровно с таким же синтаксисом.

Ответить | Правка | Наверх | Cообщить модератору

16. "Релиз набора компиляторов LLVM 22"  –2 +/
Сообщение от windowlicker (?), 02-Мрт-26, 13:44 
Из Раста же
Ответить | Правка | Наверх | Cообщить модератору

18. "Релиз набора компиляторов LLVM 22"  +2 +/
Сообщение от Аноним (18), 02-Мрт-26, 13:59 
Из чего? Это которые в разноцветных шапочках и из ямайки? Они тут причем?
Ответить | Правка | Наверх | Cообщить модератору

22. "Релиз набора компиляторов LLVM 22"  +/
Сообщение от Аноним (22), 02-Мрт-26, 14:06 
Из Фортрана же
Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

21. "Релиз набора компиляторов LLVM 22"  +/
Сообщение от Аноним (21), 02-Мрт-26, 14:02 
GOTO ещё не перетащили?
Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

25. "Релиз набора компиляторов LLVM 22"  –1 +/
Сообщение от Аноним (-), 02-Мрт-26, 14:10 
> GOTO ещё не перетащили?

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


Ответить | Правка | Наверх | Cообщить модератору

39. "Релиз набора компиляторов LLVM 22"  +/
Сообщение от Аноним (34), 02-Мрт-26, 15:00 
Эта "устаревшая" технология с успехом решает все задачи на неё возложенные. И кстати, в конкретно этом случае с именованными циклами, польза последних по сравнению с имеющимся goto довольно сомнительна. Наверно, сделали для альтернативно одаренных с фобией goto.
Ответить | Правка | Наверх | Cообщить модератору

14. "Релиз набора компиляторов LLVM 22"  +/
Сообщение от Аноним (14), 02-Мрт-26, 13:40 
Заголовок "Релиз набора компиляторов LLVM 22"
Портянка "Среди улучшений в Clang 22"

Так а в LLVM что-то изменили?

Ответить | Правка | Наверх | Cообщить модератору

17. "Релиз набора компиляторов LLVM 22"  +/
Сообщение от Аноним (17), 02-Мрт-26, 13:45 
Во-первых, clang - часть llvm, поэтому то что изменили в clang то изменили в llvm. Во-вторых, читай новость целиком.
Ответить | Правка | Наверх | Cообщить модератору

20. "Релиз набора компиляторов LLVM 22"  +/
Сообщение от Аноним (20), 02-Мрт-26, 14:00 
привет, goto, давно не виделись
Ответить | Правка | Наверх | Cообщить модератору

23. "Релиз набора компиляторов LLVM 22"  +1 +/
Сообщение от Аноним (23), 02-Мрт-26, 14:08 
Это ж любимая С++ная программа всех любителей раста.
Ответить | Правка | Наверх | Cообщить модератору

26. "Релиз набора компиляторов LLVM 22"  +/
Сообщение от Аноним (26), 02-Мрт-26, 14:10 
> операторы сравнения "<", ">", "<=" и ">=" синтезированы из оператора "<=>"

а это вообще что? как? куда? а главное — зачем?

Ответить | Правка | Наверх | Cообщить модератору

31. "Релиз набора компиляторов LLVM 22"  +/
Сообщение от Аноним (34), 02-Мрт-26, 14:31 
Это позволяет определить, сгенерирован ли оператор компилятором на основе operator<=> (фича C++20) или определён пользователем.

https://godbolt.org/z/YcG1jTv8Y

"Зачем" - не знаю, но видимо есть какие-то случаи, когда это может пригодиться.

Ответить | Правка | Наверх | Cообщить модератору

33. "Релиз набора компиляторов LLVM 22"  +/
Сообщение от Аноним (33), 02-Мрт-26, 14:38 
обязательно было вот это Г делать явным?

outer:
   for (int i = 0; i < IK; ++ i) {
     for (int j = 0; j < JK; ++ j) {
        continue;       // переход к CONT1
        continue outer; // переход к CONT2
        // CONT1
     }
     // CONT2
   }

В пхп давно оно неявное, достаточно указать номер уровня вложенности continue 2;

Ответить | Правка | Наверх | Cообщить модератору

35. "Релиз набора компиляторов LLVM 22"  +1 +/
Сообщение от Аноним (34), 02-Мрт-26, 14:46 
Ну да, а потом иди считай, куда твой break или continue на самом деле переходит. Заняться нечем?

С метками тоже переходит не туда, где метка (и это косяк этого решения), но по крайней мере визуально видно о каком цикле речь. К тому же, метку можно назвать как угодно.

Ответить | Правка | Наверх | Cообщить модератору

41. "Релиз набора компиляторов LLVM 22"  +/
Сообщение от Аноним (33), 02-Мрт-26, 15:06 
> Заняться нечем?

заняться не чем именно тем, кто мешает понятие меток с уровнем вложенности блочных операторов.

> Ну да, а потом иди считай, куда твой break или continue на самом деле переходит.

А что, ты не должен после добавления нового уровня вложенности пересмотреть все свои условия для break и continue операторов? Или навалял и забыл? И ни на что не должно влиять ваше добавление? Добавил один уровень, ну вот какое значение стоит перед твоим continue, так к нему добавь +1, в чем проблема подсчета? А лучше бы пример привел бы, когда необходим именно именованный блок при добавления нового уровня вложенности.

> С метками тоже переходит не туда, где метка (и это косяк этого решения), но по крайней мере визуально видно о каком цикле речь.

всегда за всякими

    } // тут конец цикла
  } // вот тут конец условия а
} // ставили коментари

так же и с break и continue можно, не вижу проблемы.

continue 3; // for i
continue 2; // for j
continue 1; // for k

> К тому же, метку можно назвать как угодно.

если существует механизм меток и оператор безусловного перехода, тогда оператор цикла является избыточным.

Ответить | Правка | Наверх | Cообщить модератору

36. "Релиз набора компиляторов LLVM 22"  +/
Сообщение от Аноним (36), 02-Мрт-26, 14:49 
Явное лучше неявного. Полностью одобряю подход авторов.
Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

43. "Релиз набора компиляторов LLVM 22"  +/
Сообщение от Аноним (33), 02-Мрт-26, 15:10 
> Явное лучше неявного.

Согласен, а зачем тогда избыточность в виде оператора цикла, кода есть механизм меток и оператор безусловного перехода. Явное лучше, но почему-то "компилятор умнее". Умному компилятору явно указывать уровень вложенности нет необходимости. Сделали для людей это? Не смешите мои тапочки - Си сделан для людей :))))

Ответить | Правка | Наверх | Cообщить модератору

37. "Релиз набора компиляторов LLVM 22"  –1 +/
Сообщение от Аноним (37), 02-Мрт-26, 14:58 
50+ лет фанаты сишечки рассказывать что "ненужОн ваш RAII!" и без defer обойдемся!
А тут хоба - в драфт стандарта принял))
Ответить | Правка | Наверх | Cообщить модератору

44. "Релиз набора компиляторов LLVM 22"  +/
Сообщение от Аноним (42), 02-Мрт-26, 15:10 
Ну это не RAII всё же. Его запретили везде не просто так.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2026 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру