The OpenNET Project / Index page

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



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

"Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от opennews (??), 07-Апр-22, 21:12 
Опубликован релиз языка программирования общего назначения Rust 1.60, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки)...

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

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

Оглавление

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


3. "Выпуск языка программирования Rust 1.60"  +5 +/
Сообщение от Аноним (3), 07-Апр-22, 21:16 
Все таки использование ini-подобных структур файлов (что toml в конфигах карго, что конфигов systemd) всегда фиговая идея. Они нормально работают только для двухуровневых структур данных. Чтобы прикрутить большие уровни, начинаются пляски с костылями. И понаплодили 100500 немного различающихся синтаксисов, несовместимых между собой.

Любой другой формат (ямл, джейсон, да даже многословный xml) лучше по большинству параметров.

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

35. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Shatur (ok), 07-Апр-22, 23:30 
Так TOML тоже многоуровневый как и YAML.
Ответить | Правка | Наверх | Cообщить модератору

72. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от qetuo (?), 08-Апр-22, 03:21 
А ты писал TOML на 3+ уровня, чтобы еще и с массивами? Я писал, и никому не желаю.
Ответить | Правка | Наверх | Cообщить модератору

97. "Выпуск языка программирования Rust 1.60"  +5 +/
Сообщение от Shatur (ok), 08-Апр-22, 09:08 
Так а что тут такого?

[first.second.third]
value = []

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

190. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (190), 08-Апр-22, 21:05 
Я иногда делаю связки по имени что бы развернуть в одноуровневый структуры для совместимости с INI, но сейчас TOML уже повсеместно стандартом стал, так что это все уже LEGACY какой-то.

```
[service]
nodes = ['node-a', 'node-b', 'node-c']

[node-a]
host=127.0.0.1
port=10000

[node-b]
host=127.0.0.1
port=10001

[node-c]
host=127.0.0.1
port=10001
```

А в YAML так выше двух уровней не возникает.
Да, правда нужно знание по файлу и его настройкам, но тут возможна помощь в виде комментариев.

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

83. "Выпуск языка программирования Rust 1.60"  +11 +/
Сообщение от Аноним (83), 08-Апр-22, 07:17 
Да ладно, ямл - худший формат для чтения и для написания человеком.  Томл на его фоне - подарок от бога.

Джейсон - вообще не для людей.

Лучший же формат из тех что я видел - хокон.

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

191. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (190), 08-Апр-22, 21:07 
Чего еще за "хокон"?
Ответить | Правка | Наверх | Cообщить модератору

199. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от morphe (?), 08-Апр-22, 23:16 
hocon тоже немного не для людей, имхо если для задачи подходит hocon - то подойдёт и jsonnet

Синтаксис там похожий, но ближе к json, + есть куча полезных вещей вроде функций и миксинов (mixin в jsonnet - не просто сложение объектов)

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

217. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от sigprof (ok), 09-Апр-22, 17:01 
> Джейсон - вообще не для людей.

Правильно — для людей есть HJSON: https://hjson.github.io/syntax.html

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

84. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Fracta1L (ok), 08-Апр-22, 07:24 
> Чтобы прикрутить большие уровни, начинаются пляски с костылями

Кривоголовым не дают переусложнять сущности на ровном месте, удар в спину.

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

192. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (190), 08-Апр-22, 21:07 
А на Lua можно и математику в конфигах B-)
Ответить | Правка | Наверх | Cообщить модератору

283. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 11-Апр-22, 12:08 
key=value - лучший формат.
Другой лучший формат - s-выражения.
Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

18. "Выпуск языка программирования Rust 1.60"  +8 +/
Сообщение от Аноним (18), 07-Апр-22, 22:48 
> под покровительством независимой некоммерческой организации Rust Foundation

Amazon, Google, Microsoft... Хоть бы честно писали, кто там в эту фаюндэшын входит.

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

21. "Выпуск языка программирования Rust 1.60"  –4 +/
Сообщение от Аноним (-), 07-Апр-22, 22:54 
>> под покровительством независимой некоммерческой организации Rust Foundation
> Amazon, Google, Microsoft... Хоть бы честно писали, кто там в эту фаюндэшын входит.

Надеюсь, ты написал этот коммент из под Hurd/HaikuOS/OpenBSD?

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

75. "Выпуск языка программирования Rust 1.60"  +11 +/
Сообщение от Аноним (75), 08-Апр-22, 05:13 
А что такое, зайка?

OS: OpenBSD 7.1 amd64
Host: SAMSUNG ELECTRONICS CO., LTD. DP700A3D/DM700A3D/DB701A3D/DP700A7D
Uptime: 1 hour, 44 mins
Packages: 420 (pkg_info)
Shell: ksh v5.2.14 99/07/13.2
Resolution: 1920x1080
DE: MATE 1.26.0
WM: Metacity (Marco)
Theme: Menta [GTK2/3]
Icons: menta [GTK2/3]
Terminal: mate-terminal
Terminal Font: Monospace 10
CPU: Intel i5-3470T (4) @ 1.600GHz
GPU: AMD TURKS (DRM 2.50.0 / 7.1, LLVM 13.0.0)
Memory: 1166MiB / 8127MiB

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

94. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Аноним (94), 08-Апр-22, 09:05 
> SAMSUNG

Это УберСмартТВ или планшет? Если планшет, то как работает тачскрин?

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

99. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Аноним (75), 08-Апр-22, 09:24 
>> SAMSUNG
> Это УберСмартТВ или планшет? Если планшет, то как работает тачскрин?

Моноблок.

Хороший вопрос, сейчас проверил. Тачскрин на любое нажатие тыкает в правый нижний угол :) В linux он работает из коробки без калибровки.

wsconsctl
...
mouse2.type=touch-panel
mouse2.rawmode=1
mouse2.scale=0,11388,0,6272,0,0,0
mouse2.reverse_scrolling=0
mouse3.type=touch-panel
mouse3.rawmode=1
mouse3.scale=0,11388,0,6272,0,0,0
mouse3.reverse_scrolling=0
...

dmesg
...
uhidev4 at uhub5 port 6 configuration 1 interface 0 "ILITEK ILITEK Multi-Touch" rev 1.10/0.02 addr 3
uhidev4: iclass 3/0, 6 report ids
uhid4 at uhidev4 reportid 2: input=0, output=0, feature=1
uhid5 at uhidev4 reportid 3: input=63, output=63, feature=0
ums2 at uhidev4 reportid 4: 1 button, tip
wsmouse2 at ums2 mux 0
ums3 at uhidev4 reportid 6: 0 buttons
wsmouse3 at ums3 mux 0
...

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

102. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (75), 08-Апр-22, 09:32 
>>> SAMSUNG
>> Это УберСмартТВ или планшет? Если планшет, то как работает тачскрин?
> Моноблок.
> Хороший вопрос, сейчас проверил. Тачскрин на любое нажатие тыкает в правый нижний
> угол :) В linux он работает из коробки без калибровки.

Ага, это с правами был затуп. Дал доступ всем /dev/wsmouse и /dev/wskbd, сейчас тачскрин нормально работает.

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

114. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (94), 08-Апр-22, 11:05 
> Дал доступ всем /dev/wsmouse и /dev/wskbd

чтоб легче было телеметрировать? :)

Продолжая троллинг: это потому что systemd нету, который даст любому нужные права, в том числе Xorg

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

116. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (75), 08-Апр-22, 11:07 
>> Дал доступ всем /dev/wsmouse и /dev/wskbd
> чтоб легче было телеметрировать? :)
> Продолжая троллинг: это потому что systemd нету, который даст любому нужные права,
> в том числе Xorg

Не знаю, но если набрать wsconsctl от юзера, то видит только первую мышь, а на три остальные не хватает прав. Видимо, чтобы 4 мыши поддерживались, нужно OpenBSD Enterprise покупать. Но я грязным хаком получил доступ ко всем 4-м мышам.

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

113. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 08-Апр-22, 11:02 
> А что такое, зайка?

То, что у пянгвинчико-фаундейшона - все то же самое, пративный.
> Shell: ksh v5.2.14 99/07/13.2

Не пались так больше.


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

115. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Аноним (75), 08-Апр-22, 11:05 
>> Shell: ksh v5.2.14 99/07/13.2
> Не пались так больше.

Ну, спалился здесь только ты. :)

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

121. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 08-Апр-22, 11:46 
> Хороший вопрос, сейчас проверил. Тачскрин на любое нажатие тыкает в правый нижний угол :) В linux он работает из коробки без калибровки.
> Ну, спалился здесь только ты. :)

Ну-да, ну-да.


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

122. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Аноним (75), 08-Апр-22, 11:48 
>> Хороший вопрос, сейчас проверил. Тачскрин на любое нажатие тыкает в правый нижний угол :) В linux он работает из коробки без калибровки.
>> Ну, спалился здесь только ты. :)
> Ну-да, ну-да.

парусски переведи

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

142. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 08-Апр-22, 13:25 
>>> Хороший вопрос, сейчас проверил. Тачскрин на любое нажатие тыкает в правый нижний угол :) В linux он работает из коробки без калибровки.
>>> Ну, спалился здесь только ты. :)
>> Ну-да, ну-да.
> парусски переведи

Не делай вид, что ты такой крутой опенбздшник, что не знал, работает ли тачскрин в твоем _моноблоке_. Все равно никто не поверит.


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

143. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (75), 08-Апр-22, 13:30 
> Не делай вид, что ты такой крутой опенбздшник, что не знал, работает
> ли тачскрин в твоем _моноблоке_. Все равно никто не поверит.

Первое. Как "ты написал этот комментарий из OpenBSD" доросло до "делай вид, что ты такой крутой OpenBSD-шник"?

Второе. А зачем мне знать, если я до него руками не дотягиваюсь? :) Только если пяткой комментарии дизлайкать, но там ещё попасть надо.

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

145. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 08-Апр-22, 13:39 
>> Не делай вид, что ты такой крутой опенбздшник, что не знал, работает
>> ли тачскрин в твоем _моноблоке_. Все равно никто не поверит.
> Первое. Как "ты написал этот комментарий из OpenBSD" доросло до "делай вид,
> что ты такой крутой OpenBSD-шник"?

Наверное так же, как ты стал тем самым комментатором, к которому обращались?
Если уж посчитал, что подразумевалсь под "написал из под ..." не использование в качестве основной ОСи, а лишь "смотрите-смотрите как я могу!".

> Второе. А зачем мне знать, если я до него руками не дотягиваюсь?
> :) Только если пяткой комментарии дизлайкать, но там ещё попасть надо.

Но то, что в пингвиниксе оно "работает из коробки без калибровки", ты почему-то знаешь ...


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

148. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (75), 08-Апр-22, 13:48 
>> Второе. А зачем мне знать, если я до него руками не дотягиваюсь?
>> :) Только если пяткой комментарии дизлайкать, но там ещё попасть надо.
> Но то, что в пингвиниксе оно "работает из коробки без калибровки", ты почему-то знаешь ...

оно даже в винде работает, я тоже знаю :) то ли 8.0, то ли 8.1, уже не помню, такая фигня с плитками, кстати я так и не понял, как там меню с помощью тачскрина вызвать :)

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

26. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (26), 07-Апр-22, 23:04 
А ещё Mozilla и Huawei

Они же в linux foundation, кроме mozilla

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

37. Скрыто модератором  +2 +/
Сообщение от Аноним (37), 07-Апр-22, 23:35 
Ответить | Правка | Наверх | Cообщить модератору

45. Скрыто модератором  –2 +/
Сообщение от Аноним (-), 07-Апр-22, 23:46 
Ответить | Правка | Наверх | Cообщить модератору

41. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 07-Апр-22, 23:39 
> А ещё Mozilla и Huawei
> Они же в linux foundation, кроме mozilla

Вот взял и всю интригу испортил!
> кроме mozilla

IBM c ораклем за нее. Впрочем, достаточно было бы уже и Сары из МС в списке директоров.

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

20. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Аноним (26), 07-Апр-22, 22:49 
Самокомпилируемый компилятор это очень круто и вообще все молодцы.
Ответить | Правка | Наверх | Cообщить модератору

28. "Выпуск языка программирования Rust 1.60"  +2 +/
Сообщение от pashev.ru (?), 07-Апр-22, 23:05 
Паскаль, например 😏
Ответить | Правка | Наверх | Cообщить модератору

87. "Выпуск языка программирования Rust 1.60"  +4 +/
Сообщение от Брат Анон (ok), 08-Апр-22, 07:58 
Паскаль, Модула, Модула-2 (Нью Паскаль) , Оберон-2 (Супер Паскаль) , Оберон-7 (Ультра Паскаль). И всё это один человек, и всё это методом самораскрутки.
Медаль Тьюринга (которая раз в жизни вручается), почётный доктор половины универов мира (и в России тоже), всемирное признание. Что он сделал не так? Или ты умнее его?
Ответить | Правка | К родителю #20 | Наверх | Cообщить модератору

95. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от ANANAS (ok), 08-Апр-22, 09:05 
Товарищ, на ваш оберон-7 есть современные компиляторы и критичные либы?
Ответить | Правка | Наверх | Cообщить модератору

98. "Выпуск языка программирования Rust 1.60"  +2 +/
Сообщение от Брат Анон (ok), 08-Апр-22, 09:18 
> Товарищ, на ваш оберон-7 есть современные компиляторы и критичные либы?

Скажем так: графика под Линуксом и на stm32 работает. Сеть -- это большой вопрос, но если использовать сисколы от линукса -- вопрос вполне решаем. Есть компилятор multioberon (используется в атомной промышленности, исходники открыты) -- там с высокой вероятностью есть всё минимально-необходимое.

А современными компиляторами -- дело обстоит не дурно:
https://github.com/lboasso/oberonc -- Oberon to Java
https://github.com/kekcleader/FreeOberon -- native Oberon for Win/Lin
https://github.com/bbcb/bbcp -- BlackBox Component Builder for Windows, GNU/Linux, OpenBSD, FreeBSD (ready production)
https://github.com/AntKrotov/oberon-07-compiler -- Oberon-07 compiler for x64 (Windows, Linux), x86 (Windows, Linux, KolibriOS), MSP430x{1,2}xx, STM32 Cortex-M3 (ready production)

https://github.com/Vostok-space/vostok -- The translator is written in its own input language - Oberon. Generates code for:
A common subset of C and C++ compatible with gcc, clang, tcc and CompCert.
Java 1.7
JavaScript compatible with ECMAScript 5
Oberon-07, Active Oberon and Component Pascal
License is LGPL for translator's code and Apache for libraries, tests and examples.

