The OpenNET Project / Index page

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



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

"Доступен набор компиляторов LLVM 18 "  +/
Сообщение от opennews (??), 07-Мрт-24, 13:54 
После шести месяцев разработки представлен релиз проекта LLVM 18.1.0 - GCC-совместимого инструментария (компиляторы, оптимизаторы и генераторы кода), компилирующего программы в промежуточный биткод RISC-подобных виртуальных инструкций (низкоуровневая виртуальная машина с многоуровневой системой оптимизаций). Сгенерированный псевдокод может быть преобразован при помощи JIT-компилятора в машинные инструкции непосредственно в момент выполнения программы...

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

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

Оглавление

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


3. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (3), 07-Мрт-24, 13:57 
А давно вообще этот линкер не может собирать программы без флага --undefined-version? Насколько разумно собирать вообще все с ним?
Ответить | Правка | Наверх | Cообщить модератору

4. "Доступен набор компиляторов LLVM 18 "  –1 +/
Сообщение от Аноним (4), 07-Мрт-24, 14:07 
Теперь мы пишем import std вместо #include <...>
Работаем, братья!
Ответить | Правка | Наверх | Cообщить модератору

5. "Доступен набор компиляторов LLVM 18 "  –6 +/
Сообщение от Аноним (5), 07-Мрт-24, 14:14 
Просите чтоб в следующем стандарте добавили новый вид квадратных скобкок со скруглёнными углами. Скобочек слишком мало!
Ответить | Правка | Наверх | Cообщить модератору

8. Скрыто модератором  +7 +/
Сообщение от Аноним (4), 07-Мрт-24, 14:37 
Ответить | Правка | Наверх | Cообщить модератору

22. Скрыто модератором  +/
Сообщение от Аноним (5), 07-Мрт-24, 16:04 
Ответить | Правка | Наверх | Cообщить модератору

33. "Доступен набор компиляторов LLVM 18 "  +1 +/
Сообщение от n00by (ok), 07-Мрт-24, 16:30 
Их как раз убрали. Вот так квадратные скобочки со скруглёнными углами выглядели:

??(
??)

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

75. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (75), 07-Мрт-24, 22:56 
в c99 зато есть <% %>, как в asp

в c++ вроде совсем выпилили, да

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

6. "Доступен набор компиляторов LLVM 18 "  –1 +/
Сообщение от m228chtig (?), 07-Мрт-24, 14:24 
Посоветуйте железку с архитектурой LoongArch, хочется поиграться, потыкать палочкой. Где купить в РФ?
Ответить | Правка | Наверх | Cообщить модератору

21. "Доступен набор компиляторов LLVM 18 "  –7 +/
Сообщение от Аноним (3), 07-Мрт-24, 15:58 
Спроси у альтовцев, я так понимаю, скоро на всех прилавках страны. Только это же мипсы 20 летней давности и по производительности тоже тех лет. Когда я в прошлый раз интересовался, им нечего было предложить производительного, твой телефон с армом мощнее их мипсовых серверов.
Ответить | Правка | Наверх | Cообщить модератору

25. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (25), 07-Мрт-24, 16:22 
Судя по документации, LoongArch - это уже не MIPS, а новая ISA, которая появилась впервые в процессорах Loongson 2021 года.
Это раньше Loongson были MIPS.
Ответить | Правка | Наверх | Cообщить модератору

128. "... и не в лотерею, а в карты, и не выиграл, а проиграл"  +/
Сообщение от Алексей (??), 11-Мрт-24, 13:32 
> Только это же мипсы 20 летней давности

Нет, это другая архитектура

> и по производительности тоже тех лет.

Нет.

> твой телефон с армом мощнее их мипсовых серверов.

Нет.

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

130. "... и не в лотерею, а в карты, и не выиграл, а проиграл"  +/
Сообщение от Аноним (3), 11-Мрт-24, 14:28 
> Нет, это другая архитектура

Насколько другая? Более другая, чем riscv прямой наследник mips? Что-то у меня ощущение, что riscv ушёл не в пример дальше.

> Нет.

Хорошо, если так. Я могу судить только по восторженным пресс-релизам на китайском языке¸ которые мне попадались, и что-то они не впечатляли.

> Нет.

Смотря как оценивать. По энергопотреблению/тепловыделению определённо нет.

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

131. "... и не в лотерею, а в карты, и не выиграл, а проиграл"  +/
Сообщение от Алексей (??), 11-Мрт-24, 15:57 
> Что-то у меня ощущение, что riscv ушёл не в пример дальше.

Какой из них (100500 расширений уже стандартизировали?) SIMD уже завезли?

А так-то -- сравнение тёплого с мягким. riscv - это прежде всего про микроконтроллеры, а потому важны 1) свобода от патентов, 2) расширяемость, 3) энергопотребление.

LoongArch -- это для серверов, рабочих станций, ноутов. Потому нужно единообразие, а не расширяемость (поддерживать вагон расширений -- дорогое удовольствие). Потому SIMD есть, и они вот такие, есть виртуализация, и она вот такая, есть аппаратные подпорки для двоичной трансляции их x86, arm, и mips.

> По энергопотреблению/тепловыделению определённо нет.

А Вы хотели, чтобы двухголовый 32-ядерный сервер потреблял как телефон? Бойтесь своих желаний, будет у Вас такой телефон.

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

132. "... и не в лотерею, а в карты, и не выиграл, а проиграл"  +/
Сообщение от Алексей (??), 11-Мрт-24, 16:43 
> > Что-то у меня ощущение, что riscv ушёл не в пример дальше.
> Какой из них (100500 расширений уже стандартизировали?) SIMD уже завезли?

Вот здесь товарищ излагает более подробно:

https://blog.xen0n.name/en/posts/tinkering/loongarch-faq/#wh...

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

29. "Доступен набор компиляторов LLVM 18 "  +2 +/
Сообщение от _kp (ok), 07-Мрт-24, 16:26 
В РФ нигде не купить. А на Ali продаются.
Есть как комплекты в виде десктопных материнок, так и мелкие платки типа Raspberry.

Пока они на каждом углу не продаются, какого то интереса не представляют. Тот же Linux на ARM вполне достаточно  проблем добавляет, а будет и вовсе экзотическая архитектура и версия Линукса. Но, для коллекционеров, и любителей диковин, для  поиграться можно.

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

