The OpenNET Project / Index page

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



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

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

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

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

Оглавление

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


2. "Опубликован набор компиляторов LLVM 19"  +4 +/
Сообщение от Аноним (2), 17-Сен-24, 23:21 
> механизм "#embed" для интеграции бинарных ресурсов;

Джва года ждал.

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

20. "Опубликован набор компиляторов LLVM 19"  +1 +/
Сообщение от Аноним (20), 18-Сен-24, 04:08 
Там уже было, сам лично делал, только там нужно было делать финты пистоном.

С23 очень годные изменения привнёс, второе пришествие С11.

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

53. "Опубликован набор компиляторов LLVM 19"  +/
Сообщение от Аноним (53), 18-Сен-24, 12:13 
Усложнять чистосишку тоже не надо.
Ответить | Правка | Наверх | Cообщить модератору

58. "Опубликован набор компиляторов LLVM 19"  +1 +/
Сообщение от Аноним (58), 18-Сен-24, 13:13 
#embed "/etc/shadow"
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

4. "Опубликован набор компиляторов LLVM 19"  +1 +/
Сообщение от Аноним (4), 17-Сен-24, 23:53 
Предпочитаю классику c99.
Ответить | Правка | Наверх | Cообщить модератору

8. "Опубликован набор компиляторов LLVM 19"  +3 +/
Сообщение от Вы забыли заполнить поле Name (?), 18-Сен-24, 00:22 
классика - это с89
Ответить | Правка | Наверх | Cообщить модератору

43. "Опубликован набор компиляторов LLVM 19"  –11 +/
Сообщение от Аноним (43), 18-Сен-24, 10:01 
Платформозависимый int – главное достижение человечества. Надо по рукам бить тех, кто тащит, например, uint64_t на 8-бит микруху. Код должен быть написан так, чтобы типы были без фиксированного размера. Тогда код будет на любой архитектуре работать оптимально.
Ответить | Правка | Наверх | Cообщить модератору

46. "Опубликован набор компиляторов LLVM 19"  +3 +/
Сообщение от Аноним (-), 18-Сен-24, 10:37 
> Платформозависимый int – главное достижение человечества. Надо по рукам бить тех, кто тащит, например, uint64_t на 8-бит микруху.

А кто ему запретит)?
Это же не компилятор других языков, который будет лупить по рукам за кривой код.


> Код должен быть написан так, чтобы типы были без фиксированного размера. Тогда код будет на любой архитектуре работать оптимально.

Отличная идея!
int main(void) {
    int a = +2147483647;
    int b = a + 1;
    return 0;
}
выдает разные значения на разных платформах в зависимости от размера типа.


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

54. "Опубликован набор компиляторов LLVM 19"  +2 +/
Сообщение от Admino (ok), 18-Сен-24, 12:14 
> выдает разные значения на разных платформах в зависимости от размера типа.

Сей код значений не выдаёт.

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

47. "Опубликован набор компиляторов LLVM 19"  –1 +/
Сообщение от Аноним (43), 18-Сен-24, 10:55 
> Отличная идея!

Так у вас пример архитектурозависимого кода. Диды умещали в 256 всё необходимое, даже игры делали. Что изменилось? Люди обленились и не оптимизируют логически переменные.
Да, некоторые переменные должны вмещать большие данные. Вот их, как единичные исключения, делать фиксированными.

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

52. "Опубликован набор компиляторов LLVM 19"  +/
Сообщение от trolleybus (?), 18-Сен-24, 11:17 
> Диды умещали в 256 всё необходимое, даже игры делали.

Так вот то, что в 256 помещается, и надо делать uint8_t. Кроме этого, есть всякие uint_least8_t, uint_fast8_t для оптимизации по скорости.

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

57. "Опубликован набор компиляторов LLVM 19"  +/
Сообщение от i (??), 18-Сен-24, 12:42 
очень смешно
Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

68. "Опубликован набор компиляторов LLVM 19"  +/
Сообщение от _ (??), 18-Сен-24, 19:01 
>Диды умещали в 256 всё необходимое, даже игры делали.

На Радио86 \ Микроша \ Sinclair *\ Yemaha MSX  int был 8 bit - surprise bro!

>Что изменилось?