https://github.com/aixp/O7 -- Oberon → ARMv{6,7E}-M compiler, based on N. Wirth Project Oberon Oberon → RISC compiler (ready production)

https://github.com/dvdagaev/Mob -- MultiOberon is an Oberon Compiler with 3 different backends:
BlackBox Native x86 code Generator (1.7, version 1.6 with partial support)
Ofront Generated C-Language Code Translator;
LLVM representation Generator.
MultiOberon is Cross-Platform Compiler with supported platforms:

Windows X86;
Windows X64;
Linux X86;
Linux X64;
Raspberry Pi OS ArmV71;
Linux Ubuntu Arm64.

Ready production (with requerements nuclear power)

Хватит, или ещё погуглить в пользу забанненого в гугле?

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

186. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Ананас (?), 08-Апр-22, 20:10 
Т.е. готовой инфраструктуры нет и нужно дёргать вызовы каждый раз руками и писать обёртки самому?
Хорошо, а детям хоть преподавать можно? Хотя бы некий условный GraphABC (или что там в паскале было) есть?
Ответить | Правка | Наверх | Cообщить модератору

207. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Брат Анон (ok), 09-Апр-22, 10:49 
> Т.е. готовой инфраструктуры нет и нужно дёргать вызовы каждый раз руками и
> писать обёртки самому?

Т.е. вы читать не умеете. Берёте BlackBox Component Builder -- там всё есть.

> Хорошо, а детям хоть преподавать можно? Хотя бы некий условный GraphABC (или
> что там в паскале было) есть?

Ещё раз внимательно читайте выше. Если вам действительно нужно преподавать детям -- давно бы уже нагуглили BlackBox Component Builder Школьный. Там вам и черепашка, и готовая программа обучения, и задания для проверки пройденного материала. В подмосковном Троицке и в Новосибирске учебная программа обкатана и более чем успешно преподаётся уже с десяток лет. Если вы не в курсе, то в Троицке расположен Всеросийский ядерный научный центр. И такая научная проблема, как "дефект массы нейтрино" была решена именно на Обероне. Целый пакет символьной математики, если вы понимаете что это такое. Это есть инфраструктура или её нету?))

Нужен пакет для работы? Качаете BlackBox Component Bulder для Win/Lin/FreeBSD и работаете. Не хватает компонентов? Идёте на oberon.org и качаете что вам надо. Хотите работать с мобильного телефона? Идёте на тот же oberon.org, регистриуетесь и прям в браузере пишете код, тут же видите результат.

Что вам ещё не хватает для полного счастья?

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

273. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от ANANAS (ok), 10-Апр-22, 19:39 
Хорошо, чем blackbox.oberon.org отличается от blackboxframework.org и на что лучше ориентироваться?
Ответить | Правка | Наверх | Cообщить модератору

141. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от PnD (??), 08-Апр-22, 12:59 
Go рассматривают как "идеологического наследника".
Убрали самое одиозное (BEGIN, END, PROCEDURE) и развили работу с типами.
Ответить | Правка | К родителю #95 | Наверх | Cообщить модератору

184. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (184), 08-Апр-22, 19:17 
> Го
> Типы
Ответить | Правка | Наверх | Cообщить модератору

193. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (190), 08-Апр-22, 21:13 
Если бы убрать каналы (травят производительность), выполнение в пулах потоков,
то выйдет современный и удобный C, а не то что там сейчас получилось.

Вся надежда на то что кто-то может допилит или стандартную библиотеку расширив до нормальных современных типов (Map, BTree, List и т.д.), базовых функций (поиск, сортировки и т.д.), кросплатформенных часов, потоков и т.д.

А то современные приемники в виде Rust и Golang это какие-то комбайны жалеко ушедшие в свою философию.

Так и выходит, что Си устарел, а  Rust и Golang слишком раздутые. А место между ними занимает сейчас динмическая Java которая из-за своего JVM многим очень не по вкусу.

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

208. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Брат Анон (ok), 09-Апр-22, 10:56 
> Если бы убрать каналы (травят производительность), выполнение в пулах потоков,
> то выйдет современный и удобный C, а не то что там сейчас
> получилось.

Нет. Это получится классический Оберон в нотации Си.

> Вся надежда на то что кто-то может допилит или стандартную библиотеку расширив
> до нормальных современных типов (Map, BTree, List и т.д.), базовых функций
> (поиск, сортировки и т.д.), кросплатформенных часов, потоков и т.д.

В си такого не будет. Си был сочинён для PDP-11. И это первородный грех.

> А то современные приемники в виде Rust и Golang это какие-то комбайны
> жалеко ушедшие в свою философию.

Rust нечитаем. Go -- инженерный компромисс. Далеко не идеален, но явно лучше потому что явно проще.

> Так и выходит, что Си устарел, а  Rust и Golang слишком
> раздутые. А место между ними занимает сейчас динмическая Java которая из-за
> своего JVM многим очень не по вкусу.

Golang по сравнению с Rust -- проще раза в три. Не выдумывайте.

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

280. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от name (??), 11-Апр-22, 10:22 
Как ты сетью работать собрался из go? С raw сокетами, tcp пакетами?
Ответить | Правка | К родителю #193 | Наверх | Cообщить модератору

284. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от PnD (??), 11-Апр-22, 12:26 
> Как ты сетью работать собрался из go? С raw сокетами, tcp пакетами?

Не совсем понял в чём трагедия?
Для tcp/udp есть вполне рабочая библиотека "net". Битовая арифметика — считается не хуже чем с C. Вот например обработка кусочка сетевого пакета:
"""
    crc32_bytes := BUFFER.data[length-4 :]
    crc32_frame := uint32(crc32_bytes[0])
    crc32_frame |= uint32(crc32_bytes[1]) << 8
    crc32_frame |= uint32(crc32_bytes[2]) << 16
    crc32_frame |= uint32(crc32_bytes[3]) << 24
    if crc32.ChecksumIEEE(BUFFER.data[:length - 4]) != crc32_frame { // Invalid CRC
        if *DEBUG { xl.Debug("Invalid CRC") }
        return
    }
"""
* Как видим, "в лоб" (как на C) у меня перекастовать не вышло и пришлось "запинать ногами".
Но это как раз наименее удачное место обработчика (зато пример хороший). И я не специализируюсь как программист (есть же варианты пролезть через unsafe).

Для raw нету готового? А вот уже́ и есть https://github.com/golang/net/blob/master/internal/socket/ra...

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

96. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Аноним (94), 08-Апр-22, 09:07 
Поддержу троллинг.

Тем временем компилятор Си в лице gcc уже так не умеет.

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

124. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (124), 08-Апр-22, 12:10 
Что он не умеет? GCC можно собрать предыдущей версией собранного GCC.
Ответить | Правка | Наверх | Cообщить модератору

127. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 08-Апр-22, 12:19 
Ну, он уже как бы написал, что поддерживает троллинг. Поэтому отвечать на его вброс не нужно.
Ответить | Правка | Наверх | Cообщить модератору

131. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (94), 08-Апр-22, 12:37 
Ладно, разжую троллинг. Для сборки gcc нужен С++.
Ответить | Правка | К родителю #124 | Наверх | Cообщить модератору

147. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (124), 08-Апр-22, 13:42 
, который есть в пакете GCC. Проблемы нет, и C, и C++ поставляются вместе одним пакетом.
Ответить | Правка | Наверх | Cообщить модератору

150. "Выпуск языка программирования Rust 1.60"  –2 +/
Сообщение от Аноним (94), 08-Апр-22, 13:56 
Но компилятор C не собрать компилятором C.
Ответить | Правка | Наверх | Cообщить модератору

194. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Аноним (190), 08-Апр-22, 21:16 
Так, погодите, а RUST разве можно без LLVM (C++) собрать самим RUST-ом?
Ответить | Правка | Наверх | Cообщить модератору

195. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Аноним (-), 08-Апр-22, 22:01 
> Так, погодите, а RUST разве можно без LLVM (C++) собрать самим RUST-ом?

Можно, разрешаю!
https://github.com/bjorn3/rustc_codegen_cranelift/blob/53bfc...

https://github.com/rust-lang/rust/pull/81594
> When the LLVM backend is disabled, the llvm-project submodule is not checked out by default. This breaks the bootstrap test for cg_clif. As cg_clif doesn't support split debuginfo anyway llvm-dwp is not necessary. Other backends would likely not want to build LLVM just for llvm-dwp either.

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

25. "Выпуск языка программирования Rust 1.60"  +2 +/
Сообщение от YetAnotherOnanym (ok), 07-Апр-22, 23:01 
> В пакетном менеджере cargo стабилизирована поддержка флага "--timings", включающего формирование детального отчёта о ходе сборки и времени выполнения каждого шага. Отчёт может оказаться полезен для оптимизации производительности сборочного процесса.

Телеметрия - наше всё, да.

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

27. "Выпуск языка программирования Rust 1.60"  –3 +/
Сообщение от Аноним (27), 07-Апр-22, 23:05 
Надо бороться, но не с rust что кгб не освоила и кидает в массы чттоб вы раньше их этим не занимались.
Ответить | Правка | Наверх | Cообщить модератору

29. "Выпуск языка программирования Rust 1.60"  +3 +/
Сообщение от Аноним (26), 07-Апр-22, 23:06 
Это плохо что cargo формирует детальный отчёт о сборке?
Чем?
Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

271. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (271), 10-Апр-22, 15:32 
Если ты не сказал явно это делать - всем.
Ответить | Правка | Наверх | Cообщить модератору

276. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (26), 11-Апр-22, 02:43 
Чем конкретно? Перечисляйте
Ответить | Правка | Наверх | Cообщить модератору

65. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Аноним (-), 08-Апр-22, 01:34 
>> В пакетном менеджере cargo стабилизирована поддержка флага "--timings", включающего формирование детального отчёта о ходе сборки и времени выполнения каждого шага. Отчёт может оказаться полезен для оптимизации производительности сборочного процесса.
> Телеметрия - наше всё, да.

Где именно там телеметрия?


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

293. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (293), 12-Апр-22, 11:23 
Тебе в рифму ответить или сам поймёшь?
Ответить | Правка | Наверх | Cообщить модератору

295. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (295), 12-Апр-22, 11:54 
>> Cargo has stabilized support for collecting information on build with the --timings flag.
>> The report is also copied to target/cargo-timings/cargo-timing.html
> Тебе в рифму ответить или сам поймёшь?

Т.е. конкретики не будет, будут попукивания "в рифму" и заверения, что "это не лужа! Это такая грязевая ванна"?


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

106. "Выпуск языка программирования Rust 1.60"  +4 +/
Сообщение от burjui (ok), 08-Апр-22, 09:50 
Боже мой, докатились... Уже по названию флага понятно, что это такое. Для обделённых природой: это не телеметрия, а ровно то, что написано в описании флага. Отчёт сохраняется в HTML файл, а не отправляется рептилоидам на Нибиру. Такое ощущение, что местных хейтерков набирают принципиально только из детсада и реабилитационного центра для инсультников.
Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

46. "Выпуск языка программирования Rust 1.60"  +5 +/
Сообщение от Аноним (46), 07-Апр-22, 23:51 
>> В пакетном менеджере cargo предложен новый синтаксис

Играть синтаксисом у них модно?

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

52. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Аноним (-), 08-Апр-22, 00:05 
>>> You can now use the dep: prefix in the [features] table to explicitly refer to an optional dependency without implicitly exposing it as a feature.
> Играть синтаксисом у них модно?

— Вы любите Битлз?
— Да ничего особенного! Фальшивят, голоса противные...
— А что вы слушали?
— Я — ничего, но мне Рабинович напел!

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

110. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (46), 08-Апр-22, 10:00 
Я понимаю, что сейчас просто добавили возможностей

— Вы любите Битлз?
— Да, потрясающе! При каждом исполнении к песне добавляется куплет!

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

152. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (152), 08-Апр-22, 14:17 
>> Я понимаю, что сейчас просто добавили возможностей
> — Вы любите Битлз?
> — Да, потрясающе! При каждом исполнении к песне добавляется куплет!

А если кто-то вставил песню в свое произведение не расчитывая на этот куплет?

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

157. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 08-Апр-22, 14:38 
>>> Я понимаю, что сейчас просто добавили возможностей
>> — Вы любите Битлз?
>> — Да, потрясающе! При каждом исполнении к песне добавляется куплет!
> А если кто-то вставил песню в свое произведение не расчитывая на этот
> куплет?

Расскажи поподробнее, что именно (и зачем) этот кто-то вставил, что оно теперь конфликтует с префиксом?

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

218. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 09-Апр-22, 17:17 
> — Вы любите Битлз?
> — Да, потрясающе! При каждом исполнении к песне добавляется куплет!

Сейчас в тренде Пинк Флойд.

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

85. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (37), 08-Апр-22, 07:35 
> Играть синтаксисом у них модно?

Получается, что да.

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

50. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (50), 08-Апр-22, 00:01 
Стоит ли учить сабж как хобби, для написания небольших утилит и программирования микроконтроллеров? Имею опыт только с Си. Или лучше в сторону Zig смотреть? Не знаю, что легче/приятнее использовать?
Ответить | Правка | Наверх | Cообщить модератору

53. "Выпуск языка программирования Rust 1.60"  +2 +/
Сообщение от Аноним (53), 08-Апр-22, 00:16 
Написал несколько тысяч строк кода на Zig (пишу базу данных).

Zig - это лучшее что случалось в системном программировании за много лет. Намного лучше С и C++.

Опыта на Rust не имею, кроме чтения критики / хвальбы и туториалов. Но он мне совсем не понравился (но лучше С и С++).

Rust скорее замена С++, Zig - замена С.

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

56. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от А где же каменты (?), 08-Апр-22, 00:33 
Поделитесь в чем прелесть zig?
Ответить | Правка | Наверх | Cообщить модератору

68. "Выпуск языка программирования Rust 1.60"  +5 +/
Сообщение от Аноним (53), 08-Апр-22, 02:32 
В принципе в том как позиционируется язык всё уже описано.