139. "слоупок.jpg"  +1 +/
Сообщение от Алексей (??), 12-Мрт-24, 14:40 
> Пока они на каждом углу не продаются, какого то интереса не представляют.

А когда появились на каждом углу, то заказы (вакансии) уже ушли не к Вам  .

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

44. "Доступен набор компиляторов LLVM 18 "  +2 +/
Сообщение от Аноним (44), 07-Мрт-24, 17:12 
А что за интерес в этой игре? Процессор не на принципиально новой архитектуре, да и кодить на асме вы под него не будете. А на высоком уровне всё едино. Если в составе готовой системы, то опять же всё стандартно — PCI-E, USB, SATA и прочая периферия. Прошли те времена, когда на разных архитектурах были совершенно разные компьютеры (как Amiga и PC, например).
Ответить | Правка | К родителю #6 | Наверх | Cообщить модератору

140. "Что интересного в процессорах со слабой моделью памяти"  +/
Сообщение от Алексей (??), 12-Мрт-24, 20:18 
> Процессор не на принципиально новой архитектуре, да и кодить на асме вы под него не будете.

Можно позапускать что-нибудь сильно многопоточное (а может даже и lock-free) ВЖИВУЮ на процессоре со слабой моделью памяти (а не на этих ваших litmus tests, или микроконтроллерах, у которых нет спекулятивного исполнения). После чего призадуматься и ещё раз перечитать какую-нибудь умную книжку на тему. "A primar on memory consistency and cache coherence", например.

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

127. "LoongArch железяки"  +/
Сообщение от Алексей (??), 11-Мрт-24, 13:27 
На Али полно, ищите по Loongson 3A6000 (или Loongson 3A5000 - но эти возможно придётся перепрошивать).

Примеры:
Системник на 3A6000: https://aliexpress.ru/item/1005006181125200.html?sku_id=1200...
Можно купить только плату: https://aliexpress.ru/item/1005006181022567.html?sku_id=1200...

Можно взять на 3A5000 - дешевле будет, но возможно (возможно!) придётся перепрошить UEFI.
Плата: https://aliexpress.ru/item/1005004752995570.html?sku_id=1200...
Системник: https://aliexpress.ru/item/1005004160595574.html?sku_id=1200...

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

147. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Сербурмалиновый (?), 18-Мрт-24, 00:31 
В октябре 2023 мелькали ноты и рабочие станции:

> Российская компания «Норси-Транс», по информации газеты «Коммерсантъ», организует выпуск серверов, СХД, настольных компьютеров и ноутбуков на китайских процессорах Loongson. Партнёром в рамках данного проекта выступит «Базальт СПО» — разработчик ОС «Альт». «Коммерсантъ» добавляет, что выпускать оборудование на чипах Loongson также намерена компания «Промобит» — российский разработчик и производитель серверов и СХД.
> Как сообщил гендиректор «Норси-Транс» в ходе форума «Микроэлектроника», компания закупила приблизительно 100 процессоров Loongson, на которых будет выпущена тестовая партия устройств. Речь идёт об изделиях Loongson упомянутой 5000-й серии. Компьютеры и серверы на этой аппаратной платформе планируется поставлять государственным и корпоративным заказчикам.

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

7. Скрыто модератором  –5 +/
Сообщение от Аноним (-), 07-Мрт-24, 14:27 
Ответить | Правка | Наверх | Cообщить модератору

55. Скрыто модератором  +1 +/
Сообщение от Аноним (55), 07-Мрт-24, 17:56 
Ответить | Правка | Наверх | Cообщить модератору

11. "Доступен набор компиляторов LLVM 18 "  +1 +/
Сообщение от Аноним (11), 07-Мрт-24, 14:53 
Зато ГЦЦ Модулу-2 поддерживает!
Ответить | Правка | Наверх | Cообщить модератору

15. "Доступен набор компиляторов LLVM 18 "  –2 +/
Сообщение от Аноним (15), 07-Мрт-24, 14:59 
ну вот, если нужен модула-2 компилятор - можно поставить gcc, а для всего остального llvm
Ответить | Правка | Наверх | Cообщить модератору

16. "Доступен набор компиляторов LLVM 18 "  –1 +/
Сообщение от Аноним (-), 07-Мрт-24, 15:02 
> Зато ГЦЦ Модулу-2 поддерживает!

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

Ты, кстати, забыл что ллвм еще не поддерживает кучку некроплатформ.

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

19. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (11), 07-Мрт-24, 15:18 
> Это же очень важный и популярный язык программирования!

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

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

46. "Доступен набор компиляторов LLVM 18 "  +1 +/
Сообщение от Аноним (44), 07-Мрт-24, 17:14 
Бейсик тоже просто работает (и это не ирония).
Ответить | Правка | Наверх | Cообщить модератору

123. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Бывалый Смузихлёб (ok), 10-Мрт-24, 13:14 
> Ты, кстати, забыл что ллвм еще не поддерживает кучку некроплатформ.

ну это скорее минус чем плюс
какая ллвм'у, по сути, вообще разница, во что в конечном итоге превращается промежуточный код ?
А так - получается и не рыбку съесть - и не...

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

26. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Вы забыли заполнить поле Name (?), 07-Мрт-24, 16:24 
Не только ее!
Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

18. Скрыто модератором  +3 +/
Сообщение от name (??), 07-Мрт-24, 15:08 
Ответить | Правка | Наверх | Cообщить модератору

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

23. "Доступен набор компиляторов LLVM 18 "  +1 +/
Сообщение от Вы забыли заполнить поле Name (?), 07-Мрт-24, 16:11 
> Удалены обвязки для языка Python

Зачем?

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

31. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (31), 07-Мрт-24, 16:27 
https://raw.githubusercontent.com/llvm/llvm-project/main/cla...

Для Clang вроде на месте. Это надо быть поехавшим, чтобы их удалять — на них столько всего завязано.

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

24. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (31), 07-Мрт-24, 16:17 
>int x = +f - e; // OK

Спасибо, не знал что можно обойтись без static_cast<>.

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

27. "Доступен набор компиляторов LLVM 18 "  +1 +/
Сообщение от Вы забыли заполнить поле Name (?), 07-Мрт-24, 16:25 
Зря вы ему сказали... ой зря
Ответить | Правка | Наверх | Cообщить модератору

99. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от НяшМяш (ok), 08-Мрт-24, 21:56 
Теперь будет писать как на жаваскрипте
Ответить | Правка | Наверх | Cообщить модератору

124. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Бывалый Смузихлёб (ok), 10-Мрт-24, 13:21 
не будут, ведь это фиг разберёшь и в жс-конторах за подобное могут и бить или заставлять переписывать в более явное. Там... не очень любят олимпиадников

но сишников уже столь немного, что проверить их зачастую уже и некому - вот и могут валить в исходники что хотят. Поэтому, да, можно писать как на жс, только на жс так не пишут
Ответить | Правка | Наверх | Cообщить модератору

28. "Доступен набор компиляторов LLVM 18 "  +2 +/
Сообщение от n00by (ok), 07-Мрт-24, 16:26 
Самое нужное нововведение C23 так и не добавили.

6.10.4 Binary resource inclusion
...
EXAMPLE 1 Placing a small image resource.


#include <stddef.h>

void have_you_any_wool(const unsigned char*, size_t);

int main (int, char*[]) {
      static const unsigned char baa_baa[] = {
#embed "black_sheep.ico"
      };

      have_you_any_wool(baa_baa, sizeof(baa_baa));

      return 0;
}


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

34. "Доступен набор компиляторов LLVM 18 "  –1 +/
Сообщение от Аноним (34), 07-Мрт-24, 16:32 
Оно и не нужно. Это должно быть отдельным файлом. Лучше бы https://github.com/vimpunk/mio стандартизировали.
Ответить | Правка | Наверх | Cообщить модератору

37. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от n00by (ok), 07-Мрт-24, 16:40 
Кому оно должно и зачем путать Си и Си++?
Ответить | Правка | Наверх | Cообщить модератору

42. "Доступен набор компиляторов LLVM 18 "  –7 +/
Сообщение от Аноним (42), 07-Мрт-24, 17:07 
1. Отображение файлов в память с удобным в работе кроссплатформенны  интерфейсом, встроенным в стандартную библиотеку? Всем нужно.
2. Си устарел и не нужен. Для адекватных людей чистого си в их проектах не существует. К сожалению иногда приходится иметь дело с неадекватными, вроде некоторых разработчиков Дебиана (кстати, подписантов антистоллмановского письма).
Ответить | Правка | Наверх | Cообщить модератору

