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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #34, #47

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

6. Сообщение от Аноним (6), 02-Мрт-26, 12:46   +/
Как ставить-то?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #9, #24

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

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

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

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

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

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

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

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

11. Сообщение от Аноним (11), 02-Мрт-26, 13:15   +2 +/
Чего ?
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ообщить модератору
Родитель: #5 Ответы: #52

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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #16, #21

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

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

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

15. Сообщение от нах.. (?), 02-Мрт-26, 13:43   –1 +/
Но подсмотрели то у Раста)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #27, #30, #38

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

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

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

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

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

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

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

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

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

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


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #39

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

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

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

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

29. Сообщение от злой_ой (?), 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ообщить модератору
Родитель: #9 Ответы: #40, #42

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

man perlsyn
/LABEL

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

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

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

https://godbolt.org/z/YcG1jTv8Y

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

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

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

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, #36, #50

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33 Ответы: #41

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

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

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

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

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

41. Сообщение от Аноним (33), 02-Мрт-26, 15:06   +1 +/
> Заняться нечем?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

45. Сообщение от 12yoexpert (ok), 02-Мрт-26, 15:22   +/
о, у вас уже и RAII запретили
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44

46. Сообщение от 12yoexpert (ok), 02-Мрт-26, 15:24   –1 +/
RAII это corruption, как раст, превращает straightforward обработку ошибок в какой-то бесполезный ад из костылей
но гуманитариям после курсов или совкового универа этого не понять, их удел - макдональдс или аутсорс
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37

47. Сообщение от Сладкая булочка (?), 02-Мрт-26, 15:35   +1 +/
> Если вы не идёте к RAII, RAII идёт к вам

Только defer - это не RAII.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #51, #55

48. Сообщение от Сладкая булочка (?), 02-Мрт-26, 15:36   +/
> Давно пора.

Давно уже есть в gcc и используется (например, в коде systemd). Надо просто стандартизовать.

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

49. Сообщение от Сладкая булочка (?), 02-Мрт-26, 15:39   +/
Среднестатистический пользователь раста туда вряд ли заглядывает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23

50. Сообщение от Сладкая булочка (?), 02-Мрт-26, 15:40   +/
> В пхп давно оно неявное, достаточно указать номер уровня вложенности continue 2;

Сейчас бы ориентироваться на пых.

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

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

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

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

55. Сообщение от Аноним (34), 02-Мрт-26, 16:05   +/
Сделано главным образом именно для RAII.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47


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

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




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

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