1. No hidden control flow. Т.е. нет exception. Нет переопределения методов. Нет конструкторов и деструкторов.
2. Error это отдельный тип и ошибки обрабатывать придётся (что-то типа Maybe / Optional, но в процедурном стиле), иначе не скомпилипуется.
3. В тестах и дебаге тебе выдадут дательный пошаговый путь где возникла ошибка и весь её путь - это ОЧЕНЬ круто, такого нигде не видел. И это не stacktrace, а error trace.
4. Тесты пишутся прямо в файле как test {...zig code...} и сразу запускаются командной zig test - ничего делать не надо. Очень поощряет test-driven программирование. Я ещё ни разу не собирал проект и не разбирался как это делать детально, а уже несколько тысяч строк работающего кода с тестами.
5. Тесты можно дебажить и все breakpoint работают в VS Code.
6. Билд система тоже на Zig, не надо учить отдельный язык синтаксис (cmake/Gradle).
7. Максимальная безопасность - все значения по умолчанию const (настоящий, а не как константная ссылка), проверки выхода за границы, и т.д. и т.п. Т.е. в отличие от Rust много проверок в runtime в Debug режиме, вместо статического доказывания системе типов, как в Rust - притом что многие проверки можно реально выполнить только в runtime.
8. Аллокатор передаётся как параметр - никаких скрытых аллокаций памяти.
9. Аллокатор std.testing.allocator отлавливает утечки - очень круто, использую в тестах
10. Отличная интероперабельность с С (не тестировал сам)

defer / errdefer - крутейшая фича.

Вообще ощущение что пишешь на высокоуровневом языке, хотя Zig самый низкоуровневый из всех.

Я очень доволен. Скажу честно, расчитывал что он быстро начнёт разваливаться и я его выкину как "не смогла".

Но он превзошёл все мои ожидания даже в версии 0.10.0-dev.

Ребята очень заточены на безопасность, но в меру, без фанатизма, и на performance.

Уже добавили переносимые SIMD в язык (тип @Vector())

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

69. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (53), 08-Апр-22, 02:33 
Это только часть, не рассказал про дженерики и вычисления в compile time.

Язык очень самобытный.

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

77. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от qew (?), 08-Апр-22, 05:20 
Спасибо за описание!
Ответить | Правка | К родителю #68 | Наверх | Cообщить модератору

82. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Someone (??), 08-Апр-22, 06:59 
Если по уровню обработки ошибок, их детальность и понятности, то лучше раста ничего нет. Только Elm может сравниться.

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

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

125. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (94), 08-Апр-22, 12:13 
> Zig самый низкоуровневый из всех.

Я не понял, это фронтенд над LLVM?

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

151. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (53), 08-Апр-22, 14:15 
Это действительно круто. Потому что + на типе "вектор" или "массив" может быть в тысячу / миллион раз медленее чем + над обычным integer.

По сути это тот самый hidden control flow, когда стоимость операции предполагается такой же или сопоставимой.

Тут ты точно знаешь что + это дёшево и только для integer и float с аппаратной поддержкой.

И потом это переопределение операторов. Его тоже нет.

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

154. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (154), 08-Апр-22, 14:29 
А как быстро делать + на массиве, например? Не троллю, просто не разбираюсь.
Ответить | Правка | Наверх | Cообщить модератору

161. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (53), 08-Апр-22, 14:44 
Быстро не сделать. Лучшее что можно сделать - использовать SIMD инструкции. В зависимости от разрядности элементов массива от 2х до 8х можно получить.

Но всё равно O(N).

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

160. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (53), 08-Апр-22, 14:40 
Да, использует backend LLVM для оптимизации и генерации кода.
Ответить | Правка | К родителю #125 | Наверх | Cообщить модератору

165. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (94), 08-Апр-22, 14:59 
Эх! Но все равно круто, надо пристальней изучить
Ответить | Правка | Наверх | Cообщить модератору

128. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (124), 08-Апр-22, 12:20 
>Нет переопределения методов.

Т.е., нельзя определить операции "+", "-", "=" для своего типа? Ну "круто", чё.

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

227. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 09-Апр-22, 18:00 
Ну как тебе сказать. Оверлоад операторов хитрож@пым програмером - даст фору любому obfuscated C code contest'у. И это вовсе даже и не фича когда охота вдуплить в логику чужого кода.
Ответить | Правка | Наверх | Cообщить модератору

137. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Аноним (137), 08-Апр-22, 12:43 
интересно, что большая часть этих пунктов есть и в rust
Ответить | Правка | К родителю #68 | Наверх | Cообщить модератору

158. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (53), 08-Апр-22, 14:39 
Много чего в Rust нет и неизвестно когда будет.

Zig опережает Rust по многим пунктам. Просто не стал касаться этой темы.

В Rust основное преимущество, и оно же - недостаток, их система типов с borrow checking.

Про её ограниченность можно почитать в интернете, неплохо разбиралось. Там что-то про слабость и ограниченность аффинной системы типов.

Именно поэтому сравнивая языки, я выбрал Zig. Он более низкоуровневый. Это то что нужно для системного программирования.

Rust тоже хороший язык, по сравнению с C++. Он он как раз замена С++, и какие концепции оттуда стащили - Clone, Copy, конструкторы, деструкторы и вот это вот всё.

В Zig этого нет и не нужно. В Zig даже нет типа "строка".

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

196. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Анимус (?), 08-Апр-22, 22:08 
> Zig опережает Rust по многим пунктам. Просто не стал касаться этой темы.

А было бы интересно, если бы коснулся. Согласен с предыдущим комментатором, почти все плюсы Zig ты расписываешь, как будто Раст расхваливаешь.

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

209. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (209), 09-Апр-22, 12:19 
>> Zig опережает Rust по многим пунктам. Просто не стал касаться этой темы.
> А было бы интересно, если бы коснулся. Согласен с предыдущим комментатором, почти
> все плюсы Zig ты расписываешь, как будто Раст расхваливаешь.

А меня позабавило как он в одном пункте пишет что Зиг самый низкоуровневый из всех, когда в пункте выше написал что у Зиг больше проверок времени исполнения чем в Раст.

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

210. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 09-Апр-22, 13:08 
> А меня позабавило как он в одном пункте пишет что Зиг самый
> низкоуровневый из всех, когда в пункте выше написал что у Зиг
> больше проверок времени исполнения чем в Раст.

А чего там забавного? "Сложная" система типов, те же владения, как раз позволяет более продвинутые проверки времени компиляции.

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

212. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Аноним (53), 09-Апр-22, 13:28 
Это в теории, притом гипотетической. На практике самый быстрый код генерирует C, а не Rust.
Ответить | Правка | Наверх | Cообщить модератору

213. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 09-Апр-22, 14:01 
>> больше проверок времени исполнения чем в Раст.
> Это в теории, притом гипотетической.

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

Разве что код для очередного микробенча (что не факт https://benchmarksgame-team.pages.debian.net/benchmarksgame/... )
с гарантиями и проверками вида "Соколиный глаз посмотрел код" и "зуб даю".

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

214. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (53), 09-Апр-22, 15:07 
Я хочу сказать то, что сказал.

Эквивалентный код на С работает быстрее чем на Rust. Оптимизируется современными компиляторами лучше, ассемблерный код генерирует лучше.

Но Zig это же делает лучше C.

Все просто поверили в мантру чёрного ящика "оптимизирующего компилятора". Однако современные компиляторы достаточно слабы.

Ну умеют даже SIMD использовать, нужно ручками.

Поэтому "вот сейчас компилятор проверит всё в compile-time" и сгенерирует оптимальный код - лучше чем С - сказки это всё. Практика и куча тестов показала что это не так.

Обещали "Rust быстрее С", но не случилось.

Это факт, который глупо отрицать.

Насчёт проверок - я хочу сказать что система типов очень ограниченна.

Это круто, это лучше чем ничего, это значительно лучше чем было "до".

Zig пошёл другим путём - он делает максимальное количество проверок в runtime. Система типов значительно проще (но всё равно очень продвинутая по сравнению с С и С++). Код читать и понимать значительно легче.

И как на системе типов Rust ты докажешь что нет утечек памяти? Или что вектор содержит ровно N элементов? Или ...

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

215. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 09-Апр-22, 15:44 
> Я хочу сказать то, что сказал.
> Эквивалентный код на С работает быстрее чем на Rust. Оптимизируется современными компиляторами
> лучше, ассемблерный код генерирует лучше.

Ты просто смешал в кучу _проверки_ времени компиляции и оптимизацию - и оспорил какие-то, выдуманные тобой же, якобы мои "утверждения".
> Но Zig это же делает лучше C.
> Все просто поверили в мантру чёрного ящика "оптимизирующего компилятора". Однако современные
> компиляторы достаточно слабы.

Опять сам придумал, сам опроверг. Попробуй использовать gcc 3.x и потом порассуждать еще раз про "слабость".

> Ну умеют даже SIMD использовать, нужно ручками.
> Поэтому "вот сейчас компилятор проверит всё в compile-time" и сгенерирует оптимальный код
> - лучше чем С - сказки это всё. Практика и куча тестов показала что это не так.

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

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

242. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 09-Апр-22, 23:58 
> Но Zig это же делает лучше C.

Нельзя ли примеры с конкретными асмовыми листингами?

> Все просто поверили в мантру чёрного ящика "оптимизирующего компилятора". Однако современные
> компиляторы достаточно слабы.

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

> Ну умеют даже SIMD использовать, нужно ручками.

А он не у всех таргетов есть, увеличивает в разы контекст, использование стэка и времена переключений, так что в системном программировании, где зачастую надо работать с минимальными допущениями это скорее дурной тон. Или premature optimization, который root of all evil. К тому же там все не так просто и у simd обычно есть специфичные требования (например выравнивание). Их выполнения и подготовка окружения к соответствю им не бесплатны: больше RAM жрется и если то что есть сразу в требования не лезло надо дополнительный код, жирнее и медленнее оригинала. Сетап этого может иногда отыграть взад. А настоящие гуру - те кто без всякого SIMD может в скорость железа упереться, как LZ4 например.

Есть вещи на которые это не распостраняется. Но их немного. Типа memcpy в стандартной либе. Но даже там переросточный glibc в сях например - да, быстрый, но если размер кода интересовал, эта быстрота дорого обходится: большая платформозависимая функция. Много кода разом. А если было много мелких операций оно еще и проиграть более простым может.

> Обещали "Rust быстрее С", но не случилось.

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

> Это факт, который глупо отрицать.

А они что, волшебники?

> Насчёт проверок - я хочу сказать что система типов очень ограниченна.
> Это круто, это лучше чем ничего, это значительно лучше чем было "до".

Тут можно поспорить. Хруст пытается рыбку съесть и на ... сесть ценой заставления кодера все нудно аннотировать. Это не имеет костов в ран тайм но не дает кодеру забить на явный баг.

> Zig пошёл другим путём - он делает максимальное количество проверок в runtime.

К сожалению в отличие от того что делает Rust это отливается в более жирный и медленный код. А без этого - отпадают гарантии.

> Система типов значительно проще (но всё равно очень продвинутая по сравнению
> с С и С++). Код читать и понимать значительно легче.
> И как на системе типов Rust ты докажешь что нет утечек памяти?
> Или что вектор содержит ровно N элементов? Или ...

Они решая одни проблемы изобрели много новых. А си хорош тем что проблем относительно немного и они хорошо известны.

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

246. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним215 (?), 10-Апр-22, 00:27 
>> Ну умеют даже SIMD использовать, нужно ручками.
> А он не у всех таргетов есть, увеличивает в разы контекст, использование

Не, это конечно забавно, когда один любитель приписывания своих фантазий решил поспорить с другим (надо было запастись попкорном). Но лично у меня еще gcc5 -O3 для amd64 разворачивал


int vec1[100];
int vec2[100];
...
for(int i=0;i<100;i++) vec2[i]=vec1[i]+vec2[i];

в

.L3:
        movdqa  xmm0, XMMWORD PTR [rbp+0+rax]
        paddd   xmm0, XMMWORD PTR [rbx+rax]
        movaps  XMMWORD PTR [rbx+rax], xmm0
        add     rax, 16
        cmp     rax, 400
        jne     .L3

И это, подписывайся как нибудь, если уж тоже влезаешь в обсуждение с таким же ником.


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

253. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (53), 10-Апр-22, 01:02 
Да, только все библиотеки высокопроизводительные используют ручные компиляторно-специфичные интрисинки.

Так почему же? Может потому что SIMD он впихнет в самых примитивных случаях? И шаг вправо, шаг влево и компилятор уже того... сложил ручки.

Ваш пример тому не опровержение, а доказательство. Это всё на просторах интернета неплохо разобрано.

Увы, магией, компиляторы не обладают.

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

298. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Аноним (-), 13-Апр-22, 08:31 
>> А он не у всех таргетов есть, увеличивает в разы контекст, использование
> Не, это конечно забавно, когда один любитель приписывания своих фантазий решил поспорить
> с другим (надо было запастись попкорном). Но лично у меня еще
> gcc5 -O3 для amd64 разворачивал

А теперь смотрим во что разворачивается сохранение подобных контекстов при случае. При переключении задач тоже придется. Как и регистры FPU еще. Посмотрим на размер контекста задачи и подхоренеем. А если захочется low latency кернел - тыщу раз в секунду такие блоки таскать уже и не нулевой оверхед. Это же актуально при вызове множества функций и т.п..

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

А тот код - прям так может и работать, а попробуйте это указателем сделать (вы же не собираетесь int[100] передавать дальше значением, задвигая про эффективность?!) - и узнаете много нового и интересного про simd, alignment и в чем там прикол. У simd есть довольно специфичные требования к выравниванию адресов и веселые приколы если это не выполняется.

>

 
> int vec1[100];
> int vec2[100];
> ...
> for(int i=0;i<100;i++) vec2[i]=vec1[i]+vec2[i];
>

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

> И это, подписывайся как нибудь, если уж тоже влезаешь в обсуждение с таким же ником.

А нафига? Есть некие мысли, их и обсуждаем.

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

302. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним215 (?), 13-Апр-22, 11:54 
> А теперь смотрим во что разворачивается сохранение подобных контекстов при случае. При
> переключении задач тоже придется. Как и регистры FPU еще. Посмотрим на

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

> А тот код - прям так может и работать, а попробуйте это
> указателем сделать (вы же не собираетесь int[100] передавать дальше значением, задвигая
> про эффективность?!) - и узнаете много нового и интересного про simd,
> alignment и в чем там прикол. У simd есть довольно специфичные
> требования к выравниванию адресов и веселые приколы если это не выполняется.

Особо забавно оспаривание своих же фантазий анонимом в контексте опыта написания нехилых кусков SIMD еще ручками, в асме ...

>> И это, подписывайся как нибудь, если уж тоже влезаешь в обсуждение с таким же ником.
> А нафига? Есть некие мысли, их и обсуждаем.

А то, что до #215 Аноним(-) был другой ... ну да, я и забыл - 294й считает нетикет глупым предрассудком.


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

254. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (53), 10-Апр-22, 01:57 
Все листинги есть в GitHub Issues, и их довольно много. "Навскидку" я их не приведу, они мне попадались случайно.

Одна из заявленных главных целей - быть быстрее С. Поэтому performance на втором месте.

Например, все значения по умолчанию константы - это позволяет производить дополнительные оптимизации.

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

@Vector для SIMD, а если SIMD не поддерживаются то будет fallback на обычный вектор, т.е. поэлементное сравнение.

inline for, calling conventions можно выбирать для каждой функции.

Там куча всего есть, что делает его именно системным низкоуровневым, чего С и в помине не может.

Про то что SIMD что-то там увеличивает...это конечно требует серьезных пруфов. Жду.

Но никто не заставляет их использовать. Не хочешь - не используй.

И нет, конструкции языка переводятся в инструкции процессору. Если у процессора есть SIMD, который может делать до 8х ускорения, а язык программирования не знает об этом без хаков, для конкретного компилятора... скажем мягко...нет, это не преимущество.

Архитектур которые поддерживает Zig куча. Спасибо LLVM. И нет, это не делает язык более "системным", как вы сказали.

Может для какого-то embedded, и плат нужны отдельные подархитектуры и компиляторы, которых нет в LLVM. Возможно, не знаю. Я не железячник.

Но это либо совсем никому не нужно, либо вопросы к вендору. Архитектуру в LLVM можно добавить, и это делали не раз.

Про то что Rust не имеет якобы костов в runtime из-за якобы крутых проверок - я хотел бы увидеть доказательства. Например, как он делает проверки выхода за границы массива? Вы опять это пишите, а доказательства где?

Rust проверяет корректность некоторых конструкций, довольно ограниченную. Просто из "у Rust такая крутая система типов, что он теоретически МОЖЕТ делать более продвинутые оптимизации" это превратилось на просторах интернета в факт, бездоказательный.

Или Rust умеет проверять переполнение float?

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

299. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 13-Апр-22, 09:10 
> Все листинги есть в GitHub Issues, и их довольно много. "Навскидку" я
> их не приведу, они мне попадались случайно.

И даже ссылки на гитхаб не дадите? А так - алгоритмов и процовых архитектур много и вот так огульно утверждать что X быстрее Y и это цель - ну, так себе затея. Разве что чисто статистически в совсем явных случаях, типа сказав что "си быстрее питона" вы врядли особо соврете. И то ярый питонист в пику накопает краевые случаи, они ничего не доказывают, но все же так бывает.

> Одна из заявленных главных целей - быть быстрее С. Поэтому performance на втором месте.

Быстрее чем си - ну, очень абстрактно. Особенно когда кодеген у обоих на одном и том же LLVM, а если параллельность хотелось и проч, сишники нынче могут OpenMP поюзать одной pragma-ой, например.

> Например, все значения по умолчанию константы - это позволяет производить дополнительные
> оптимизации.

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

> Параметры функции могут быть значениями или ссылками - это выбирает оптимизирующий
> компилятор компилятор.

Он также может заинлайнить все нахрен, если явно не запрошено экспортировать вон то наружу для других под стандарнтым ABI. И там вообще не будет ни параметров, ни функции, лишь несколько команд делающих

> @Vector для SIMD, а если SIMD не поддерживаются то будет fallback на
> обычный вектор, т.е. поэлементное сравнение.

Да так то на самом деле неплохо, но у simd есть не совсем очевидные но отличные от ноля требования и side effects. И чем больше таких грабель тем хуже оно как именно системный тул.

> inline for, calling conventions можно выбирать для каждой функции.

Инлайн и в сях можно выбирать для каждой функции есчо.

> Там куча всего есть, что делает его именно системным низкоуровневым, чего С
> и в помине не может.

Например, чего?

> Про то что SIMD что-то там увеличивает...это конечно требует серьезных пруфов. Жду.

Чем больше регистров используется тем больше регистров сохранять. Особенно при полном переключении контекста, типа переключения задачи/сохранения состояния потока и проч. А, представляете, си достаточно низкоуровневый для того чтобы на нем например корутины самому сделать было?!

> Но никто не заставляет их использовать. Не хочешь - не используй.

Вопрос не в том - а в количестве грабель которые вылезут. И в реюзабельности кода, особенно, вот именно в системных вещах. У сей очень удобно что многий код можно оттестить на писюке а потом в какой мелкий мк запихнуть. Где с инструментацией все же хуже и кривее (супротив perf/gdb/asan/ubsan/etc). Хотя, знаете, по минимуму сделать ubsan можно даже на мк. Только ваши любимые проверки индексов и математики не халявные. А в ubsan таки сделали ультралайт версию, когда при завале проверки случается всего лишь bad opcode например. Дешево, сердито, и вот именно системный обработчик исключения в мелочи таки заметит что шит произошел. А в этом зигхайле так вообще можно в системные вещи вклиниться?

> И нет, конструкции языка переводятся в инструкции процессору. Если у процессора есть
> SIMD, который может делать до 8х ускорения, а язык программирования не
> знает об этом без хаков, для конкретного компилятора... скажем мягко...нет, это
> не преимущество.

Он может дать до 8x ускорения. А может дать до нескольких раз торможения. Характерный пример будет glibc'шный memcpy. Да, он на вот этом вот выезжает в разы - если условия подошли. А если caller его абы как на куче мелочи дернет с абы какими указателями, копируя по 10 байтов за вызов, оно там будет в рантайме дольше одуплять - можно ли с данным адресом SIMD вообще, или это нарушает constraints. Единственный вариант как-то это гарантировать - прибить форсированый align все и вся на гвозди, но будет другая проблема: RAM и стэка больше жрать будет. Чисто на округление адресации.

> Архитектур которые поддерживает Zig куча. Спасибо LLVM. И нет, это не делает
> язык более "системным", как вы сказали.

Вообще-то LLVM поддерживает не так уж и много архитектур. По сравнению с тем же GCC например. И оптимизация у него хороша только под 1-2, на остальные они просто положили.

> Может для какого-то embedded, и плат нужны отдельные подархитектуры и компиляторы, которых
> нет в LLVM. Возможно, не знаю. Я не железячник.

Если вы не это - тогда какого фига про системность рассказывать? Системность языка все эти вещи подразумевает. Ну ладно, может там хоть стандартный способ положить "эту функцию в вон ту секцию" сделали? Если уж более системное? А то в си вот это подбешивает, нестандартно и в разных компилерах по разному. И без этого фиг фирмвару или бутлоадер какой сделаешь.

> Но это либо совсем никому не нужно, либо вопросы к вендору. Архитектуру
> в LLVM можно добавить, и это делали не раз.

Да как-то не особо эффективно делали. Реально живое там x86-64. Ну ARM'ы еще слегка. Остальное постольку-поскольку, спущено на тормозах. Да даже с ARM оно прикалываться умеет если тематически форумы именно системной направленности почитать.

> Про то что Rust не имеет якобы костов в runtime из-за якобы
> крутых проверок - я хотел бы увидеть доказательства.

Я так понимаю что он с своим borrow checker ухитряется часть проверок доказать в компил тайме и тогда выкинуть их все из кода с чистой совестью. Да что там, оптимизеры типа LTO и сами этим грешат, только уровнем пониже и наружу интерфейс в случае си не вывешивают. Но выпилить к черту проверки, доказав "always true" может на раз. Торвальдс очень ругался - в кернеле компилятор некоторые использования не видит :). И если кто заикается про системность - ему потом эти оптимизации с другого бока очень жестко вылезут так то.