На том, из чего ты накропал свой гениальный пост int - 64 bit ...

>Люди обленились и не оптимизируют логически переменные.

И правильно, пусть вон - ChatGPT с Copilot напрягаются! :)

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

74. "Опубликован набор компиляторов LLVM 19"  +/
Сообщение от Аноним (74), 19-Сен-24, 10:42 
int не может быть 8 бит даже в Нарнии, даже в Гаррипоттере, даже в C89.

>На том, из чего ты накропал свой гениальный пост int - 64 bit ...

Модель ILP64 встречалась на том, что давно в музее, поэтому нет, не 64 битный у него инт.

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

69. "Опубликован набор компиляторов LLVM 19"  +/
Сообщение от nc (ok), 18-Сен-24, 23:04 
Вообще говоря типы без фиксированного размера это частный случай трейтов. Т.е. мы говорим  "нам здесь нужен какой-то целочисленный тип с такими-то свойствами" и компилятор сам выводит этот тип. Если язык в явном виде поддерживает такое - это замечательно. Но Си поддерживает нечто очень урезанное (не вывод типа а платформозависимость), просто потому что так сложилось исторически, что плохо.
Ответить | Правка | К родителю #43 | Наверх | Cообщить модератору

71. "Опубликован набор компиляторов LLVM 19"  +/
Сообщение от Аноним (-), 19-Сен-24, 00:37 
Дайте пожалуйста определение трейтов на С. Или вы не понимаете что такое трейты или я чего-то не понял.
Ответить | Правка | Наверх | Cообщить модератору

24. "Опубликован набор компиляторов LLVM 19"  +/
Сообщение от Аноним (24), 18-Сен-24, 05:23 
Самый адекватный СИшный компилер. У gcc, например, нет clangd.
Ответить | Правка | Наверх | Cообщить модератору

25. "Опубликован набор компиляторов LLVM 19"  –2 +/
Сообщение от Хру (?), 18-Сен-24, 07:06 
Так возьми и запили! Будет gccd и благодарность в примечаниях к выпуску. А так же очередь из рекрутеров из топ-компаний планеты :)
Ответить | Правка | Наверх | Cообщить модератору

61. "Опубликован набор компиляторов LLVM 19"  +/
Сообщение от Аноним (61), 18-Сен-24, 16:23 
> Так возьми и запили!

Моей квалификации хеллоувротщика не хватит, увы.

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

72. "Опубликован набор компиляторов LLVM 19"  +/
Сообщение от Аноним (-), 19-Сен-24, 00:40 
Есть cmake. Хотя мне не нравится. Я хоть и любитель, вообще не Си программист, но могу запилить. Просто компилятор, который исследует изменение в файлах и начинает компиляцию? Это реально нужно?
Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

26. "Опубликован набор компиляторов LLVM 19"  –1 +/
Сообщение от Аноним (26), 18-Сен-24, 07:28 
> У gcc, например, нет clangd.

И не нужно.

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

62. "Опубликован набор компиляторов LLVM 19"  +/
Сообщение от Аноним (61), 18-Сен-24, 16:23 
Если писать хеллоуврот в nano может и не нужно.
Ответить | Правка | Наверх | Cообщить модератору

50. "Опубликован набор компиляторов LLVM 19"  –2 +/
Сообщение от 12yoexpert (ok), 18-Сен-24, 11:09 
самый адекватный для копирастов, лицензия какбэ намекает
Ответить | Правка | К родителю #24 | Наверх | Cообщить модератору

63. "Опубликован набор компиляторов LLVM 19"  +/
Сообщение от Аноним (61), 18-Сен-24, 16:24 
Тебя как программиста (если ты таковой) лицензия должна волновать в самую последнюю очередь.
Ответить | Правка | Наверх | Cообщить модератору

65. "Опубликован набор компиляторов LLVM 19"  +/
Сообщение от Аноним (-), 18-Сен-24, 16:48 
Свободное Сообщество, FSF и GNU с тобой не согласны.
Ответить | Правка | Наверх | Cообщить модератору

55. "Опубликован набор компиляторов LLVM 19"  +1 +/
Сообщение от Walker (??), 18-Сен-24, 12:18 
Они всё у GCC слизали!
Ответить | Правка | К родителю #24 | Наверх | Cообщить модератору