52. "Доступен набор компиляторов LLVM 18 "  +2 +/
Сообщение от n00by (ok), 07-Мрт-24, 17:30 
Мне не нужно вот такое отображение в стандарте - оно полурабочее и скатывает Linux до некоего среднего арифметического (в #40 указал, почему).
Ответить | Правка | Наверх | Cообщить модератору

71. "Доступен набор компиляторов LLVM 18 "  +1 +/
Сообщение от An (??), 07-Мрт-24, 20:48 
Как устарел?
В BSD/Linux в ядрах и базе он основной, и подавляющее большинство PR в сорцы этих систем до сих пор на нем летит.
Много хорошего прикладного софта на нем до сих пор пишется.
Разве так устаревают?
Ответить | Правка | К родителю #42 | Наверх | Cообщить модератору

95. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (95), 08-Мрт-24, 18:38 
Так адекватность теряют.
Ответить | Правка | Наверх | Cообщить модератору

102. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (44), 09-Мрт-24, 07:31 
Линуксу сколько лет, напомнить? Да и можно подумать, у Торвальдса с его 386 особый выбор был.
Ответить | Правка | К родителю #71 | Наверх | Cообщить модератору

48. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (48), 07-Мрт-24, 17:19 
>Кому оно должно

Поддерживать порочные практики с вкомпиленными в бинарник ресурсами — не должно. Храните файлы на диске и отображайте в память.

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

51. "Доступен набор компиляторов LLVM 18 "  +1 +/
Сообщение от n00by (ok), 07-Мрт-24, 17:29 
Порочная практика - это писать "должно", не понимая смысл слова. Покажите договор или стандарт.
Ответить | Правка | Наверх | Cообщить модератору

60. "Доступен набор компиляторов LLVM 18 "  –1 +/
Сообщение от Аноним (60), 07-Мрт-24, 19:02 
1. https://refspecs.linuxfoundation.org/fhs.shtml
2. https://specifications.freedesktop.org/
Ответить | Правка | Наверх | Cообщить модератору

103. "Доступен набор компиляторов LLVM 18 "  +1 +/
Сообщение от n00by (ok), 09-Мрт-24, 08:24 
> 1. https://refspecs.linuxfoundation.org/fhs.shtml

Это вообще каким боком?

> 2. https://specifications.freedesktop.org/

И с какой стати вот это должно распространяться на всё? В исходном сообщении процитирован стандарт языка.

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

137. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (137), 12-Мрт-24, 13:32 
1. Таким. И иконки хранятся строко в виде файлов по определённым путям.
2. А с какой стати твои хотелки, чтобы с компов можно было тырить #embed "~/.ssh/id_rsa" и #embed "/proc/cpuinfo", должны воплощаться в реальность? С той, что они совпадают с хотелками спецслужб, представители которых оказывают влияние на комитеты?
Ответить | Правка | Наверх | Cообщить модератору

141. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от n00by (ok), 12-Мрт-24, 20:19 
1. Не надо зацикиваться на иконках.
2. Не надо параноить, когда по существу ответить нечего.
Ответить | Правка | Наверх | Cообщить модератору

62. "Доступен набор компиляторов LLVM 18 "  +2 +/
Сообщение от Аноним (62), 07-Мрт-24, 19:15 
Опять в интернете вижу новости из параллельных вселенных. У вас там микроконтроллеры не существуют? Или они все идут с дисками и поддержкой проекции в память, или для них не изобрели дисплейчики куда можно текст и картинки выводить?
Ответить | Правка | К родителю #48 | Наверх | Cообщить модератору

64. "Доступен набор компиляторов LLVM 18 "  –2 +/
Сообщение от Аноним (64), 07-Мрт-24, 19:26 
А какие проблемы с контроллерами, кроме мизерной памяти? Интерфейс от этого не зависит, а фс можно использовать специализированную. в виде идельной хэш-таблицы с хэшированием в compile-time, храня все "файлы" в ПЗУ. А если не можешь использовать интерфейс отображения страниц памяти - просто не подключай этот хедер в свою программу.
Ответить | Правка | Наверх | Cообщить модератору

104. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от n00by (ok), 09-Мрт-24, 08:30 
> А какие проблемы с контроллерами, кроме мизерной памяти?

Вместо #embed приходится самостоятельно конвертировать в пригодный для #include вид, но не каждый умеет написать для того скрипт на Perl, потому принимается выдумывать на тему файлов.

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

108. "Доступен набор компиляторов LLVM 18 "  +1 +/
Сообщение от Аноним (-), 09-Мрт-24, 09:45 
> А какие проблемы с контроллерами, кроме мизерной памяти? Интерфейс от этого не
> зависит, а фс можно использовать специализированную. в виде идельной хэш-таблицы с
> хэшированием в compile-time, храня все "файлы" в ПЗУ.

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

И вот это все - вместо 1 строчки в сорце?! Серьезно?

> А если не можешь использовать интерфейс отображения страниц памяти - просто не подключай этот
> хедер в свою программу.

Прекрасно - и тогда бинарный ресурс в фирмвару мы инклюдим, например, как?! И еще, у МК как правило нет MMU и страниц.

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

117. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (117), 09-Мрт-24, 16:38 
>Вот сейчас притащим специально для этого код парсинга всего этого счастья

Ну тебе же не западло целый ico-файл со всеми хедерами втащить?

>Прекрасно - и тогда бинарный ресурс в фирмвару мы инклюдим, например, как?!

Если у вас хилый контроллер, и вам надо бинарные ресурсы в прошивку вкомпиливать, то вы делаете всё неправильно. Либо крестик снимите, либо трусы наденьте. Ресурсы в виде готовых бинарных файлов нужны ровно в одном случае — у вас там веб-сервер сидит и их отдаёт. Что исключает хилый контроллер и уже требует файлосистему. Которая может быть очень простой и виртуальньй:

1. компилятор ресурсов берёт ресурсы по именам, и генерит perfect hash function. Причём constexpr.
2. он же генерит файл с ресурсами, просто таблица. 0 — 1 файл, 1 - другой файл, 2 - третий файл, 3 - четвёртый файл.
3. в коде ресурсы идут по путям, но компилятор их прямо при компиляции хэширует и прямо при компиляции выполняет lookup в таблице. C++23.
4. а если надо в динамике - то код для функции компилятор засунет.

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

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

121. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от An (??), 10-Мрт-24, 12:49 
Сделать извращенными через одно место, чтобы удовлетворить запрос одного анонима. В стандарте все решается одной строчкой, но аноним считает, что лучше каждый раз извращаться через таблицы, чтобы прилинковать бинарный файл, который задается на этапе компиляции.
Ответить | Правка | Наверх | Cообщить модератору

136. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (137), 12-Мрт-24, 13:21 
Возможность делать такие вещи одной строчкой обернётся тем, что через неё начнут тырить с компов секретные данные.
Ответить | Правка | Наверх | Cообщить модератору

129. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (-), 11-Мрт-24, 13:52 
> Ну тебе же не западло целый ico-файл со всеми хедерами втащить?

Классические ico файлы и их хидеры - весьма мелкие, и довольно просты в парсинге. Особенно если договориться о каких-то constraints. Ибо дедалось в эпоху царя гороха еще, когда компы были крупнее и дохлее. Самое что надо для МК с ограниченными ресурсами, стало быть.

>>Прекрасно - и тогда бинарный ресурс в фирмвару мы инклюдим, например, как?!
> Если у вас хилый контроллер, и вам надо бинарные ресурсы в прошивку
> вкомпиливать, то вы делаете всё неправильно.

ORLY? То-есть например фонт чтобы немного порисовать на небольшом LCD или OLED мне не надо? И да, он может быть диагональю менее дюйма, даже чернобелый, на i2c или spi, так что это своротит даже самый паршивый МК. Но текст же на массив пикселей надо как-то отрендерить, мистер эксперт?!

> Либо крестик снимите, либо трусы наденьте.

Мне такой выбор не нравится - поэтому я в моих проектах буду вон то юзать, уж сорян. А если у вас они не соберутся? Упс, читаете requirements и обеспечиваете это. Или ищете другой проект.

> Ресурсы в виде готовых бинарных файлов нужны ровно в одном
> случае — у вас там веб-сервер сидит и их отдаёт.

Булшит бинго. Скажем если к МК прицеплен небольшой LCD или OLED - сразу начинает хотеться как минимум фонт почему-то. А иногда и ряд иных вещей. А вот зачем мне ФС и код ее парсинга чтобы пару строчек на OLED микроскопический порисовать?!

> Что исключает хилый контроллер и уже требует файлосистему.

В каком месте желание вывести пару строк статуса на мизерный OLED размером сантиметр на два "требует файловую систему"?! Вы там того?

> Которая может быть очень простой и виртуальньй:

А нафиг мне ФС в вон том кейсе? И прочие "файловые операции". Оно в сумме весить будет - как пять фонтов для вон того.

> 1. компилятор ресурсов берёт ресурсы по именам,

Вау, то-есть мне еще и это надо кодить и/или наруливать в билде фирмвари? Вместо 1 строки инклюда?

> и генерит perfect hash function. Причём constexpr.

Ага, вместо 1 строки кода то...

> 2. он же генерит файл с ресурсами, просто таблица.

А зачем мне вообще абстракция файлов в той штуке вперлась? Там фонт вообще - один на всю систему, hardwired, и ЭТО своротит - блин, даже PIC и прочий AVR. Или там какой cortex M0 самый копеечный, да даже вон тот RISCV за 0.2 бакса. Но вот куда там ФС то?...

> 3. в коде ресурсы идут по путям, но компилятор их прямо при
> компиляции хэширует и прямо при компиляции выполняет lookup в таблице. C++23.

Себе его оставьте, имхо. У C++ все намного сложнее с сетапом арены и ее предсказуемостью, и я таки предпочитаю си в простых фирмварах с повышенными требованиями к надежности и предсказуемости. Это никак не исключает желание отрисовать до кучи допустим статус на мелкий экранчик типа oled или lcd на какомнить i2c или spi. И вот там инклюдануть что-то типа фонта вот так - очудобно!

> 4. а если надо в динамике - то код для функции компилятор засунет.

F...k overengineering!

> её инклюдить, причём как consexpr, а не как байты копировать.

Мне инклюд объекта как "const" вполне нормуль. Хотя такие вещи по хорошему лучше runtime калиброваками все же делать. На случай уплывания параметров или замены термопары.

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

Предпочитаю иметь явный контроль над данным аспектом для информированного принятия решения как оно мне надо, а не то что там компилятор себе удумает по рандому. В фирмвари я предпочитаю плотный контроль layout результата и что у меня где. Например чтобы при случае допустим runtime калибровки уметь. Даже возможно отдельным модулем - сохраняющим их в well defined area. Это кстати не я придумал, но идею ессно упер :)

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

135. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (135), 12-Мрт-24, 13:04 
>Классические ico файлы и их хидеры - весьма мелкие, и довольно просты в парсинге.

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

>То-есть например фонт чтобы немного порисовать на небольшом LCD или OLED мне не надо

Надо, но не в виде BMP/PNG/JPG файлов со всеми XMP и EXIFами.

>А вот зачем мне ФС и код ее парсинга чтобы пару строчек на OLED микроскопический порисовать?!

Где код парсинга ФС в 1) вычислении perfect-хэша от строки 2) использования полученного числа в качестве индекса в таблице указателей 3) дальнейшего разыменовывания указателя (если у тебя сиволы одинакового размера, то размер для каждого хранить не нужно)?

>F...k overengineering!

Оверинжиниринг — это хардкодить в бинарь картинки целиком.

>Хотя такие вещи по хорошему лучше runtime калиброваками все же делать. На случай уплывания параметров или замены термопары.

Полностью согласен, что в устройстве должен быть режим калибровки и смены коэффициентов.

>Предпочитаю иметь явный контроль над данным аспектом для информированного принятия решения как оно мне надо, а не то что там компилятор себе удумает по рандому

А вот я проанализировав выхлоп clang на O3 понял, что намного лучше это доверить компилятору, ибо мой ручной ассемблерный код был в несколько раз медленнее. Потому что Clang использует для оптимизации SMT-решатель.

>В фирмвари я предпочитаю плотный контроль layout результата и что у меня где. Например чтобы при случае допустим runtime калибровки уметь. Даже возможно отдельным модулем - сохраняющим их в well defined area. Это кстати не я придумал, но идею ессно упер :)

Если ты хардкодишь таблицу в прошивку на уровне исходника, то смена коэффициентов hex-редактированием нерелевантна. Если ты выделяешь регион под свою структуру данных — то надо сделать и программу-редактор и прошивальщик, а хардкодить в прошивку на уровне исходников — не надо.

>Ага, вместо 1 строки кода то...

Эта строка кода может утащить у тебя с машины любой файл с секретной информацией на предскадуемом размещении. Просто собирать программу на своей машине станет опасно. Давай ещё введём команду препроцессора #command "!/usr/bin/env rm -rf~/" тогда уж, чтобы до уровня Раста провалиться.

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

40. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от n00by (ok), 07-Мрт-24, 16:50 
https://github.com/vimpunk/mio

А это правильно, что не добавили.

Вот это зачем?


inline size_t page_size()
{
    static const size_t page_size = []
    {
#ifdef _WIN32
        SYSTEM_INFO SystemInfo;
        GetSystemInfo(&SystemInfo);
        return SystemInfo.dwAllocationGranularity;
#else
        return sysconf(_SC_PAGE_SIZE);
#endif
    }();
    return page_size;
}

И где там mremap, в котором вся прелесть?
Если хотите мапить файлы стандартным образом - ну дык допилите работу с файлами в стандартной библиотеке, там же возможна буферизация, а детали реализации не оговариваются.
Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

45. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (45), 07-Мрт-24, 17:13 
Смысл не в том, чтобы втащить mio в стандартную библиотеку целиком как есть — разумеется все проблемы существующей реализации должны быть устранены (мне вообще крайне не нравится, что возвращаемые типы не наследуются у std::span<нужный тип>, и поэтому мне приходится это делать самому, и уже работать с std::span). И ремаппинг безусловно должен быть, как и отображение-выделение страниц без файлов, отображение анонимных страниц, и страниц, общих для нескольких процессов — мне из-за этого пришлось свой велосипед написать. Смысл в том, что отображение файлов в память нужно всем, но почему-то его нет в стандартной библиотеке, и приходится возится с васянозависимостями.
Ответить | Правка | Наверх | Cообщить модератору

47. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (45), 07-Мрт-24, 17:14 
*возиться
Ответить | Правка | Наверх | Cообщить модератору

53. "Доступен набор компиляторов LLVM 18 "  +1 +/
Сообщение от n00by (ok), 07-Мрт-24, 17:36 
А проблемы не будут устранены, потому что механизмы ОС различаются. Вон в Cygwin сделали ремаппинг стандартным образом - через memcpy, можете использовать. ;)
Ответить | Правка | К родителю #45 | Наверх | Cообщить модератору

61. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (60), 07-Мрт-24, 19:06 
Не так уж сильно и различаются:
* выделение пустых страниц
* задание им флагов доступа
* их освобождение
* отображение файла в память

есть везде! А для отличающихся нюансов — ну так никто и не запрещал юзать системное API на std::begin(allocatedPageSpan).

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

105. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от n00by (ok), 09-Мрт-24, 08:33 
Я понимаю, что тут каждый Аноним умнее создателей Cygwin, даже если никогда не работал с секциями в NT и потому пропустил в плане "зарезервировать страницы". Но это в теории. На практике внутри mramap() почему-то до сих пор memcpy().
Ответить | Правка | Наверх | Cообщить модератору

74. "Доступен набор компиляторов LLVM 18 "  +1 +/
Сообщение от _kp (ok), 07-Мрт-24, 22:22 
Тут пример просто в котором полезность фичи не раскрывается, а только показан способ как можно.
Как минимум в embedded это весьма полезно.
Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

91. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (-), 08-Мрт-24, 16:58 
> Оно и не нужно. Это должно быть отдельным файлом.

А таки в gcc уже завезли, и это удобно.

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

70. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Sw00p aka Jerom (?), 07-Мрт-24, 20:15 
а эндиан на кого свалили? потом захотят параметры старт и оффсет.
Ответить | Правка | К родителю #28 | Наверх | Cообщить модератору

106. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от n00by (ok), 09-Мрт-24, 08:41 
> а эндиан на кого свалили?

На неумеющих читать исходник.

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

111. "Доступен набор компиляторов LLVM 18 "  –1 +/
Сообщение от Аноним (-), 09-Мрт-24, 10:11 
>Самое нужное нововведение C23 так и не добавили.

Кому нужно? Лично тебе или Сообществу? Со своими хотелками идёшь лесом.

Си плюс-плюсник n00by знай своё место.

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

114. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (44), 09-Мрт-24, 12:19 
А ты тут от имени «Сообщества»?
Ответить | Правка | Наверх | Cообщить модератору

115. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от n00by (ok), 09-Мрт-24, 14:26 
Комитету по стандартизации нужно. Ты не понял, что выше процитирован рабочий черновик стандарта?
Ответить | Правка | К родителю #111 | Наверх | Cообщить модератору

118. Скрыто модератором  +/
Сообщение от Аноним (-), 09-Мрт-24, 17:12 
Ответить | Правка | Наверх | Cообщить модератору

125. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Бывалый Смузихлёб (ok), 10-Мрт-24, 13:22 
в жс давно есть( в отдельных течениях ), а тут ещё не работает. Доколе ?
Ответить | Правка | К родителю #28 | Наверх | Cообщить модератору

30. "Доступен набор компиляторов LLVM 18 "  +1 +/
Сообщение от Вы забыли заполнить поле Name (?), 07-Мрт-24, 16:27 
Раньше хрому тоже радовались и как вам теперь живётся? Тут также будет, только конкуренция остановит проприетарное рабство
Ответить | Правка | Наверх | Cообщить модератору

35. "Доступен набор компиляторов LLVM 18 "  +7 +/
Сообщение от Аноним (-), 07-Мрт-24, 16:35 
Конкуренции не было как раз без ллвм.
GCC был убог и тормознут по сравнению с проприетарными компиляторами. Была только стагнация и загнивание.
И тут появился он - clang/llvm! И gccшникам пришлось шевелиться.

А исчезнет ллвм, и что дальше? Опять стагнация?

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

98. "Доступен набор компиляторов LLVM 18 "  –2 +/
Сообщение от Вы забыли заполнить поле Name (?), 08-Мрт-24, 21:39 
> Конкуренции не было как раз без ллвм.
> GCC был убог и тормознут по сравнению с проприетарными компиляторами. Была только
> стагнация и загнивание.
> И тут появился он - clang/llvm! И gccшникам пришлось шевелиться.
> А исчезнет ллвм, и что дальше? Опять стагнация?

Ну вот такая же история была с хромом. И что теперь?

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

133. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (-), 11-Мрт-24, 17:42 
> Ну вот такая же история была с хромом. И что теперь?

Ну вначале придется тащить два компилятора, чтобы нормально собирать то, что гцц не поддерживает.
Потом задумаются, а зачем нам два, если один тоже ок собирает.
Вот и загнется ваш гыцыцы. Сильно жалеть не будем.

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

134. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Вы забыли заполнить поле Name (?), 12-Мрт-24, 04:33 
>> Ну вот такая же история была с хромом. И что теперь?
> Ну вначале придется тащить два компилятора, чтобы нормально собирать то, что гцц
> не поддерживает.
> Потом задумаются, а зачем нам два, если один тоже ок собирает.
> Вот и загнется ваш гыцыцы. Сильно жалеть не будем.

Ты сообщение выше читал? Похоже, что нет. Когда хром только появлялся все говорили "вот, а зачем другие браузеры, есть же хром, он такой быстрый и т.п.". Что сейчас? Что хотят, то и тащат в свой бразуер, а тебе остается кушать.

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

36. "Доступен набор компиляторов LLVM 18 "  +2 +/
Сообщение от Аноним (36), 07-Мрт-24, 16:39 
Извини, LLVM — это как раз аналог Firefox. В Хроме и GCC всё гвоздями прибито, а в LLVM и Firefox — многое настраивается без перекомпиляции.
Ответить | Правка | К родителю #30 | Наверх | Cообщить модератору

68. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (68), 07-Мрт-24, 19:47 
Кто радовался хрому? ФФ тогда ещё был в адеквате, а хром пихал уже совсем не "do no evil" Гугл.
Ответить | Правка | К родителю #30 | Наверх | Cообщить модератору

32. "Доступен набор компиляторов LLVM 18 "  –5 +/
Сообщение от mumu (ok), 07-Мрт-24, 16:27 
> auto y = cos(x);

Воу. То есть в каких-то случаях это будет Int, а в каких-то double и заранее вообще не угадать? А может не надо, а?

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

41. "Доступен набор компиляторов LLVM 18 "  +1 +/
Сообщение от n00by (ok), 07-Мрт-24, 17:00 
Это уже стандарт (его пока не приняли, но из рабочего черновика вряд ли выкинут). Если не надо, то собирайте с -std=c18 и в коде проверяйте __STDC_VERSION__
Ответить | Правка | Наверх | Cообщить модератору

43. "Доступен набор компиляторов LLVM 18 "  +1 +/
Сообщение от Ivan_83 (ok), 07-Мрт-24, 17:10 
Перетоксикоз синтаксическим сахаром :)
Ответить | Правка | К родителю #32 | Наверх | Cообщить модератору

54. "Доступен набор компиляторов LLVM 18 "  +2 +/
Сообщение от n00by (ok), 07-Мрт-24, 17:42 
Зато signed обязали быть в дополнительном коде. Убрали главное UB, которым пугали детей фанаты безопасного языка.
Ответить | Правка | Наверх | Cообщить модератору

109. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (-), 09-Мрт-24, 09:52 
> Зато signed обязали быть в дополнительном коде. Убрали главное UB, которым пугали
> детей фанаты безопасного языка.

А все равно не весь UB убрали, блин. Комитет бакланов!

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

143. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от adolfus (ok), 15-Мрт-24, 18:28 
Чтобы убрать UB нужно овердохрена проверок разных на основе семантики делать, и генерировать definite B. А тут у каждого в комитете свое мнение, что должно генерироваться. Поэтому решено, что программисту проще выучить все случаи UB, отмеченные в стандарте, ну или вывести их на листики и развесить перед собой. Через годик-другой все и выучит. Вы же, когда идете по незнакомой заваленной мусором территории, сначала всегда под ноги смотрите, а после сотого прохода запросто идете и при этом зависаете в смартфоне.
Тем  более, что с++ компилятор стал уже настолько тормозной, что сил нет. Из за этого приходится все модули, что можно кодить на си, кодить на си.
Ответить | Правка | Наверх | Cообщить модератору

146. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от n00by (ok), 15-Мрт-24, 22:31 
Что бы убрать UB (что означает "неопределённое поведение"), достаточно написать в стандарте "должно быть вот так". signed обязали хранить в дополнительном коде, а раньше допускались другие варианты, потому и не было гарантий.
Ответить | Правка | Наверх | Cообщить модератору

58. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (58), 07-Мрт-24, 18:11 
> заранее вообще не угадать?

cos(x) по идее возвращает значение конкретного типа. Даже в C++ с его перегрузками тип возвращаемого значения всегда один

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

119. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (119), 09-Мрт-24, 23:03 
Это уже есть с с11, раньше только не было auto
Ответить | Правка | К родителю #32 | Наверх | Cообщить модератору

126. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Бывалый Смузихлёб (ok), 10-Мрт-24, 13:27 
это пока не впилили в шарпы и прочее - "типизация и бла-бла-бла, спасает от горы ошибок, илита-классы-наследование, то ли дело ваш жс"
А как впилили тип_хз_какой_тип_слющьий_там_видно_будет - так иные ярые адепты ажно соплями и слюнями изошлись в положительном смысле, мол сколько ранее неизведанных возможностей открывается
Причём, вроде бы, подобное было и в джаве/котлине. И это было ещё несколько лет назад.
Ответить | Правка | К родителю #32 | Наверх | Cообщить модератору

138. "Доступен набор компиляторов LLVM 18 "  –1 +/
Сообщение от поворот (?), 12-Мрт-24, 13:43 
хороший ник
утиность -- это не про вывод, ты о чем вообще?
Ответить | Правка | Наверх | Cообщить модератору

38. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (38), 07-Мрт-24, 16:41 
Концепты так и не завезли.
Ответить | Правка | Наверх | Cообщить модератору

39. "Доступен набор компиляторов LLVM 18 "  +1 +/
Сообщение от Аноним (-), 07-Мрт-24, 16:45 
Не волнуйся, думаю завезут.
Может это на новый год)
Ответить | Правка | Наверх | Cообщить модератору

50. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (50), 07-Мрт-24, 17:28 
Объясните мне пожалуйста, там какая-то библиотека реализует Джит? Или мне нужна виртуальная машина для программ, собранных шлангом?
Ответить | Правка | Наверх | Cообщить модератору

57. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (55), 07-Мрт-24, 18:01 
Какой ещё джит?! Ты вывалился из машины времени со своей Жабой?
Ответить | Правка | Наверх | Cообщить модератору

63. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (60), 07-Мрт-24, 19:19 
https://github.com/asmjit/asmjit - arm, x86, но толстоватая
https://github.com/herumi/xbyak - x86
https://github.com/fujitsu/xbyak_aarch64 - arm64
https://github.com/gamozolabs/rv32i_jit - risc-v
можно заюзать LLVM, но он вообще монструозный, и его придётся к себе в систему затащить (но он и так затащен на десктопы, но вот в докеры, пайплайны и на Androidы его тащить ....)
Ответить | Правка | К родителю #50 | Наверх | Cообщить модератору

65. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Bottle (?), 07-Мрт-24, 19:35 
А модули для C++ всё ещё не реализованы, а они могли бы ускорить компиляцию проектов (в том числе самого LLVM) значительно.
Ответить | Правка | Наверх | Cообщить модератору

72. "Доступен набор компиляторов LLVM 18 "  +1 +/
Сообщение от clang 19 (?), 07-Мрт-24, 20:51 
Здравствуйте! А у нас они есть!
Ответить | Правка | Наверх | Cообщить модератору

76. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от an2 (?), 07-Мрт-24, 23:17 
Есть и из-коробки работают - это разные вещи. Нужно, чтобы установил пакет, и там уже лежат бинарные модули.
Ответить | Правка | Наверх | Cообщить модератору

107. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от n00by (ok), 09-Мрт-24, 08:52 
Зачем это нужно? И для какой такой деятельности не хватает инкрементальной линковки?
Ответить | Правка | Наверх | Cообщить модератору

110. "Доступен набор компиляторов LLVM 18 "  +1 +/
Сообщение от Аноним (-), 09-Мрт-24, 10:08 
Модули нужны Паскалисту перешедшему на Си плюс-плюс. Ну, человек переходит на Си плюс-плюс, а мышление Паскалевское остаётся.
Ответить | Правка | Наверх | Cообщить модератору

113. "Доступен набор компиляторов LLVM 18 "  +4 +/
Сообщение от Аноним (44), 09-Мрт-24, 12:18 
Ну привык человек к хорошему, что поделать.
Ответить | Правка | Наверх | Cообщить модератору

116. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от n00by (ok), 09-Мрт-24, 14:54 
Так а что в них хорошего? Я пока вижу "ускорить компиляцию проектов" -- наверное, хорошо для тех, кто только и делает, что компилирует и не знает, чем компиляция отличается от линковки (например, сборщики пакетов). Хорошо для тех, кто пишет код методом тыка с перманентной перекомпиляцией.
Ответить | Правка | Наверх | Cообщить модератору

144. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от adolfus (ok), 15-Мрт-24, 18:47 
Модули нужны, чтобы не тащить ненужные символы из заголовков в таблицы компилятора, а то и в объектные файлы. Это реально ускоряет работу и компилятора и компоновщика и, собственно, программы. Не зря же заголовки набиты #ifdef'ами -- все, не относящееся к делу, существенно замедляет работу компилятора, поскольку все символы нужно заносить в словарь символов.
Ответить | Правка | К родителю #110 | Наверх | Cообщить модератору

145. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от n00by (ok), 15-Мрт-24, 22:27 
> Модули нужны, чтобы не тащить ненужные символы из заголовков в таблицы компилятора,
> а то и в объектные файлы. Это реально ускоряет работу и
> компилятора и компоновщика и, собственно, программы.

Программ? Каким образом? И чем это лучше исключения ненужного кода/данных при LTO?

> Не зря же заголовки набиты
> #ifdef'ами -- все, не относящееся к делу, существенно замедляет работу компилятора,
> поскольку все символы нужно заносить в словарь символов.

В заголовках директивы препроцессора обычно используют для выбора варианта кода под какую-то из нескольких архитектур/платформ, таким образом после препроцессора получается в объёме примерно одинаково. Компилятор вообще не видит токены препроцессора. Да и перевод исходника в абстрактное дерево существенно быстрее, чем оптимизация. Достаточно сравнить время трансляции с -O0 и -O2.

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

78. "Доступен набор компиляторов LLVM 18 "  –3 +/
Сообщение от Аноним (78), 08-Мрт-24, 05:32 
Судя по чейнджлогу, нынче Си тупо тырят у Раста. Ну и зачем? Может проще на Расте?
Печь там, вы знаете что делать.
Ответить | Правка | Наверх | Cообщить модератору

79. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от m228chtig (?), 08-Мрт-24, 07:00 
Мне не нравится, что Раст использует LLVM.
Ответить | Правка | Наверх | Cообщить модератору

81. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (-), 08-Мрт-24, 07:45 
Мне тоже в этом Мире что-то не нравится. Но вот реальность такова, что разработчики Раста, пермиссивщики на обеспечении проприетарщиков, они убеждённые противники копилефта, они против Столлмана. На улице они об этом не кричат, на заборе они об этом не пишут, но мы то знаем.

Как бэкэнды, LLVM- пермиссивка, GCC - копилефт.

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

86. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (86), 08-Мрт-24, 14:40 
Можешь не использовать, никаких проблем. Цитирую разрабов: "Since the Rust compiler is written in Rust, it must be built by a precompiled "snapshot" version of itself (made in an earlier stage of development). As such, source builds require an Internet connection to fetch snapshots, and an OS that can execute the available snapshot binaries."
Ответить | Правка | К родителю #79 | Наверх | Cообщить модератору

87. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (87), 08-Мрт-24, 15:28 
Бутстраппинг, требующий интернет-соединения - новое слово в разработке языков программирования! Впрочем, ничего другого от растоманов ожидать не приходится.
Ответить | Правка | Наверх | Cообщить модератору

96. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (96), 08-Мрт-24, 19:01 
Ты умеешь качать сорцы без инета, телепатически или иным путём? Там же ясно и понятно написано: "source builds require an Internet connection to fetch snapshots".
Ответить | Правка | Наверх | Cообщить модератору

101. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (96), 09-Мрт-24, 00:26 
Берём методичку по gcc, читаем:
git clone git://gcc.gnu.org/git/gcc.git
cd gcc
git checkout releases/gcc-какая там версия нужна. Как ты думаешь, мне понадобится инет-подключение для этих процедур или без него можно прекрасно обойтись, файло само на винте появится?
Ответить | Правка | К родителю #87 | Наверх | Cообщить модератору

92. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (-), 08-Мрт-24, 17:00 
> Мне не нравится, что Раст использует LLVM.

Не совсем так. Например, gccrs - не использует.

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

80. "Доступен набор компиляторов LLVM 18 "  +8 +/
Сообщение от Аноним (-), 08-Мрт-24, 07:41 
>Судя по чейнджлогу, нынче Си тупо тырят у Раста.

Ложь перед вбросом.

>Ну и зачем? Может проще на Расте?

Сам вброс.

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

88. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (87), 08-Мрт-24, 15:34 
>Си тупо тырят у Раста

А это неизбежно. Однажды стырят чекер борова, прикрутят к Си, во крику будет.

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

93. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (-), 08-Мрт-24, 17:01 
>>Си тупо тырят у Раста
> А это неизбежно. Однажды стырят чекер борова, прикрутят к Си, во крику будет.

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

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

142. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (142), 15-Мрт-24, 09:40 
Будет Си 2.0 с обратной совместимостью. И ничего там не нужно убирать, просто будет свой unsafe.
Ответить | Правка | Наверх | Cообщить модератору

83. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (83), 08-Мрт-24, 10:22 
Что-то у меня на линковке проекта память вся вытекла.

Там минимум 12 Гб на процесс нужно.

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

84. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (84), 08-Мрт-24, 10:59 
17 версия пока тоже очень даже нечего...Устарела конечно уже,но это не так страшно.)
Ответить | Правка | Наверх | Cообщить модератору

89. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от anonymous (??), 08-Мрт-24, 15:58 
Ну, я свопа добавил, он ночку потормозил, и слинковался.
Ответить | Правка | Наверх | Cообщить модератору

97. "Доступен набор компиляторов LLVM 18 "  +1 +/
Сообщение от Анонимщик (?), 08-Мрт-24, 20:28 
Уже в смартфоны 16ГБ ставят, может быть пора небольшой апгрейд сделать?
Ответить | Правка | К родителю #83 | Наверх | Cообщить модератору

100. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (100), 09-Мрт-24, 00:16 
вранье
я больше 400 мегабайт на реальных проектах не видел

даже на статик массивах разного рода с объемом такого табличного исходника размером больше гигабайта
потребления clang больше 600 мегабайт не поднимается

а вот в msvc cl с потреблением памяти при компиляции действительно проблемы

там где clang потребляет 400 мегабайт
cl берет в 800-1200 мег

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

122. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от An (??), 10-Мрт-24, 12:55 
Вранье. Шланг жрет память больше msvc
Ответить | Правка | Наверх | Cообщить модератору

90. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (90), 08-Мрт-24, 16:26 
>Deducing this

КРАЙНЕ неудачное предложение. Позволяет обфусцировать исходный код, путём переименовывания this во что угодно программеру, при этом не даёт ничего принципиально нового.

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

120. "Доступен набор компиляторов LLVM 18 "  +/
Сообщение от Аноним (120), 10-Мрт-24, 12:29 
Судя по

https://github.com/orgs/lxqt/projects/4

Кто-то бы сказал, что не готов. Но когда ты любишь вяленый, ты не замечаешь этих мелочей.

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

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

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




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

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