> Например, как он делает проверки выхода за границы массива? Вы опять это пишите, а
> доказательства где?

Как я понимаю - таки в compile time просчитывает большую часть этого. Хотя рантайм panic() у него таки тоже есть. И можете зазырить в рассялке ядра что Торвальдс про такие вещи в СИСТЕМНЫХ вещах думает.

> Rust проверяет корректность некоторых конструкций, довольно ограниченную. Просто из "у
> Rust такая крутая система типов, что он теоретически МОЖЕТ делать более
> продвинутые оптимизации" это превратилось на просторах интернета в факт, бездоказательный.

И как я понял - это заодно и делает синтаксис довольно закорючным.

> Или Rust умеет проверять переполнение float?

Да без понятия, я не растаман так то. Но float вообще большая проблема с точки зрения надежности и предсказуемости всего этого. Более того - чтобы все это было, надо хотя-бы какие-то жесткие стандарты определить, для всех краевых случаев, гарантированной точности и проч. Что начинает клещиться с умениями разнообразного железа. С точки зрения системщины и надежности плавучка проблемный топик. Ряд стандартов безопасности типа MISRA прямым текстом запрещает использование таковой по этим причиным.

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

211. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (53), 09-Апр-22, 13:25 
Как это связано с низкоуровневостью?

Можно собрать с отключенными проверками, есть Release и Release Safe.

Низкоуровневый он по совершенно другим причинам.

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

220. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 09-Апр-22, 17:35 
> Можно собрать с отключенными проверками, есть Release и Release Safe.

К сожалению оно дает риск про@#$ться - или оверхед в рантайм.

> Низкоуровневый он по совершенно другим причинам.

Из которых ни 1 не перечислена...

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

228. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (53), 09-Апр-22, 19:03 
А зачем?
Ответить | Правка | Наверх | Cообщить модератору

243. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 10-Апр-22, 00:00 
> А зачем?

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

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

251. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (53), 10-Апр-22, 00:51 
Меня выше спросили - я ответил.
А распинаться и пытаться что-то доказать непонятно зачем анониму...

Всё есть в Issue на GitHub, и коммитах.

А ты умеешь делать проверки выхода за границы массива не в runtime? Или так умеет делать Rust? Может он умеет доказывать в compile time?

Шанс про...ться всегда есть. Только это сразу же отлавливается примитивными тестами.

Если код корректен - проверка выхода за границы не нужна. Это по сути только для дебага, чтобы отловить все такие случаи.

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

200. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от А где же каменты (?), 08-Апр-22, 23:54 
Какие книги почитать чтобы понять что ты написал? Про хидден флоу итд
Ответить | Правка | К родителю #68 | Наверх | Cообщить модератору

201. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (53), 09-Апр-22, 02:17 
Вот этого достаточно https://ziglang.org/learn/why_zig_rust_d_cpp
Ответить | Правка | Наверх | Cообщить модератору

219. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Аноним (-), 09-Апр-22, 17:32 
> 1. No hidden control flow. Т.е. нет exception. Нет переопределения методов. Нет
> конструкторов и деструкторов.

А как же panic содраный из хруста и вычисления в compile time?

> 2. Error это отдельный тип и ошибки обрабатывать придётся (что-то типа Maybe
> / Optional, но в процедурном стиле), иначе не скомпилипуется.

При том вот именно это - вызывает вопросы какими веществами они пользовались. Хотя выглядит забавно.

> 4. Тесты пишутся прямо в файле как test {...zig code...} и сразу
> запускаются командной zig test - ничего делать не надо. Очень поощряет
> test-driven программирование.

С другой стороны, прелесть сей в отсутствии hardwired допущений прибитых на гвозди. Нравится тестить так - берем то. Эдак - берем это. Либ для тестов - есть.

> 5. Тесты можно дебажить и все breakpoint работают в VS Code.

Вы перепутали вебмакак с системщиками.

> 6. Билд система тоже на Zig, не надо учить отдельный язык синтаксис
> (cmake/Gradle).

С другой стороны - см выше про прибито на гвозди. Единственный Правильный Путь - это не путь сишника.

> 7. Максимальная безопасность - все значения по умолчанию const (настоящий, а не
> как константная ссылка), проверки выхода за границы, и т.д. и т.п.

Только стоит уточнить что оно либо с пеналти в рантайме - либо без некоторых проверок.

> Т.е. в отличие от Rust много проверок в runtime в Debug
> режиме, вместо статического доказывания системе типов, как в Rust -

ЧСХ спорный вопрос что это фича. Хруст в этом пожалуй имеет преимущество: с одной стороны хоть какие-то проверки-гарантии, с другой - это не портит код в ран тайм.

> притом что многие проверки можно реально выполнить только в runtime.

Оно как бы не бесплатно по размеру кода и его скорости.

> 8. Аллокатор передаётся как параметр - никаких скрытых аллокаций памяти.

А вот это прикольно придумано. С другой стороны - кодить аллокатор в bare metal ну так себе, знаете ли. А без аллокатора оно вообще способно жить?

> 10. Отличная интероперабельность с С (не тестировал сам)

И вообще вроде можно постепенно сишный сорц до этого заапгрейдить.

> defer / errdefer - крутейшая фича.

Вообще забавно сделано.

> Вообще ощущение что пишешь на высокоуровневом языке, хотя Zig самый низкоуровневый из всех.

Да ну ща. Си низкоуровнее некуда. А как на этом оформить помещение числа 0x20 в адрес 0x80000?

> Я очень доволен. Скажу честно, расчитывал что он быстро начнёт разваливаться и
> я его выкину как "не смогла".

На самом деле забавная штука. Более логичный чем хруст на вид.

> Но он превзошёл все мои ожидания даже в версии 0.10.0-dev.

Да? А как насчет поддержки в GCC? Надоели уже с шлангом гребаным, половину архитектур он тупо не умеет, что как бы аргумент если вы что-то там про системное программирование :P

> Ребята очень заточены на безопасность, но в меру, без фанатизма, и на performance.

Вообще они адекватнее раста с их оголтелым маркетинговым булшитом и пиханием во все дыры на кривой козе. И с сями оно менее дурно стыкуется на вид.

> Уже добавили переносимые SIMD в язык (тип @Vector())

Пошли по пути хруста загаживать синтаксис новыми закорюками чтобы впихнуть все и вся? Си приколен тем что всем этим не занимается. Даже стандартная либа - опциональна напрочь. Поэтому напрогать на сях бутлоадер или фирмвару какую - ну, взял и напрогал. А на этом так вообще получится? Это такой джентльменский минимум чтобы что-то там пищать про системность.

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

255. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Аноним (53), 10-Апр-22, 02:05 
Никакого panic в Zig нет.

Вычисления в comptime - это одна из ключевых фич и особенностей языка.

Врядли оно взято из Rust, потому что сделано гораздо, на порядок лучше.

В Rust это какой-то язык макросов над AST, который несколько раз переписывался и был unstable.

В Zig - это обычный код на Zig.
comptime {
...zig code
}