56. "Опубликован набор компиляторов LLVM 19"  –2 +/
Сообщение от Аноним (56), 18-Сен-24, 12:41 
> Они всё у GCC слизали!

Что именно? Огласите список!

Они создавались со свободной лицензией, как противовес раковому GCC.
Чтобы не зависеть от левой (слегка погрызаной) пятки фанатиков, которым аж в 2009 году пришлось публиковать GCC Runtime Library Exception - без которых был спор является ли результат компиляции derivative work или нет.
gnu.org/licenses/gcc-exception-3.1.html

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

66. "Опубликован набор компиляторов LLVM 19"  –2 +/
Сообщение от Аноним (-), 18-Сен-24, 17:12 
1. 1990-е гг. корпорасты наивно полагали, что поскольку есть C++, то чистая Сишка уже не нужна. В те времена люди впадали в оргазм при упоминании ООП. Все как мантру повторяли три кита ООП: инкапсуляция, наследование, полиморфизм. Из всего этого следует второй пункт.
2. Просто все забили на чистый Си и поддержку его стандартов в своих коммерческих компиляторах. Из всего этого следует третий пункт.
3. И вот вдруг корпорасты остались у разбитого корыта. Не было компилятора Си, который бы поддерживал последние стандарты языка Си, все коммерческие компиляторы застряли на уровне ANSI С89.

1990-е только Линус Торвальдс и GNU знали, что чистая Сишка - это реальная тема. В нулевые GCC, был единственным рабочим компилятором чистого Си. И тут корпорасты спохватились...
LLVM появился не от того, что его разработчики любят Си, а от того, что Apple боялась господства GNU, и поэтому она влила в один университетский проект много денег.

За годы господства ООП новое поколение программистов тупо не могло написать процедурный код с его алгоритмами. На первых порах разработчики LLVM тупо копировали целые куски исходного текста из GCC, сейчас, сами конечно они в этом не признаются.

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

70. "Опубликован набор компиляторов LLVM 19"  +/
Сообщение от Аноним (-), 18-Сен-24, 23:14 
> LLVM появился не от того, что его разработчики любят Си,
> а от того, что Apple боялась господства GNU, и поэтому она влила в один университетский проект много денег.

Какое господство гну? Тогда они даже однопроцентниками не были.

Аппл боялась лицензионной грязности гнурака. Причем не только эпл.
Вспомни по какой причине BSD с по настоящему свободной лицензией пришлось в срочном порядке менять компилятор и почему впоследствии появился GCC Runtime Library Exception.
Но это было неприемлемо для всех остальных свободных проектов тоже. А гнутики один раз уже замарались и больше к ним доверия не было. Поэтому в LLVM поддержали и другие участники.

> На первых порах разработчики LLVM тупо копировали целые куски исходного текста из GCC

Угу... и нарушали GPL? Какой только дичи не увидишь от кекспертов...

> сейчас, сами конечно они в этом не признаются.

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


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

64. "Опубликован набор компиляторов LLVM 19"  –2 +/
Сообщение от Аноним (61), 18-Сен-24, 16:25 
Это не важно. Важно что они предоставляют фишки, которых нет у гцц. А лицензии волнуют только вахтеров.
Ответить | Правка | К родителю #55 | Наверх | Cообщить модератору

27. "Опубликован набор компиляторов LLVM 19"  –2 +/
Сообщение от хрю (?), 18-Сен-24, 07:54 
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p28...

2024-03-21 !!! @Trivial infinite loops are not Undefined Behavior@ - далеки чуваки от народа, ой как далеки.

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

29. "Опубликован набор компиляторов LLVM 19"  +/
Сообщение от Страуструп (?), 18-Сен-24, 08:28 
Errorsoft, дело в том что не моя проблема, программисты пишут кривые оптимизаторы. Было дело ядро линукс не смогли собрать из за оптимизации в какой то новой GCC с флагом -o2.
Ответить | Правка | Наверх | Cообщить модератору

40. "Опубликован набор компиляторов LLVM 19"  +/
Сообщение от letsmac (ok), 18-Сен-24, 09:42 
С флагом -O2 GCC много чего не собирается. Питон недавно пробовал собрать на плате с arm7 с -O2  - не вышло.
Ответить | Правка | Наверх | Cообщить модератору