Что может быть проще.

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

266. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (295), 10-Апр-22, 12:08 
> Вычисления в comptime - это одна из ключевых фич и особенностей языка.
> В Rust это какой-то язык макросов над AST, который несколько раз переписывался и был unstable.

Ну-ну.

const fn foo()
https://doc.rust-lang.org/reference/const_eval.html

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

269. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Аноним (53), 10-Апр-22, 14:39 
Ну-ну. А println как там имплементирован?)))
Ответить | Правка | Наверх | Cообщить модератору

270. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Аноним (53), 10-Апр-22, 14:51 
А, так вы вообще не понимаете и не разбираетесь о чём пишете.

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

Сравнивать надо с этим убожеством в виде макросов https://doc.rust-lang.org/src/std/macros.rs.html#96-101.

Что-то на нормальный Rust совсем не похоже.

Вот это сделать на Rust слабо?

https://github.com/ziglang/zig/blob/master/lib/std/comptime_...

Да, все generic, и comptime полиморфизм сделано в Zig гораздо лучше чем в Rust.

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

274. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (295), 10-Апр-22, 21:44 
> А, так вы вообще не понимаете и не разбираетесь о чём пишете.
> comptime используется гораздо шире, чем вычисление констант. Вы вообще не о том.  
> вычисление констант

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

> Сравнивать надо с этим убожеством в виде макросов https://doc.rust-lang.org/src/std/macros.rs.html#96-101.
> Что-то на нормальный Rust совсем не похоже.

Опять что-то придумал и оспорил. Молодец, так держать!

> Вот это сделать на Rust слабо?
> https://github.com/ziglang/zig/blob/master/lib/std/comptime_...

Надул щечки, будто сам лично писал.
Погоди, шнурки поглажу ...


#![allow(unused)]
#![feature(const_for)]
#![feature(const_fn_trait_bound)]
#![feature(const_mut_refs)]


struct KV<'a,T> {key:&'a str,val:T}
struct MyMap<'a,T> {kvs:&'a [KV<'a,T>]}

const fn get<T:Copy>(key:&'static str, map:MyMap<T>) -> Option<T> {
  
   for kv in map.kvs.into_iter() {
     if (kv.key == key) {return Some(kv.val)}
   }
   return None;
}


fn main() {
const a:KV<i32> = KV {key: "hello", val: 1};
const b:KV<i32> = KV {key: "foo", val: 2};
const c:KV<i32> = KV {key: "bar", val:100500};
const map:MyMap<i32> = MyMap{kvs: &[a,b,c]};
println!("foo = {}, bar = {}", get("foo",map).unwrap(), get("bar",map).unwrap_or(42));
}


Да, оно проверяет все _полностью_ в компайлтайме.

% rustc -O -Zunleash-the-miri-inside-of-you=yes const.rs
% ./const
foo = 2, bar = 100500

_ZN5const4main17hf11e025cf5259379E:
        .cfi_startproc
        sub     rsp, 88
        .cfi_def_cfa_offset 96
        mov     dword ptr [rsp], 2
        mov     dword ptr [rsp + 4], 100500
        mov     rax, rsp
        mov     qword ptr [rsp + 8], rax
        mov     rax, qword ptr [rip + _ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17h3319aa4b4b98306eE@GOTPCREL]
        mov     qword ptr [rsp + 16], rax
        lea     rcx, [rsp + 4]
        mov     qword ptr [rsp + 24], rcx
        mov     qword ptr [rsp + 32], rax
        lea     rax, [rip + .L__unnamed_1]
        mov     qword ptr [rsp + 40], rax
        mov     qword ptr [rsp + 48], 3
        mov     qword ptr [rsp + 56], 0
        lea     rax, [rsp + 8]
        mov     qword ptr [rsp + 72], rax
        mov     qword ptr [rsp + 80], 2
        lea     rdi, [rsp + 40]
        call    qword ptr [rip + _ZN3std2io5stdio6_print17h07b90b286b5e6a91E@GOTPCREL]
        add     rsp, 88
        .cfi_def_cfa_offset 8
        ret


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

277. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (53), 11-Апр-22, 03:36 
Код делает немного не то, что по ссылке. Точнее совсем не то.

Предположу что ещё с парой включенных фич можно сделать что нужно.

Неплохо для языка, в который влили тонну бабла. Правда в 1.0 это не вошло, как я понял.

Через 5 лет после появления умеет то что сделал бывший студент-программист из Орегона, по вечерам после работы в версии 0.6.0.

А теперь мы подошли к главной фиче Zig. Как из const fn вернуть тип? Например для параметра 1 (Mac OS) я хочу получить одну структуру (с одними полями и их типами), а для 2 (Linux) другую структуру (другие поля. Ну и пусть методы будут одинаковыми.

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

306. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (152), 15-Апр-22, 13:21 
О! Это то что я давно хотел получить от растоманов. Но они какой-то хней отмазывались.

Может я не туда смотрел. Можно ли пример, как подобное делается в zig?

Достаточно ссылочку и пару поясняющих фраз.

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

70. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (53), 08-Апр-22, 02:42 
Из интересного - alignment вшит в систему типов (указателя), поэтому туда-сюда указатели с разными alignment таскать не получится, только в безопасную сторону.

Я работаю с Direct I/O и там специальные требования к памяти.

Минус целый класс ошибок.

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

58. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (58), 08-Апр-22, 00:37 
Нет, выходные бинарники разгромные по размеру, а сборка ужасно медленная
Ответить | Правка | К родителю #50 | Наверх | Cообщить модератору

64. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 08-Апр-22, 01:27 
> Нет, выходные бинарники разгромные по размеру, а сборка ужасно медленная

А еще волосы на ладошках вырастут!


% rustc -O -C prefer-dynamic -C strip=symbols hello.rs && ll hello                
-rwxr-x---  1 аноним  аноним   6,4K  8 Apr. 07:26 hello

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

73. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Аноним (37), 08-Апр-22, 03:23 
Жырнота-то какая... это чтобы одну функцию вызвать?!
Ответить | Правка | Наверх | Cообщить модератору

76. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Бывалый смузихлёб (?), 08-Апр-22, 05:18 
А сборка точно статическая, со всем необходимым растохламом под капотом ?

А то ведь прошивка под мк - штука такая. И места немного и памяти немного и полноценной оси где бы можно было раскидать те либы - тоже часто нет

Да и 6 кб для вывода фразы в консоль в отсутствие либ под капотом - это тоже очень много

В былые времена когда тестировал раст, статическая сборка хэллоуворда весила сотни килобайт и это при максимальных оптимизациях и вырезании всевозможного мусора. А как только требовалось что-то бОльшее вывода в консоль - сборка жирела в разы
Что.. едва ли похоже на «суперЯП без издержек»

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

92. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (94), 08-Апр-22, 08:41 
> А сборка точно статическая, со всем необходимым растохламом под капотом ?

Glibc умеет в статическую сборку? Разве что musl.

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

104. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 08-Апр-22, 09:33 
Умеет, чего ему не?
Ответить | Правка | Наверх | Cообщить модератору

111. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (94), 08-Апр-22, 10:12 
Года два назад, вроде, прекратили поддержку статической сборки glibc.
Из-за лицензии и некоторых библиотек (libnss и тп).
Ответить | Правка | Наверх | Cообщить модератору

119. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 08-Апр-22, 11:39 
> А сборка точно статическая, со всем необходимым растохламом под капотом ?

А ты давно собирал статический хелловрот с стандартной либой?


% gcc -static -O2  -s  helloc.c && ls -lh a.out
-rwxr-x---  1 анон  анон   566K  8 Apr. 12:34 a.out

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

Стандартный бинарь под амд64, с pie и кучей секций по умолчанию-то? Не смеши мои тапки. Нолики выравнивания там, по большей части.

Idx Name          Size      VMA               LMA               File off  Algn
12 .text         000003c6  00000000002017b0  00000000002017b0  000007b0  2**4
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
13 .init         00000013  0000000000201b78  0000000000201b78  00000b78  2**2

% rustc -O -C prefer-dynamic -C strip=symbols -C relocation-model=static -C opt-level=s hello.rs && ll hello
-rwxr-x---  1 анон  анон   5,6K  8 Apr. 12:34 hello*
% gcc -O2  -s helloc.c && ls -lh a.out
-rwxr-x---  1 анон  анон   4,8K  8 Apr. 12:34 a.out*

> В былые времена когда тестировал раст, статическая сборка хэллоуворда весила сотни килобайт

Плохо набрас^W тестировал.
https://www.opennet.ru/openforum/vsluhforumID3/124921.html#322
$ ll hello
-rwxr-x---   496B 30 Jul. 12:41 hello*

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

170. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Бывалый смузихлёб (?), 08-Апр-22, 15:42 
так сколько в итоге весит хеллоуворд со статической типизацией ?
ну так, к слову о микроконтроллерах..
Ответить | Правка | Наверх | Cообщить модератору

171. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Бывалый смузихлёб (?), 08-Апр-22, 15:44 
> типизацией

не типизацией разумеется

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

172. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 08-Апр-22, 15:52 
> так сколько в итоге весит хеллоуворд со статической типизацией ?
> ну так, к слову о микроконтроллерах..

Какие цифры в 496B тебе не понятны? B=Byte, если что.


RUSTFLAGS="-O  -C relocation-model=static -C strip=symbols -C linker=ld.bfd" cargo build --release && ll target/release/hello
    Finished release [optimized] target(s) in 0.03s
-rwxr-x---  2 анон  анон   504B  8 Apr. 15:52 target/release/hello*


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

173. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 08-Апр-22, 15:54 

 
% RUSTFLAGS="-O  -C relocation-model=static -C strip=symbols -C linker=ld.bfd" cargo build
--release && ll target/release/hello
     Finished release [optimized] target(s) in 0.03s
-rwxr-x---  2 анон  анон   504B  8 Apr.
15:52 target/release/hello*

% ldd target/release/hello ; target/release/hello                                
ldd: target/release/hello: not a dynamic ELF executable
Hello World


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

181. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Бывалый смузихлёб (?), 08-Апр-22, 18:05 
> Какие цифры в 496B тебе не понятны? B=Byte, если что.
>
 
> RUSTFLAGS="-O  -C relocation-model=static -C strip=symbols -C linker=ld.bfd" cargo build
> --release && ll target/release/hello
>     Finished release [optimized] target(s) in 0.03s
> -rwxr-x---  2 анон  анон   504B  8 Apr.
> 15:52 target/release/hello*
>

Если итог статической столько - то уже весьма годно, да

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

60. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (37), 08-Апр-22, 00:49 
> микроконтроллеров

Вот уж где раст не валялся.

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

103. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 08-Апр-22, 09:32 
Валялся, но не слишком успешно. Он даже в кернеле линукса кусок проблем и костыле, а там и подавно.
Ответить | Правка | Наверх | Cообщить модератору

109. "Выпуск языка программирования Rust 1.60"  +2 +/
Сообщение от burjui (ok), 08-Апр-22, 09:56 
Бред сивой кобылы. Cortex M0 и M3 точно работают, и для кучи отладочных плат есть отдельные либы поверх базовых типа cortex-m. К слову, для STM32 либы генерятся автоматически по предоставляемым производителям файлам с описанием периферии. Но раз ты не слышал, как в лесу упало дерево, значит, дерева не существует, так ведь?
Ответить | Правка | К родителю #60 | Наверх | Cообщить модератору

135. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Аноним (135), 08-Апр-22, 12:41 
А зачем? Ардуина тоже поверх. А потом видим, как идиот крутит Cortex M7 для того, чтобы пошимить светодиодиком.
Ответить | Правка | Наверх | Cообщить модератору

140. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Аноним (124), 08-Апр-22, 12:51 
Учится же. Все же когда-то с азов начинали. Потом, глядишь, ЦОС на нём организует.
Ответить | Правка | Наверх | Cообщить модератору

182. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от burjui (ok), 08-Апр-22, 19:02 
Это чтобы юному падавану наговнять что-то по-быстрому. А настоящий джедай использует Силу - RTIC, ранее известный как RTFM: https://crates.io/crates/cortex-m-rtic
С этой штукой можно быстро сделать ОСРВ под конкретную плату, но регистры периферии придётся дёргать самому. RTIC только проследит, чтобы ты дёргал без гонок и только те, которые требуются конкретной задаче (task).
Ответить | Правка | К родителю #135 | Наверх | Cообщить модератору

221. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 09-Апр-22, 17:42 
> Бред сивой кобылы. Cortex M0 и M3 точно работают,

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

> Но раз ты не слышал, как в лесу упало дерево, значит, дерева не существует, так ведь?

side-effects отсутствуют - optimized out.
  

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

66. "Выпуск языка программирования Rust 1.60"  –3 +/
Сообщение от Аноним (135), 08-Апр-22, 02:09 
С учётом того, что по ходу миру потреб..дства приходит конец, идите в пень со своими NodeMCU, всрастами и прочими микропитонами в школу, тут все на Си и будет на Си, кроме как у любителей светодиодных лент и прочих пятиминутных ютубоваупоказалок.
Ответить | Правка | К родителю #50 | Наверх | Cообщить модератору

130. "Выпуск языка программирования Rust 1.60"  +2 +/
Сообщение от Аноним (124), 08-Апр-22, 12:26 
Приходит, разве что, только в Скрепной. И то, по причине санкций со всех сторон.
Ответить | Правка | Наверх | Cообщить модератору

133. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (135), 08-Апр-22, 12:38 
Когда заводы остановятся, тогда увидим.
Ответить | Правка | Наверх | Cообщить модератору

139. "Выпуск языка программирования Rust 1.60"  +2 +/
Сообщение от Аноним (124), 08-Апр-22, 12:48 
Ну опять же, остановятся у нас.
Ответить | Правка | Наверх | Cообщить модератору

159. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (159), 08-Апр-22, 14:40 
Если блеф перейдет в действия, то заводам не выгодно и не на чем будет работать. Вы не понимаете, что владельцы шведских столов готовы сократить бесконтрольное потребление ограниченных ресурсов планеты.
Ответить | Правка | Наверх | Cообщить модератору

169. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (124), 08-Апр-22, 15:16 
Так давно уже понятно, что самое действенное, чтобы сократить потребление ресурсов планеты - сократить скорость размножения потребителей ресурсов.
Ответить | Правка | Наверх | Cообщить модератору

222. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 09-Апр-22, 17:47 
> Приходит, разве что, только в Скрепной. И то, по причине санкций со всех сторон.

А что, у остальных память бесплатной стала и жирные микроконтроллеры раздают по ценам тощих? Невзирая на более крупный кристалл и меньший выход с вафли? А то при сколь-нибудь ощутимом тираже жаба таки задушит. Даже за 1 доллар.

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

88. "Выпуск языка программирования Rust 1.60"  +3 +/
Сообщение от Брат Анон (ok), 08-Апр-22, 08:02 
> Стоит ли учить сабж как хобби, для написания небольших утилит и программирования
> микроконтроллеров? Имею опыт только с Си. Или лучше в сторону Zig
> смотреть? Не знаю, что легче/приятнее использовать?

Смотрите в сторону Оберон-7. Учится за неделю. Многие вещи вам покажутся тупыми, но эта простота, которая даёт управляемость сложностью. А это выходит на первый план в текущей ситуации. Победят самые мелкие, А значит самые приспосабливаемые.
В конце-концов -- хелло ворлд на Оберон-7 имеет 2-6 кБ на больших железках и 2..3 сотни байт для микроконтроллеров. Переносимость софта снизу вверх абсолютная а задача бекпортирования на две платформы вниз практически никогда в чистом виде не возникает.

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

112. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от kitoboec (??), 08-Апр-22, 10:16 
Интересно, на лекциях по языкам программирования нам Паскаль разжевывали.
Синтаксис Оберона, объявление модулей констант похожи..
Ответить | Правка | Наверх | Cообщить модератору

132. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (132), 08-Апр-22, 12:37 
Да какой-то он не такой активный. Вон Zig сначала один человек писал, затем двое. Проект с нативной компиляцией, поддерживает гораздо больше архитектур и ОС, чем у текущих рабочих реализаций Оберона. Более того, собирается отказываться от llvm, насколько знаю.
Ответить | Правка | К родителю #88 | Наверх | Cообщить модератору

163. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Аноним (53), 08-Апр-22, 14:52 
Нет, не собирается. LLVM останется, как я понял. Просто сейчас компилятор написан на C++, будет написан self-hosted компилятор на Zig.

И как я понял можно будет отказаться / заменить LLVM. Но это для тестов или чего то ещё.

Для production отказываться от 15 лет инвестиций в оптимизации LLVM никто не собирается. Более того они активно пушат изменения обратно в LLVM, расширяя его границы и возможности.

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

176. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Брат Анон (ok), 08-Апр-22, 16:51 
> Да какой-то он не такой активный. Вон Zig сначала один человек писал,
> затем двое. Проект с нативной компиляцией, поддерживает гораздо больше архитектур и
> ОС, чем у текущих рабочих реализаций Оберона. Более того, собирается отказываться
> от llvm, насколько знаю.

Если вы считаете, что Оберон представлен недостаточным числом платформ -- то я недоумеваю.
Если Zig только собирается отказываться от LLVM, то Оберон с самого начала мог собирать сам себя, а остальные компиляторы, трансляторы и траспиляторы прикручены были позже. Так что этого фатального недостатка - оберон точно лишён))

Может ли Zig похвалиться тем, что сначала был написан он, а потом -- процессор под него? Как у Оберона?

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

179. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (132), 08-Апр-22, 17:17 
> Если вы считаете, что Оберон представлен недостаточным числом платформ -- то я недоумеваю.

Хочу прогать esp32. Подойдёт?
> Может ли Zig похвалиться тем, что сначала был написан он, а потом -- процессор под него?

А где можно этот процессор получить/купить?

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

205. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Брат Анон (ok), 09-Апр-22, 10:39 
> Хочу прогать esp32. Подойдёт?
>> Может ли Zig похвалиться тем, что сначала был написан он, а потом -- процессор под него?

На счёт esp32 -- не уверен. Надо смотреть бекэнды в компиляторе aix -- сам давно туда не лазил, может быть и есть. Также есть варианты написать прошивку на Обероне для транслятора "Восток" или SDCS. Оба умеют в Си.

> А где можно этот процессор получить/купить?

Покупаете плату FPGA Spartan-4 или старше (от 200 баксов), прошиваете схему (доступна на Project Oberon), подключаете клаву, мышу, VGA-монитор через штатные разъёмы и вуаля. Как вариант -- можете посмотреть на дальнего древнего родственника -- эмулятор "Кронос" (далеко не тупая машина была). Даёт хорошее представление о том, каким мог бы стать массовым 2х процессорный "ВоркСтейшн мейд ин ЮССаР" ещё в 1989 г. Если бы всё не пошло прахом.

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

223. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Аноним (-), 09-Апр-22, 17:51 
Ну вы сравнили 200 баксовый спартан с ESP за десятку. К тому же мышь, клава и HDMI какой на одноплатнике за ту же десятку будут сильно лучше, если нужно было именно это и не хотелось именно самому, именно VGA реализовывать (очень нишевое удовольствие).

> Если бы всё не пошло прахом.

Когда некто предлагает тул за 200 баксов вместо тула за 10 баксов, кто угодно прахом пойдет.

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

231. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Брат Анон (ok), 09-Апр-22, 22:07 
Тот, кто хочет -- ищет возможности.
Кто не хочет -- ищет причины.


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

244. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 10-Апр-22, 00:14 
Верно. Я хочу делать решения которые используются, с разумными параметрами на выходе. А вон то - очень узкоспециализированное. Самоцель "программить на чем-то" очень странная. Она не решает ни одной проблемы человечества, ни одной задачи. Ну карьера и заканчивается тремя странными конторами на выбор. А мир в целом пишет критичные системы, на сях, в многократно большем количестве. Конечно используя специфичные субдиалекты, правила и - главное - используя специфичные подходы к разработке. Вообще, там главное общие подходы, они от ЯП не сильно зависят. А верификаторы дополнительных критериев могут и внешними быть. В таком процессе все равно на каждое изменение гоняется куча верификаций, анализов и тестов чтобы любые отклонения от идеала ловить ДО того как что-то упадет, взорвется или въедет в стену.
Ответить | Правка | Наверх | Cообщить модератору

134. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Аноним (-), 08-Апр-22, 12:39 
Ты из секты Информатика-21. Бывал на вашем форуме, там  пасутся скушные тошнотворные зануды. Если у пацана нет высшего образования, то он не человек. Все сидят на Виндовсе, о Линуксах никто не шарит. Потопахин всё рыщет по интернету, угрожая судом всем, кто будет бесплатно раздавать его книги. Там какой-то Денис есть который не может осилить GTK+ для Blackbox. Унылое зрелище.

Посмотрел исходники на Обероне, ключевые слова языка пишутся ьлдбко большими буквами. Сам Никлаус даже не удосужился выпусть компилятор и библиотеки для GNU/Linux. Оберон создавался на платформа для OS Windows. ну он сейчас на пенсии, ему ничего не надо, благо когда-то полетал на российских МиГ-ах.

Скажи на бортовом оборудовании российских беспилотников и истребителей исходники на Обероне?

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

155. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Минона (ok), 08-Апр-22, 14:30 
> Скажи на бортовом оборудовании российских беспилотников и истребителей исходники на Обероне?

В одной Новосибирской конторе софт для спутников пишут на Модуле-2.

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

177. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Брат Анон (ok), 08-Апр-22, 16:53 
>> Скажи на бортовом оборудовании российских беспилотников и истребителей исходники на Обероне?
> В одной Новосибирской конторе софт для спутников пишут на Модуле-2.

И в одной московской, если что. И эта московская контора -- прям контора контора.
https://ru.wikipedia.org/wiki/%D0%98%D0%...

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

188. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Минона (ok), 08-Апр-22, 20:18 
Не спорю, я слышал только про новосибирцев.
Ещё знаю что на BBCB написана система управления каскадом ГЭС на Амазонке.  
Ответить | Правка | Наверх | Cообщить модератору

206. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Брат Анон (ok), 09-Апр-22, 10:42 
> Не спорю, я слышал только про новосибирцев.
> Ещё знаю что на BBCB написана система управления каскадом ГЭС на Амазонке.

И процессинговый софт Дойче Банка. Тоже норм так нагрузка и требования к надёжности. А если немного погуглить -- можно найти сайт одной голландской компании которая делает заказные SCADA-системы со всеми требованиями критической надёжности.

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

229. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Минона (ok), 09-Апр-22, 20:06 
О как!
Кстати, раз ты в теме.
Давно не был на форуме оберонкоре.
Как в ВВСВ обстоят дела с многопотоком?
Ответить | Правка | Наверх | Cообщить модератору

232. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Брат Анон (ok), 09-Апр-22, 22:15 
> О как!
> Кстати, раз ты в теме.
> Давно не был на форуме оберонкоре.
> Как в ВВСВ обстоят дела с многопотоком?

Прямо здесь и сейчас -- Дагаев реализовал очень грамотный кооперативный планировщик (в одном потоке). От орловской группы уже довольно давно есть компромисс в виде запуска нескольких BB в разных процессах с общением через шаред мемори. Есть решение однозначно рабочее от красноярцев с запуском ВВ на кластере.

В-общем, чистой многопоточности как в го нет, но вопрос решаемый. Возможно, я что-то упустил или не знаю. Активе Оберон со своими потоками и плоским адресным пространством стоит несколько особняком, но вариант вполне рабочий.

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

262. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Минона (ok), 10-Апр-22, 10:03 
Ок, почти ничего не поменялось за 15+ лет.
Полазил по oberon.org, у bbcb какой-то разброд версий: чисто под винду - 1.7, кроссплатформ - 1.8, 2.0.
Какая из них является production ready  ?
У кроссплатформ GUI на чем ?
Ответить | Правка | Наверх | Cообщить модератору

265. "Выпуск языка программирования Rust 1.60"  +2 +/
Сообщение от Брат Анон (ok), 10-Апр-22, 11:41 
> Ок, почти ничего не поменялось за 15+ лет.

Когда я вижу комментарий в духе "Ок, почти ничего не поменялось за 15+ лет." -- я только рад. Это значит технологии совершенны, не требуют доработок, смузихлёбы не понабежали.

> Полазил по oberon.org, у bbcb какой-то разброд версий: чисто под винду -
> 1.7, кроссплатформ - 1.8, 2.0.
> Какая из них является production ready  ?
> У кроссплатформ GUI на чем ?

Берите свеженькую -- не ошибётесь. Практически все версии production ready -- в этом главный смысл. Смена номера версии вызвана изменениями в Kernel, которые разумеется -- несовместимы. Если бы вы знали как работают Обероны, то знали бы, что вообще всё на Оберонах стараются делать ни на чём. Т.е. на Обероне. BBCB, Active Oberon и т. п. -- это полноценные (мини) операционные системы, замыкающая всё необходимое на себя -- принцип герметизации (буквально, как на подводной лодке). Разумеется, есть выходы на внешнюю систему (лично довелось подключать виндовую DLL -- работает идеально), но в мире Оберонов не рекомендуется так делать по причине снятия почти всех гарантий. Именно так достигается максимальная переносимость и надёжность.

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

285. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Минона (ok), 11-Апр-22, 16:36 
> Это значит технологии совершенны

Кооперативная многозадачность это совершенная технология?

> Если бы вы знали как работают Обероны, то знали бы, что вообще всё на Оберонах стараются делать ни на чём.

Я ими интересовался в 2005 +/- год.
Я имел ввиду как в Линукс версии BBCB отрисовывается графика - GTK, QT, SDL … ?

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

290. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Брат Анон (ok), 12-Апр-22, 07:48 
>> Это значит технологии совершенны
> Кооперативная многозадачность это совершенная технология?

В ряде задач -- это идеальное решение. Я только не понял, какое это имеет отношение к Оберону?

>> Если бы вы знали как работают Обероны, то знали бы, что вообще всё на Оберонах стараются делать ни на чём.
> Я ими интересовался в 2005 +/- год.
> Я имел ввиду как в Линукс версии BBCB отрисовывается графика - GTK,
> QT, SDL … ?

Признайтесь, вы мой ответ не читали. Я вроде ясно дал понять: никак. Если захотите -- есть вариант SDL, если захотите -- GTK. Но в мире Оберонов так не принято.

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

297. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Минона (ok), 12-Апр-22, 20:27 
> В ряде задач -- это идеальное решение.

Например?

> Я только не понял, какое это имеет отношение к Оберону?

Непосредственно к оберону никакого.
Мне интересно как писать многопоточку в ВВСВ.
А да, ещё забыл, х64 поддерживается или только х32?

> Признайтесь, вы мой ответ не читали. Я вроде ясно дал понять: никак. Если захотите -- есть вариант SDL, если захотите -- GTK. Но в мире Оберонов так не принято.

Пардон, Вы дурачком прикидываетесь?
Повторю простой вопрос: как в Линукс  версии ВВСВ выводится графика?

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

301. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Брат Анон (ok), 13-Апр-22, 10:23 
>> В ряде задач -- это идеальное решение.
> Например?

Последовательный однотипный перебор входов датчиков.

>> Я только не понял, какое это имеет отношение к Оберону?
> Непосредственно к оберону никакого.
> Мне интересно как писать многопоточку в ВВСВ.
> А да, ещё забыл, х64 поддерживается или только х32?

Берёте OpenMP (привязки есть) и пишите.
Я правильно понимаю, что вам лишь бы языком потрепаться? Потому что, если бы вы хотели, то давно бы знали, что существует компилятор х64 -- об этом на сайте написано большими буквами.

>> Признайтесь, вы мой ответ не читали. Я вроде ясно дал понять: никак. Если захотите -- есть вариант SDL, если захотите -- GTK. Но в мире Оберонов так не принято.
> Пардон, Вы дурачком прикидываетесь?
> Повторю простой вопрос: как в Линукс  версии ВВСВ выводится графика?

Пардон, вы дурачок. Я вам третий раз пишу: в Обероне принято всё делать силами самого Оберона.
Не желаете герметизации, нет проблем: можете взять SDL 1/2, можете взять GTK, можете взять Cairo. Вариантов тонны. Как захотите -- так и будет.

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

304. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Минона (ok), 14-Апр-22, 09:46 
Ок. Вы сами нифига не знаете.
Ответить | Правка | К родителю #301 | Наверх | Cообщить модератору

230. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Минона (ok), 09-Апр-22, 21:15 
А вот по поводу критической надежности.
В соседей теме чел про SPARK задвигает.
Сталкивался с этим языком?
Ответить | Правка | К родителю #206 | Наверх | Cообщить модератору

233. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Брат Анон (ok), 09-Апр-22, 22:19 
> А вот по поводу критической надежности.
> В соседей теме чел про SPARK задвигает.
> Сталкивался с этим языком?