34. "Опубликован набор компиляторов LLVM 19"  +4 +/
Сообщение от n00by (ok), 18-Сен-24, 09:16 
> В режиме C++14 включена по умолчанию поддержка функции
> delete с указанием размера (sized deallocation)

Кому лень ходить по ссылке и кто верует в "Си быстрее плюсов" и "free() всегда быстрее сборщика мусора":

Modern memory allocators often allocate in size categories, and, for space efficiency reasons, do not store the size of the object near the object. Deallocation then requires searching for the size category store that contains the object. This search can be expensive, particularly as the search data structures are often not in memory caches.

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

59. "Опубликован набор компиляторов LLVM 19"  +/
Сообщение от Вы забыли заполнить поле Name (?), 18-Сен-24, 15:23 
Ну давай теперь покажи как язык с гц быстрее ручного управления, только на реальном примере.
Ответить | Правка | Наверх | Cообщить модератору

35. "Опубликован набор компиляторов LLVM 19"  +/
Сообщение от Аноним123 (?), 18-Сен-24, 09:31 
>В режиме C++14 включена по умолчанию поддержка функции delete с указанием размера (sized deallocation),

Кто-нибудь понял зачем это надо?

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

38. "Опубликован набор компиляторов LLVM 19"  +/
Сообщение от Аноним (-), 18-Сен-24, 09:33 
Бьёрн Страуструп об этом знает?
Ответить | Правка | Наверх | Cообщить модератору

39. "Опубликован набор компиляторов LLVM 19"  +/
Сообщение от Аноним123 (?), 18-Сен-24, 09:34 
Сам спашиваю и сам отвечаю:
Modern memory allocators often allocate in size categories, and, for space efficiency reasons, do not store the size of the object near the object. Deallocation then requires searching for the size category store that contains the object. This search can be expensive, particularly as the search data structures are often not in memory caches.
Ответить | Правка | К родителю #35 | Наверх | Cообщить модератору

42. "Опубликован набор компиляторов LLVM 19"  –1 +/
Сообщение от Аноним (42), 18-Сен-24, 09:53 
Почему такой жирный сорс? Сколько там линухов вместили?
Ответить | Правка | Наверх | Cообщить модератору

60. "Опубликован набор компиляторов LLVM 19"  +/
Сообщение от Вы забыли заполнить поле Name (?), 18-Сен-24, 15:24 
Там внутри жирный сотрудник анб.
Ответить | Правка | Наверх | Cообщить модератору

44. "Опубликован набор компиляторов LLVM 19"  +/
Сообщение от Аноним (43), 18-Сен-24, 10:18 
> тип char8_t для строк и символов в UTF-8.

Зачем вводить отдельное название для восьмибитного unsigned int?

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

45. "Опубликован набор компиляторов LLVM 19"  –2 +/
Сообщение от Аноним (43), 18-Сен-24, 10:23 
Смешнее этого, что пример не работает отсюда: https://en.cppreference.com/w/c/string/multibyte/char8_t
Gcc с поддержкой c23 ругается на тип. Изменил на char – работает.
В общем, любители свежевыжатого фреша придумывают лишние абстракции. Второй C++ не нужен.
Ответить | Правка | Наверх | Cообщить модератору

48. "Опубликован набор компиляторов LLVM 19"  +1 +/
Сообщение от Аноним (-), 18-Сен-24, 11:01 
> char8_t

гарантировано unsigned.
А вот обычный char - как повезет.
Напр. в gcc он по умолчанию signed, но не на всех платформах (можно настраивать через -funsigned-char, -fsigned-char)

Так что это не "придумывают лишние абстракции", это приведение типа к однозначному поведению.
Потому что в стандарте не удосужились описать каким должен быть char.

> Gcc с поддержкой c23 ругается на тип.

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

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

73. "Опубликован набор компиляторов LLVM 19"  +/
Сообщение от Аноним (-), 19-Сен-24, 00:48 
Потому что ты есть типы зависящие от платформы, а это независящий от платформы. Он будет работать одинаково на разных платформах.
Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

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

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




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

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