Я даже могу предположить фамилию этого чела. Рыбин.

Всегда по СПАРКу два вопроса и на один из них ответ уже печальный:
1) Что будет, если вдруг запретят экспорт технологии в Россию?
2) Всё у вас сертифицированное и куча тестов. А кто сертифицировал gcc, в который вы транслируете код? Какие гарантии, что ваш танк надёжности не провалится сквозь тонкий лёд инфраструктуры?

А так СПАРК сам по себе не дурён, толковые ребята делают. Но, политика, жирнючий всё такое. Тут перспективы далеко не радужные.

Для атомной промышленности -- вопрос когнитивной управляемости, зависимость от вендоринга -- это вопрос жизни и второй Фукусимы. Оберон здесь явно выигрывает.

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

245. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 10-Апр-22, 00:25 
> 2) Всё у вас сертифицированное и куча тестов. А кто сертифицировал gcc,
> в который вы транслируете код? Какие гарантии, что ваш танк надёжности
> не провалится сквозь тонкий лёд инфраструктуры?

Тот же кто сертифицировал ваш здоровенный спартан с черти-чем залитым в него.

> Оберон здесь явно выигрывает.

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

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

263. "Выпуск языка программирования Rust 1.60"  +2 +/
Сообщение от Брат Анон (ok), 10-Апр-22, 11:31 
> Тот же кто сертифицировал ваш здоровенный спартан с черти-чем залитым в него.

Сернтифицированных спартанов в России не существует. Спартан-4 может купить студент в любой стране мира, по нынешним меркам -- это крайне слабая железка. Не нравится отсутствие сертификации спартана-4 -- скачайте эмулятор Project Oberon и можете самостоятельно проверить исходники -- всё доступно, и что важно в наших условия -- бесплатно. Так что, вы что-то перепутали.

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

Определялось очень просто: способность в одну голову написать компилятор. Чем проще -- тем надёжней, повторимей, переносимей. Победят в ближайшем будущем те языки, у которых минимальное количество грамматик РБНФ, максимум структурированности, максимум гарантий, минимальное число возможностей позволить программисту сделать глупость. Это Оберон, в существенно меньшей степени Go, и живой труп Rust.
Серебряная пуля существует, но кроме неё есть и калибр, и условия стрельбы и тот кто такой пулей стреляет. Все эти вопросы на 80% сейчас решены. Для оставшихся 20% -- специальные приспособы для аппарата стрельбы и прокачка скилов у стреляющего.

Невозможно создать более прочную цепь, чем самое слабое звено в ней. Здесь вы точно не правы.

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

286. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Минона (ok), 11-Апр-22, 16:51 
> максимум гарантий,

Гарантий чего?

> минимальное число возможностей позволить программисту сделать глупость. Это Оберон, в существенно меньшей степени Go, и живой труп Rust.

Rust по этому критерию на 1 месте.

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

291. "Выпуск языка программирования Rust 1.60"  +2 +/
Сообщение от Брат Анон (ok), 12-Апр-22, 07:51 
>> максимум гарантий,
> Гарантий чего?

Того, что компилятор не сделает вам больно.

>> минимальное число возможностей позволить программисту сделать глупость. Это Оберон, в существенно меньшей степени Go, и живой труп Rust.
> Rust по этому критерию на 1 месте.

Нет, на последнем. Сначала напишите компилятор Раста своими руками -- потом мы вернёмся к этому разговору.

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

296. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Минона (ok), 12-Апр-22, 20:12 
Нет, на первом.
Зачем мне писать компилятор раста?
Он уже написан и отлично бьет по рукам не давая писать хрень.

// сколько компиляторов оберона вы написали?

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

300. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Брат Анон (ok), 13-Апр-22, 10:19 
> Нет, на первом.
> Зачем мне писать компилятор раста?
> Он уже написан и отлично бьет по рукам не давая писать хрень.

Затем, что то, что нельзя повторить самому -- неповторяемо.

> // сколько компиляторов оберона вы написали?

Ни одного. Но если потребуется -- будьте спокойны.

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

303. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Минона (ok), 14-Апр-22, 09:43 
> Затем, что то, что нельзя повторить самому -- неповторяемо.

Замечательная логика.
Может мне ещё процессор свой забуилдить?

> Ни одного. Но если потребуется -- будьте спокойны.

Ну понятно.

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

305. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Брат Анон (ok), 14-Апр-22, 13:20 
> Может мне ещё процессор свой забуилдить?

Ты так это написал, как-будто в этом есть что-то плохое.

>> Ни одного. Но если потребуется -- будьте спокойны.
> Ну понятно.

Зачем мне лично писать компилятор, если реализаций в одно лицо и так уже достаточно.
Но если потребуется -- напишу. Оберон не Раст. 70к строк вполне одолеть можно.

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

261. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Минона (ok), 10-Апр-22, 09:40 
Аргументы понятны.
Про Фукусиму не понял, там же землетрясение было причиной.
Ответить | Правка | К родителю #233 | Наверх | Cообщить модератору

264. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Брат Анон (ok), 10-Апр-22, 11:33 
> Аргументы понятны.
> Про Фукусиму не понял, там же землетрясение было причиной.

Ну конечно землетрясение. Правда, рядом в 8 км есть ещё одна атомная станция. Там всё норм, но вы не понимаете -- это другое. Ну, правда, Фукусиму строили американцы на отъ... побыстрее сдать ,а вторую станцию строили японцы, в полной мере понимая, каким фейерверком может всё это закончиться. Годы примерно одинаковые, технология строительства примерно одинаковая.

А когда цены вверх растут -- оно тоже само. И когда пенсионный возраст повышают -- оно тоже само. И когда спецоперация на Украине -- ну конечно это было неизбежно. Вложить 240 подаренных миллиардов в виде скидок на газ Украине в агитацию дружбы народов? Не, бред какой-то! Конечно спецоперация!

Землетрясение -- это внешний прогнозируемый фактор. И то, что станция не устояла -- это жадность капитала, а не землетресение. Не путайте тёплое с мягким.

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

287. "Выпуск языка программирования Rust 1.60"  –3 +/
Сообщение от Минона (ok), 11-Апр-22, 17:08 
>> Аргументы понятны.
>> Про Фукусиму не понял, там же землетрясение было причиной.
> Ну конечно землетрясение. Правда, рядом в 8 км есть ещё одна атомная
> станция. Там всё норм, но вы не понимаете -- это другое.
> Ну, правда, Фукусиму строили американцы на отъ... побыстрее сдать ,а вторую
> станцию строили японцы, в полной мере понимая, каким фейерверком может всё
> это закончиться. Годы примерно одинаковые, технология строительства примерно одинаковая.

То есть конструкция хреновая и виноваты сша. А зачем вы ее помянули в контексте софта?
Я уж думал там софт кривой и его надо было на Оберон написать 😏

> А когда цены вверх растут -- оно тоже само. И когда пенсионный
> возраст повышают -- оно тоже само. И когда спецоперация на Украине
> -- ну конечно это было неизбежно. Вложить 240 подаренных миллиардов в
> виде скидок на газ Украине в агитацию дружбы народов? Не, бред
> какой-то! Конечно спецоперация!

Смешались в кучу люди, кони…
Какое отношение все это имеет к ЯП?

> Землетрясение -- это внешний прогнозируемый фактор. И то, что станция не устояла
> -- это жадность капитала, а не землетресение. Не путайте тёплое с
> мягким.

Точно прогнозируемое и жадность капитала виновата?
А если в результате землетрясения часть суши уйдёт под воду это тоже жадность чья-то будет виновата?

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

292. "Выпуск языка программирования Rust 1.60"  +2 +/
Сообщение от Брат Анон (ok), 12-Апр-22, 08:59 
>  То есть конструкция хреновая и виноваты сша. А зачем вы ее
> помянули в контексте софта?
> Я уж думал там софт кривой и его надо было на Оберон
> написать 😏

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

> Смешались в кучу люди, кони…
> Какое отношение все это имеет к ЯП?

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


> Точно прогнозируемое и жадность капитала виновата?

Точно прогнозируемое и точно жадность капитала виновта. Ещё раз: в 8 км рядом есть по классу такая же атомная станция.

> А если в результате землетрясения часть суши уйдёт под воду это тоже
> жадность чья-то будет виновата?

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

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

278. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Someone (??), 11-Апр-22, 04:45 
Zig не взлетит)).

Zig конечно можно изучить для интереса, но смысла в этом думаю нет.

Основная проблема Zig в том что **он не имеет особых преимуществ перед C**.

Да он чуть более безопасен, но именно что чуть. А из-за небольших изменений в гарантиях безопасности при переходе с языка C на язык Zig никто ***не будет переписывать сотни тысяч legacy кода***. Мож все также писать на C.

То есть его судьба уже предрешена -- это стать забытым языком, хотя он этого пока не знает)).

Что касается скорости, то C, C++, Rust и Zig обладают одинаковым потенциалом вплоть до переписывания всего на чистый ассемблер)). Так что и в этом Zig-у крыть нечем.

Все таки основная причина того что Rust взлетел -- это его гарантии безопасности. Реально доставляет удовольствие, что то что скомпилировалось, с 90 процентным успехом будет делать то что должно)).

Да эти гарантии безопасности можно обойти, но зачем? Можно чуть подумать и вдруг окажется что и unsave не нужен.

Да бог с ним с однопоточным кодом. Так то можно наверное и не париться с более сложным синтаксисом Rust. Но вот где ему нет равных -- **это асинхронный и многопоточный код**!

То как Rust не дает сделать ошибку в многопотоке и асинхронке не передать)). Если что не так, то он просто не скомпилируется, в отличии от C, C++, Zig, где компиляция еще не гарантия успеха, а нахождение места где засела ощибка сродни танцам с бубном.

Так что да, сравнивать Zig с Rust просто смешно 😅

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

57. "Выпуск языка программирования Rust 1.60"  +2 +/
Сообщение от Аноним (57), 08-Апр-22, 00:36 
Лично мне не особо rust нравится, но кто мы такие, чтобы выбирать, если глобальные "корпорации добра" даже опенсурс взяли за сами знаете что. Сидите и не рыпайтесь пользуйтесь rust,mono,chromium, github и т.д. Вот и приходится пользоваться тем, что есть. Один человек не способен написать/переписать тонны кода под себя, только если он не миллиардер либо бессмерный с кучей времени. Я люблю лпенсурс, но что с ним творится в последние годы категорически не приветсвую.
Ответить | Правка | Наверх | Cообщить модератору

59. "Выпуск языка программирования Rust 1.60"  +2 +/
Сообщение от Аноним (37), 08-Апр-22, 00:47 
> приходится пользоваться

А можно взять - и не пользоваться этим. Кто заставляет, например, делать сайты только под растаманьского фурифокса?

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

67. "Выпуск языка программирования Rust 1.60"  +5 +/
Сообщение от Аноним (135), 08-Апр-22, 02:22 
> Я люблю опенсурс, но что с ним творится в последние годы категорически не приветствую

Истину глаголишь.
Стэковерфлоу-программирование забыл упомянуть.
С учётом текущих событий с Firefox, Qt, дистрибутивами, СПО показало свою свободную шизоидную подчинённость. Ибо когда мальчик считает себя девочкой это не свобода мысли, это шизофрения, синоним либерализма.

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

74. "Выпуск языка программирования Rust 1.60"  –2 +/
Сообщение от Аноним (37), 08-Апр-22, 03:28 
> когда мальчик считает себя девочкой

Это одна из форм анархизма.

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

78. "Выпуск языка программирования Rust 1.60"  +3 +/
Сообщение от Бывалый смузихлёб (?), 08-Апр-22, 05:20 
*это лишь косвенное следствие невозможности устроиться в обществе с нынешним полом
Что едва ли похоже на нормальное общество «без сексизма»
Ответить | Правка | Наверх | Cообщить модератору

89. "Выпуск языка программирования Rust 1.60"  –2 +/
Сообщение от Брат Анон (ok), 08-Апр-22, 08:06 
>> когда мальчик считает себя девочкой
> Это одна из форм анархизма.

Покажите мне, где такое написано у Кропоткина?

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

101. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Аноним (-), 08-Апр-22, 09:31 
У него что, монополия на анархизм?
Ответить | Правка | Наверх | Cообщить модератору

175. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Брат Анон (ok), 08-Апр-22, 16:47 
> У него что, монополия на анархизм?

В сущности -- да. В России другие варианты анархизма  в силу национального менталита не приживутся.

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

224. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 09-Апр-22, 17:53 
> В сущности -- да. В России другие варианты анархизма  в силу
> национального менталита не приживутся.

Ух, какой запущенный случай...

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

237. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (37), 09-Апр-22, 23:12 
> у Кропоткина

Он - единственный анархист в мире?! Ну тогда я тебя удивлю, что и зелёные, и феминистки - это тоже варианты анархизма.

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

79. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от qwe (??), 08-Апр-22, 05:59 
Кто платит тот и танцует. Мир там же где и был всегда.
Ответить | Правка | К родителю #67 | Наверх | Cообщить модератору

86. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от ryoken (ok), 08-Апр-22, 07:55 
>>Мир там же где и был всегда.

Чушь. Даже если не учитывать вращение Земли по орбите вокрус Солнца - есть ещё и вращение Галактики (период примерно 220-250 миллионов лет, точнее не помню). Да и во Вселенной нет ничего неподвижного.

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

90. "Выпуск языка программирования Rust 1.60"  +2 +/
Сообщение от Брат Анон (ok), 08-Апр-22, 08:07 
>>>Мир там же где и был всегда.
> Чушь. Даже если не учитывать вращение Земли по орбите вокрус Солнца -
> есть ещё и вращение Галактики (период примерно 220-250 миллионов лет, точнее
> не помню). Да и во Вселенной нет ничего неподвижного.

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

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

91. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от ryoken (ok), 08-Апр-22, 08:09 
> Кто гравитацию обеспечивает, тот звёзды со скоплениями и крутит.

И кто же этим занимается в межгалактическом пространстве?

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

93. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (94), 08-Апр-22, 08:51 
Ньютон, с поправками от Эйнштейна
Ответить | Правка | Наверх | Cообщить модератору

129. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от ryoken (ok), 08-Апр-22, 12:22 
> Ньютон, с поправками от Эйнштейна

Прям лично? Хотел бы я это увидеть :). Сэр Айзек в межгалактическом пространстве. Холст, масло :).

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

236. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (37), 09-Апр-22, 23:09 
Тёмная материя/энергия вертели ОТО в прямом смысле.
Ответить | Правка | К родителю #93 | Наверх | Cообщить модератору

108. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от kitoboec (??), 08-Апр-22, 09:53 
А кто же все-таки свет включил?

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

136. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Аноним (124), 08-Апр-22, 12:42 
Ильич
Ответить | Правка | Наверх | Cообщить модератору

234. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Аноним (37), 09-Апр-22, 23:06 
Популист. Кабельные заводы уже были, когда он под столом ползал.
Ответить | Правка | Наверх | Cообщить модератору

288. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Минона (ok), 11-Апр-22, 17:14 
> Популист. Кабельные заводы уже были, когда он под столом ползал.

Были, но не для крестьян и рабочих.

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

294. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (293), 12-Апр-22, 11:26 
в деревнях свет где-то в 50-х только появился, а при Ленине (и чуть далее) с лучиной так и сидели.
Ответить | Правка | Наверх | Cообщить модератору

149. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Аноним (124), 08-Апр-22, 13:49 
>Ибо когда мальчик считает себя девочкой это не свобода мысли, это шизофрения

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

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

216. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Аноним (26), 09-Апр-22, 16:36 
Какие преимущества?
Ответить | Правка | Наверх | Cообщить модератору

235. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (37), 09-Апр-22, 23:08 
Занять должность по квоте, а не по навыкам.
Ответить | Правка | Наверх | Cообщить модератору

100. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 08-Апр-22, 09:30 
> независимой некоммерческой организации Rust Foundation.

Независимая? Некоммерческая?! А что насчет директоров в совете от Microsoft, Google и AWS?!?

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

118. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Янис (?), 08-Апр-22, 11:37 
По ходу хотят прибрать под контроль Линукс. Надеюсь, найдется сообщество, которое будет развивать свою версию ядра Линукс, без Раста.
Ответить | Правка | Наверх | Cообщить модератору

120. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Анонн (?), 08-Апр-22, 11:45 
Хаха, не смеши мои тапочки.
Нынешнее "сообщество" даже этот линукс развивать не в состоянии. Почитай отчеты Linux Foundation - сколько у них разрабов на зарплате корпов, а сколько "общественников"
Ответить | Правка | Наверх | Cообщить модератору

138. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Аноним (124), 08-Апр-22, 12:46 
Ну если из ядра повыкидывать многого, нужного корпам. Останется не сильно больше, чем у xBSD, не считая драйверов.
Ответить | Правка | Наверх | Cообщить модератору

162. "Выпуск языка программирования Rust 1.60"  +2 +/
Сообщение от Минона (ok), 08-Апр-22, 14:45 
Если из ядра повыкидывать все что туда накодили корпорации, останется первоначальная студподелка Линуса.
Ответить | Правка | Наверх | Cообщить модератору

167. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (124), 08-Апр-22, 15:07 
Например, планировщики и сетевой стек выкидывать нет небходимости, они нужны.
Ответить | Правка | Наверх | Cообщить модератору

187. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Минона (ok), 08-Апр-22, 20:15 
> Например, планировщики и сетевой стек выкидывать нет небходимости, они нужны.

Нет уж, будь последовательным - выкидывай все что накодили корпорасты.

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

144. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Янис (?), 08-Апр-22, 13:31 
Есть версия ядра Linux-libre, от куда повыкидывали все несвободное.
Ответить | Правка | К родителю #120 | Наверх | Cообщить модератору

146. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Анонн (?), 08-Апр-22, 13:39 
Я не про свободное/закрытое. Если сидит чел на зарплате AMD и пилит GPUOpen-Drivers - то не важно открытые они или нет, важно что на бабло "злой корпорации AMD". И без них этих дров не было бы. Может были бы другие - скорее всего за чужие деньги и явно в другом объеме.
И так с большинством вещей, не только с дровами. Посмотришь кто что пилит - а там практически одни люди на зарплате Intel, AMD, Oracle, RedHat и т.д.
Ответить | Правка | Наверх | Cообщить модератору

247. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 10-Апр-22, 00:33 
> GPUOpen-Drivers - то не важно открытые они или нет, важно что
> на бабло "злой корпорации AMD".

Это может говорить только человек совершенно не разбирающийся в Linux и процессах вокруг. Так, поржать, АМД забило на свои потуги блобмейкерства, ВЗЯЛИ ОТКРЫТЫЙ РЕВЕРСНУТЫЙ RADEON, форкнули его, переобозвали регистры железа так как их называет HW TEAM наконец, и вот это вот - и есть amdgpu. А кодеры "radeon" были наняты в "amd" делать то что и делали. Только им теперь HW TEAM стал доступен и вот прямо сразу из сорцов железа хидеры с регистрами на автомате генерит.

Без комьюнити радеона - это было бы невозможно. А так вон интеловский Daniel Vetter, стоило ему только захотеть, не только покинул интел в момент - но и тут же получил предложение "работа мечты". Из другой фирмы но он продолжит заниматься тем чем занимался. Т.е. графической подсистемой и драйверами GPU. А то что в его жизни будет чуть меньше интела вообще не баг а фича. Интел для линуксоидов - так себе фирма.

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

225. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 09-Апр-22, 17:55 
> Foundation - сколько у них разрабов на зарплате корпов, а сколько
> "общественников"

Есть более интересный критерий. Посмотреть коммиты по выходным. В линух коммитят, при том часто те кто на зарплате. А что, они этим раньшие и бесплатно занимались. А тут им еще и платят чтобы они фултайм могли так же. Это типа плохо? Лучше признайтесь что вы им просто завидуете - не всем платят за любимое дело, это да.

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

123. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Аноним (-), 08-Апр-22, 11:48 
> По ходу хотят прибрать под контроль Линукс.

Давно в совет директоров Linux Foundation заглядывал?

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

117. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Янис (?), 08-Апр-22, 11:35 
Не хорошо все это выглядит со стороны. Какой там безопасный язык? Какие там драйвера на нем? Шутите что-ли?
Ответить | Правка | Наверх | Cообщить модератору

183. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от burjui (ok), 08-Апр-22, 19:11 
Вот он, типичный хейтер - демагог: комментарий написал, но, по сути, ничего не сказал. Хоть бы писать научился, если так хочется обгадить ЯП, на котором не пишешь.
Ответить | Правка | Наверх | Cообщить модератору

156. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Аноним (156), 08-Апр-22, 14:37 
Чет уже плюсы по сложности переплюнул
Ответить | Правка | Наверх | Cообщить модератору

203. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от ilowryemail (?), 09-Апр-22, 09:47 
И это ещё только начало.
Ответить | Правка | Наверх | Cообщить модератору

258. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (37), 10-Апр-22, 06:06 
Это такая стратегия, чтобы бесконечно задрать порог вхождения.
Ответить | Правка | К родителю #156 | Наверх | Cообщить модератору

166. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от InuYasha (??), 08-Апр-22, 15:04 
Пришёл за листингом LibSrutch. Почти собралось )
Ответить | Правка | Наверх | Cообщить модератору

174. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (75), 08-Апр-22, 16:13 
Хочу собрать zola. Что он от меня хочет?

   Compiling csv-core v0.1.10
   Compiling num_cpus v1.13.1
   Compiling time v0.1.43
   Compiling getrandom v0.2.4
   Compiling time v0.3.6
   Compiling filetime v0.2.15
   Compiling socket2 v0.4.3
error[E0412]: cannot find type `ip_mreqn` in crate `libc`
    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/socket2-0.4.3/src/sys/unix.rs:1013:12
     |
1013 |   ) -> libc::ip_mreqn {
     |              ^^^^^^^^ help: a struct with a similar name exists: `ip_mreq`
     |
    ::: /root/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.113/src/unix/bsd/netbsdlike/openbsd/mod.rs:50:1
     |
50   | / s! {
51   | |     pub struct glob_t {
52   | |         pub gl_pathc:   ::size_t,
53   | |         pub gl_matchc:  ::size_t,
...    |
419  | |     }
420  | | }
     | |_- similarly named struct `ip_mreq` defined here

error[E0422]: cannot find struct, variant or union type `ip_mreqn` in crate `libc`
    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/socket2-0.4.3/src/sys/unix.rs:1015:75
     |
1015 |           crate::socket::InterfaceIndexOrAddress::Index(interface) => libc::ip_mreqn {
     |                                                                             ^^^^^^^^ help: a struct with a similar name exists: `ip_mreq`
     |
    ::: /root/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.113/src/unix/bsd/netbsdlike/openbsd/mod.rs:50:1
     |
50   | / s! {
51   | |     pub struct glob_t {
52   | |         pub gl_pathc:   ::size_t,
53   | |         pub gl_matchc:  ::size_t,
...    |
419  | |     }
420  | | }
     | |_- similarly named struct `ip_mreq` defined here

error[E0422]: cannot find struct, variant or union type `ip_mreqn` in crate `libc`
    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/socket2-0.4.3/src/sys/unix.rs:1020:77
     |
1020 |           crate::socket::InterfaceIndexOrAddress::Address(interface) => libc::ip_mreqn {
     |                                                                               ^^^^^^^^ help: a struct with a similar name exists: `ip_mreq`
     |
    ::: /root/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.113/src/unix/bsd/netbsdlike/openbsd/mod.rs:50:1
     |
50   | / s! {
51   | |     pub struct glob_t {
52   | |         pub gl_pathc:   ::size_t,
53   | |         pub gl_matchc:  ::size_t,
...    |
419  | |     }
420  | | }
     | |_- similarly named struct `ip_mreq` defined here

Some errors have detailed explanations: E0412, E0422.
For more information about an error, try `rustc --explain E0412`.
error: could not compile `socket2` due to 3 previous errors
warning: build failed, waiting for other jobs to finish...
error: build failed

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

180. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Анонн (?), 08-Апр-22, 17:46 
Ты бы хоть версии раста, системы написал.
У них есть инструкция по сборке из сорцов, может стоит заглянуть туда https://www.getzola.org/documentation/getting-started/instal...
Ответить | Правка | Наверх | Cообщить модератору

189. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Аноним (75), 08-Апр-22, 20:38 
rust 1.59, openbsd snapshots amd64, по этой инструкции и собирал. собирается, собирается, доходит до sockets и не собирается. кстати, мне встроенный сервер и не нужен, как его сборку отключить?
Ответить | Правка | Наверх | Cообщить модератору

238. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Анонн (?), 09-Апр-22, 23:40 
По openbsd не подскажу, сори.
А почему именно из исходников? Там что-то исправлялось?
Просто есть же OpenBSD офф пакет:
$ doas pkg_add zola
(https://www.getzola.org/documentation/getting-started/instal...)
Ответить | Правка | Наверх | Cообщить модератору

257. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Аноним (37), 10-Апр-22, 06:05 
> есть же OpenBSD офф пакет

А вот тут вопрос: как его собирали, и его ли собирали, если он не собирается?

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

268. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Аноним (295), 10-Апр-22, 12:18 
>> есть же OpenBSD офф пакет
> А вот тут вопрос: как его собирали, и его ли собирали, если он не собирается?

Не, тут вопрос: зачем ты решил метанизировать лужу, абсолютно не разбираясь в теме?
https://openports.se/www/zola

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

275. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (75), 11-Апр-22, 01:42 
> По openbsd не подскажу, сори.
> А почему именно из исходников? Там что-то исправлялось?
> Просто есть же OpenBSD офф пакет:
> $ doas pkg_add zola
> (https://www.getzola.org/documentation/getting-started/instal...)

оф пакет версия 0.10, а сейчас уже 0.15

тема с офсайта у меня не подключилась

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

197. "Выпуск языка программирования Rust 1.60"  +5 +/
Сообщение от Минона (ok), 08-Апр-22, 22:30 
« Согласно данным «Лаборатории Касперского», новая группировка уже атаковала значительное число компаний по всему миру. В своей работе BlackCat используют малораспространенный язык программирования Rust, что серьезно замедляет разработку «противоядий» от заражений. »
https://m.lenta.ru/news/2022/04/08/meow/
Ответить | Правка | Наверх | Cообщить модератору

282. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (-), 11-Апр-22, 12:06 
Для того, чтобы эту группировку поймать, достаточно вместо слива яндекс.еды использовать слив продаж дилдо.
Ответить | Правка | Наверх | Cообщить модератору

198. "Выпуск языка программирования Rust 1.60"  +6 +/
Сообщение от Аноним (198), 08-Апр-22, 22:33 
curl|sh - это безопасно.
Ответить | Правка | Наверх | Cообщить модератору

202. "Выпуск языка программирования Rust 1.60"  +4 +/
Сообщение от Аноним (37), 09-Апр-22, 08:22 
да это просто шедевр от растамагов!
Ответить | Правка | Наверх | Cообщить модератору

204. "Выпуск языка программирования Rust 1.60"  –1 +/
Сообщение от Аноним (94), 09-Апр-22, 10:32 
Предлагаешь сверять pgp-подпись?
Ответить | Правка | К родителю #198 | Наверх | Cообщить модератору

226. Скрыто модератором  +4 +/
Сообщение от Аноним (-), 09-Апр-22, 17:57 
Ответить | Правка | Наверх | Cообщить модератору

250. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Аноним (-), 10-Апр-22, 00:39 
> Предлагаешь сверять pgp-подпись?

Да ты просто кэп!

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

252. "Выпуск языка программирования Rust 1.60"  +1 +/
Сообщение от Аноним (-), 10-Апр-22, 00:54 
>> Предлагаешь сверять pgp-подпись?
> Да ты просто кэп!

Ты решил повторно пyкнуть в лужу?


Each of these binaries is signed with the Rust signing key, which is available on keybase.io, by the Rust build infrastructure, with GPG. In the tables below, the .asc files are the signatures.

platform    stable (1.60.0)    beta    nightly
aarch64-apple-darwin    pkg
pkg.asc    pkg
pkg.asc    pkg
pkg.asc
aarch64-pc-windows-msvc    msi
msi.asc    msi
msi.asc    msi
msi.asc
aarch64-unknown-linux-gnu    tar.gz
tar.gz.asc    tar.gz
tar.gz.asc    tar.gz
tar.gz.asc

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

239. "Выпуск языка программирования Rust 1.60"  +/
Сообщение от Аноним (239), 09-Апр-22, 23:44 
https://forge.rust-lang.org/infra/other-installation-methods...
Там есть отдельный шел скрипт и отдельные уже собранные архивы с подписями pgp

Но местные анонимные эксперты даже не в состоянии нажать кнопку Other installation methods

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

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

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




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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