The OpenNET Project / Index page

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



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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от opennews (ok), 20-Июл-21, 16:01 
В ответ на замечание Линуса Торвальдса о том, что  пример драйвера, прилагаемый к набору патчей с реализацией поддержки языка Rust для ядра Linux, бесполезен и не решает реальных задач, предложен вариант драйвера PL061 GPIO, переписанный на Rust. Особенностью драйвера является то, что его реализация практически построчно повторяет имеющийся драйвер GPIO на языке Си. Для разработчиков, желающих познакомиться с созданием драйверов на Rust, подготовлено построчное сравнение, позволяющее понять в какие конструкции на Rust преобразован код на Си...

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

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

Оглавление

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


1. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +14 +/
Сообщение от OnTheEdgeemail (ok), 20-Июл-21, 16:01 
завертелось...
Ответить | Правка | Наверх | Cообщить модератору

43. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +4 +/
Сообщение от Dzen Python (ok), 20-Июл-21, 16:55 
Как в машинке "Вятка-Автомат". Жизнь-то закрутится, завертится.
Ответить | Правка | Наверх | Cообщить модератору

60. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +11 +/
Сообщение от _hide_ (ok), 20-Июл-21, 17:17 
А чем растовый вариант драйвера лучше сишного? Без стёба?
Ответить | Правка | Наверх | Cообщить модератору

72. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +8 +/
Сообщение от Аноним (-), 20-Июл-21, 17:26 
> А чем растовый вариант драйвера лучше сишного? Без стёба?

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

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

245. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Михаил (??), 21-Июл-21, 08:33 
Из основного я заметил использование правил ownership (проверяемых на этапе компиляции) при использовании lock-ов.
Что невозможно ни в C ни в С++.
Ответить | Правка | Наверх | Cообщить модератору

247. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –4 +/
Сообщение от Michael Shigorinemail (ok), 21-Июл-21, 09:05 
> Что невозможно ни в C ни в С++.

Вам знаком термин "машина Тьюринга"?
Вы пытались посмотреть, на чём написан транслятор Rust?..
(изучали ли в школе или вообще логику -- не спрашиваю)

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

281. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (-), 21-Июл-21, 13:36 
>> Что невозможно ни в C ни в С++.
> Вам знаком термин "машина Тьюринга"?
> Вы пытались посмотреть, на чём написан транслятор Rust?..

И? Без ограничения семантики - будет вам задача из области NP-hard (самое то для сферическо-вакуумной недетерминированной машины Тьюринга).
Вменяемое время проверки - именно то, во что все еще упираются ЯП с попытками формальной верификации и "глубоких" проверок.

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

307. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от BorichL (ok), 21-Июл-21, 15:33 
Михаил, вы такими вопросами разрушаете радужный мир розовых пони растоманов! Они привыкли, что за них Гниль думает, самим нынче думать не в моде, некогда...
Ответить | Правка | К родителю #247 | Наверх | Cообщить модератору

389. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от yet another anonymous (?), 22-Июл-21, 23:29 
Не, не разрушает. Тьюринг свою машину возле них не парковал.
Ответить | Правка | Наверх | Cообщить модератору

425. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (425), 25-Июл-21, 22:00 
Вам знаком термин сложность алгоритма? Вы пытались написать проверку во всех местах, где это делает Rust-компилятор? Изучали ли в университете дискретную математику или вообще математику - не спрашиваю)
Ответить | Правка | К родителю #247 | Наверх | Cообщить модератору

427. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (427), 02-Авг-21, 23:08 
> Вам знаком термин "машина Тьюринга"?

Хм, но ведь и CSS считается Тьюринг-полным языком, однако никтопочему-то там не пытается накостылять ownership.

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

76. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +4 +/
Сообщение от Аноним (76), 20-Июл-21, 17:28 
Тем что большее количество UB отловлено на этапе компиляции. У кода появляются формальные гарантии
Ответить | Правка | К родителю #60 | Наверх | Cообщить модератору

135. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +2 +/
Сообщение от _hide_ (ok), 20-Июл-21, 20:18 
Вы вообще пример драйвера на смотрели?
Ответить | Правка | Наверх | Cообщить модератору

93. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Dzen Python (ok), 20-Июл-21, 17:49 
Если говорить серьезно - ничем.

За кодера прошел borrow checker, спаянный со парой слизанных из статических анализаторов фич, засунутых зачем-то в конпелятор. После чего бывший js-макак, он же гуру реакта, повелитель вуе, а ныне - разраб на русте, над которым завис красномордый дядька-начальник и под угрозой увольнения заставил напилить код, расправил крылья и ходит с лыбой от уха до уха, что теперь "супир бишапашно".

Я вот вообще понять не могу всех вот этих разговоров про автоматизированную безопасность, если внутри оно все равно использует те же неуправляемые указатели, но при этом реальный кодер в системных задачах (напомню, для которых он и разрабатывался) все равно вынужден лезть в unsafe.

Ах, да, забыл. Руст же полностью исключает dll hell^W^W UB. Запомните, дети, UB, это такие казуистические случаи, вроде

    j = i++ + ++i;

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

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

136. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –4 +/
Сообщение от Ananimasss (?), 20-Июл-21, 20:34 
Простите экс вебмакаку, но что казуистического в примере?
Прибавится единичка к  i до сложения, выполнится сложение и запишется в j, после прибавится 1 к i.
Где-то это не так?
Ответить | Правка | Наверх | Cообщить модератору

158. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –6 +/
Сообщение от ананим.orig (?), 20-Июл-21, 21:24 
> Прибавится единичка к  i до сложения, выполнится сложение и запишется в j, после прибавится 1 к i.

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

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

191. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +2 +/
Сообщение от Урри (ok), 20-Июл-21, 23:08 
Два неуча.

В С не регламентирован порядок вычисления большинства операндов выражений (за исключением && и ||). Поэтому выражение i++ + ++i может быть вычислено как слева направо, так и справа налево, так еще и результат i++ может быть записан в i после вычисления всего выражения.

Аналогичная беда с выражением func(i++, i++);

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

200. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Anonymoustus (ok), 20-Июл-21, 23:21 
На PDP тоже так было, великий гуру?
Ответить | Правка | Наверх | Cообщить модератору

328. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Урри (ok), 21-Июл-21, 17:37 
> На PDP тоже так было, великий гуру?

Да. Например, можно глянуть http://mim.update.uu.se/manuals/layered/pdp11c3.pdf (PDP-11 C Guide to PDP-11 C)

Цитирую:
When using the increment and decrement operators, do not
depend on the order of evaluation of expressions. Consider
the following ambiguous expression:
k = x[j] + j++;

Is the value of variable j in x[j] evaluated before or after the
increment occurs? Do not assume which expressions the
compiler will evaluate first. To avoid ambiguity, increment
the variable in a separate statement.

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

343. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Anonymoustus (ok), 21-Июл-21, 22:11 
>> На PDP тоже так было, великий гуру?
> Да. Например, можно глянуть http://mim.update.uu.se/manuals/layered/pdp11c3.pdf (PDP-11
> C Guide to PDP-11 C)
> Цитирую:

Убедил.

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

357. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Кир (?), 22-Июл-21, 03:25 
Откуда ж вы лезете, знатоки C++ по учебникам C лохматых 90-х?
Ответить | Правка | К родителю #328 | Наверх | Cообщить модератору

372. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от adolfus (ok), 22-Июл-21, 13:20 
А причем тут C++? Речь идет о C, который очень жестко стандартизован и, кстати, именно в 90-х, вернее, в 1998. Просто почитайте стандарт ISO/IEC 9899 и сравните с "учебниками лохматых 90-х". Ну и последний 2011-го года гляньте. А потом сравните с ISO/IEC 14882 -- откроете много удивительного.
Ответить | Правка | Наверх | Cообщить модератору

280. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (280), 21-Июл-21, 13:28 
Для ядра важно, как это делает конкретно gcc.
Ответить | Правка | К родителю #191 | Наверх | Cообщить модератору

319. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Кир (?), 21-Июл-21, 16:37 
Для неуча:

https://ru.wikipedia.org/wiki/%D0%A2%D0%...

Проблема в значительной мере устарела.

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

329. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Урри (ok), 21-Июл-21, 17:41 
> Для неуча:

Иногда лучше молчать и слыть болваном, чем заговорить и развеять все сомнения. (с)
Ты сам свою ссылку то читал? Там ровно то, что написал я.

> Проблема в значительной мере устарела.

Что устарело? Операторы как вычислялись в неопределенном порядке, так и вычисляются. Параметры функций как вычислялись в неопределенном порядке, так и вычисляются.

Вообще ничего не изменилось за 30 лет, прикинь?

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

344. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Кир (?), 22-Июл-21, 00:05 
Полистай: https://en.cppreference.com/w/cpp/language/eval_order
Текст ты вряд ли поймешь, но комментарии к примерам типа:

i = i++ + 2; // undefined behavior until C++17

возможно, заставят заподозрить, что в C++17 что-то изменилось.

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

345. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Кир (?), 22-Июл-21, 00:23 
А в целом, придирка к неопределенному порядку вычислений выражений сама по себе дурацкая донельзя: порядок вычислений не фиксировали в стандарте не потому, что нешмагли, а для того, чтобы не наступать на горло оптимизирующему компилятору, который может сгенерировать более эффективный код, изменив порядок вычислений.
Ответить | Правка | К родителю #329 | Наверх | Cообщить модератору

361. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от freecoder (?), 22-Июл-21, 08:10 
Ага, в этом автомобиле нет ремней безопасности да и вообще нет кресел не потому, что "не шмогли", а потому, что лишний вес мешает разгоняться.
Ответить | Правка | Наверх | Cообщить модератору

363. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Совершенно другой аноним (?), 22-Июл-21, 09:15 
Вы, как мне кажется, забываете контекст, в каких условиях создавался и стандартизировался C, а в каких - Rust. То, что там машины были на порядки медленее, это пол беды, а то, что в комитет входили разные корпорации, производящие аппаратное обеспечение, которые тянули в свою сторону - это совсем беда. Думаю поэтому в стандарте C куча UB, которые кажутся странными - зартачилась какая-нибудь Sun, или там DEC - вот у нас в процессоре это сделано не так, как у всех остальных, давайте сделаем это UB, чтобы мы там по месту сами разбирались, как это делать. Тем более, что тогда в C, не так как сейчас в Rust - куча аппаратных контор писала свои компиляторы для C для своих аппаратных архитектур.
Ответить | Правка | Наверх | Cообщить модератору

373. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Кир (?), 22-Июл-21, 13:47 
Дело даже не в древних архитектурах, как раз наоборот. Простой пример: вполне можно представить себе гипотетическую ситуацию, когда компилятор, обнаружив, что вычисление аргументов функции не требует синхронизации, на современном многоядерном процессоре запустит оное в параллельных потоках по числу аргументов. Порядок вычисления не определен в принципе? Да. Это ускорит выполнение? Да. Противоречит это стандарту? Нет, всё в порядке. Если вспомнить про транспьютерные архитектуры, то там это тем более актуально.
Ответить | Правка | К родителю #361 | Наверх | Cообщить модератору

397. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от n00by (ok), 23-Июл-21, 06:57 
> Дело даже не в древних архитектурах, как раз наоборот. Простой пример: вполне
> можно представить себе гипотетическую ситуацию, когда компилятор, обнаружив, что вычисление
> аргументов функции не требует синхронизации, на современном многоядерном процессоре запустит
> оное в параллельных потоках по числу аргументов.

И у этих параллельных потоков будет общий стек. Ага. Представил. =)

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

197. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Anonymoustus (ok), 20-Июл-21, 23:20 
Как там у вас?


let a = 1
undefined


Так?

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

362. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от freecoder (?), 22-Июл-21, 08:11 
Нет, не так. Что спросить-то хотел?
Ответить | Правка | Наверх | Cообщить модератору

194. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от None (??), 20-Июл-21, 23:18 
Когда мы видим одну операцию присваивания, а реально их три - да, фигня получается.
Зато удобно автоинкрементную/автодекрементную индексацию как бы описывать.
Ответить | Правка | К родителю #93 | Наверх | Cообщить модератору

226. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (226), 21-Июл-21, 02:40 
> j = i++ + ++i;

Если i было равно 1 до начала этой операции, то по-моему после нее будет i = 3 и j = 4
Постинкремент самая приоритетная операция за ней прединкремент, потом сложение, потом присвоение. Операция сложения работает слева направо, но выражение разбирается справа налево.

Прединкремент сработает первым, поэтому i станет сразу равным двум. Потом сработает постинкремент и вернет 2. За ним сложение 2+2=4. Потомпосле завершения присвоения результата в j постинкремент увеличит i на 1. Я где-то ошибаюсь?

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

330. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Урри (ok), 21-Июл-21, 17:45 
> Я где-то ошибаюсь?

Везде в своем комментарии.

Немножечко лонгрид, но весь по делу, без воды и с цитатами стандарта (а еще и на русском) - https://habr.com/ru/post/216189/

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

235. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от px (??), 21-Июл-21, 04:59 
Вы, батенька, чушь сморозили. UB — это и вполне тривиальное ```int a[] = {1,2}; int b = a[2]``` и вообще до черта всего, особенно в многопоточном коде. Про статические анализаторы, то же ерунда какая-то получилась: статические анализаторы по-разным эвристикам пытаются угадать очепятки, в то время как rust имеет систему типов, которая даёт вполне определённые гарантии, без всяких вероятностных допущений (конечно опуская вероятность ошибок в самом компиляторе). Unsafe, хоть и является вынужденным злом, но позволяет локализировать наиболее опасные места, а не размазывать их по всему коду. В реальном коде unsafe используется достаточно редко. Возможно, вам было бы комфортнее комментировать что-то, в чём вы разбираетесь. Но на всякий случай, вы можете почитать https://en.wikipedia.org/wiki/Undefined_behavior — в английской версии статьи есть много менее «казуистических» примеров неопределённого поведения. Спасибо за внимание.
Ответить | Правка | К родителю #93 | Наверх | Cообщить модератору

246. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Совершенно другой аноним (?), 21-Июл-21, 09:02 
> В реальном коде unsafe используется достаточно редко.

Есть какая-нибудь статистика? а то походив по некоторым проектам крейтов Rust на github, увидел, что unsafe-ов используется довольно много, и даже начало складываться впечатление, что сделать что-либо нетривиальное без unsafe не очень получается.

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

364. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Anonimus (??), 22-Июл-21, 09:17 
```int a[] = {1,2}; int b = a[2]```

Умышленно выходить за пределы выделенного массива. В чем смысл такого "тривиального" кода?

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

404. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от px (??), 23-Июл-21, 22:11 
Можно выходить и неумышленно, к примеру аллоцировав буфер, и взяв смещение в нём из какого-нибудь заголовка кого-нибудь пакета не проверив...
Ответить | Правка | Наверх | Cообщить модератору

379. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Кир (?), 22-Июл-21, 14:39 
Для начала, при попытке скомпилировать


int a[] = {1,2}; int b = a[2];

g++, к примеру, вываливает кучу предупреждений о выходе за пределы массива, однако все же не считает это ошибкой. Банальный cppcheck находит эту ошибку на счет раз.

Во-вторых, на актуальном C++ такое пишется так:


array a = {1, 2}; auto b = a.at(2);

и приводит к выбросу исключения с внятным сообщением о причине ошибки. Не уверен -- не обгоняй ;)

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

109. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +4 +/
Сообщение от Ordu (ok), 20-Июл-21, 18:25 
Он сделан не для того, чтобы быть лучше. Он создан для того, чтобы посмотреть на более реалистичный пример rust'а в ядре, нежели тот первый пример модуля, который ничего полезного не делал.

Невозможно осмысленно создавать инструмент, не делая ничего этим инструментом. Можно спрашивать "зачем гонять ракетный двигатель на стенде, толкая им бетонную стену" -- действительно, зачем? Какой в этом смысл? Дык вот в этом примерно тот же смысл, какой был в написании этого драйвера.

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

134. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от _hide_ (ok), 20-Июл-21, 20:17 
Да, но это же не показательный вариант. Никаких фишек раста не использовано. Давайте ещё на паскале, го, свифте и чистом llvm asm будем модули писать и выставлять их? Причем на первых 3х это уже давно делают.
Ответить | Правка | Наверх | Cообщить модератору

138. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Линус (?), 20-Июл-21, 20:39 
Сделай.
Ответить | Правка | Наверх | Cообщить модератору

181. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +2 +/
Сообщение от Аноним (181), 20-Июл-21, 22:48 
> Причем на первых 3х это уже давно делают.
> ...уже давно делают...
Ответить | Правка | Наверх | Cообщить модератору

153. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Ordu (ok), 20-Июл-21, 21:12 
> Да, но это же не показательный вариант. Никаких фишек раста не использовано.

Это что за фишки такие?

#[derive(Default)] -- это не такая фишка?

А Ref<T>, для работы с ref_count -- это не такая фишка? Между прочим в списке рассылки трындец обсуждение, ядрёным C программистам объясняют, как это может работать. Ты, кстати, тоже можешь почитать просветиться. Вопросы к коду задают серьёзные люди, а не анонимы опеннета, и отвечают серьёзно, а не как я тут.

impl amba::Driver for PL061Device
...
impl power::Operations for PL061Device
...
module_amba_driver! {
    type: PL061Device,
    name: b"pl061_gpio",
    author: b"Wedson Almeida Filho",
    license: b"GPL v2",
}

Это не те фишки раста, которые ты ищешь? Если нет, то каких фишек ты ждёшь от раста? Чтобы он скомпилировал код вида "please, rustc, compile this line into a real kernel driver"?

> Давайте ещё на паскале, го, свифте и чистом llvm asm будем
> модули писать и выставлять их? Причем на первых 3х это уже
> давно делают.

Пиши, тебе что кто-то запрещает?

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

201. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –5 +/
Сообщение от Урри (ok), 20-Июл-21, 23:24 
Ух ты, в расте, оказывается, есть ref_count, который в С существует... дайте вспомнить сколько... да уже лет 30, наверное. Если не больше.

Одна из библиотек, которые я давно использую:
https://github.com/Snaipe/libcsptr

Наслаждайся:

struct log_file *open_log(const char *path) {
    smart struct log_file *log = shared_ptr(struct log_file, {0}, close_log);
    if (!log) // failure to allocate
        return NULL; // nothing happens, destructor is not called

    log->fd = open(path, O_WRONLY | O_APPEND | O_CREAT, 0644);
    if (log->fd == -1) // failure to open
        return NULL; // log gets destroyed, file descriptor is not closed since fd == -1.

    return sref(log); // a new reference on log is returned, it does not get destoyed
}

int main(void) {
    smart struct log_file *log = open_log("/dev/null");
    // ...
    return 0; // file descriptor is closed, log is freed
}


---
они изобрели смарт-поинтеры, ухахахахахахахах.

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

209. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Ordu (ok), 20-Июл-21, 23:44 
> Ух ты, в расте, оказывается, есть ref_count, который в С существует... дайте
> вспомнить сколько... да уже лет 30, наверное. Если не больше.

ref_count существовал до всех этих ваших C, не надо его недооценивать.

> Одна из библиотек, которые я давно использую:
> https://github.com/Snaipe/libcsptr

И чё?

> они изобрели смарт-поинтеры, ухахахахахахахах.

Демонический смех у тебя ничё так выходит, мне понравилось. Я б рекомендовал басов немного добавить, хотя в районе 3кГц очень неплохое присутствие. Но, и всё же, мне неясно, каким таким образом тебе удалось придти к выводу об изобретении смарт-поинтеров разработчиками rust?

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

332. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Урри (ok), 21-Июл-21, 17:53 
> ref_count существовал до всех этих ваших C, не надо его недооценивать.

Само собой существовал, еще в лиспе, например. А кто его недооценивает?

>> они изобрели смарт-поинтеры, ухахахахахахахах.
> и всё же, мне неясно, каким таким образом тебе удалось придти
> к выводу об изобретении смарт-поинтеров разработчиками rust?

Цитирую тебя же:

>> Никаких фишек раста не использовано.

Ordu: > А Ref<T>, для работы с ref_count -- это не такая фишка?

Уникальная фишка раста - смарт поинтер, который минимум как 30 лет есть в С, который раст пытается заменить.

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

338. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Ordu (ok), 21-Июл-21, 18:35 
> Цитирую тебя же:
>>> Никаких фишек раста не использовано.
> Ordu: > А Ref<T>, для работы с ref_count -- это не такая
> фишка?

Ты тред читал? Человек выше задаёт вопрос, почему никаких фишек раста не использовано. Я задаю ему вопросы о том, что он подразумевает под фишками раста. Привожу потенциальные примеры, которые могут быть примерами фишек раста, спрашиваю каких других фишек раста он ждал.

Не надо выдирать цитаты из контекста. Если ты знаешь каких фишек раста не хватает в том драйвере -- я с интересом тебя выслушаю. Доказывать же мне, что Ref<T> -- это фишка раста, или что это не фишка раста бессмысленно. Не, то есть, я б выслушал твоё мнение, потому что ты меня заинтриговал реально, я не могу понять считаешь ли ты Ref<T> фишкой раста, или ты считаешь его заурядностью из середины XX века, которая настолько общее место, что не стоит упоминания. Или может ещё что?

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

Если же тебе интересно моё мнение, то сводить раст к фишкам -- плюс-минус бессмысленное занятие. Раст -- это комплексное решение, и любая фишка по отдельности не заслуживает внимания, интересно как они переплетаются во единое целое в коде.

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

239. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от Аноним (239), 21-Июл-21, 07:28 
>который в С существует...

"To compile the library, GCC 4.6+ is needed."

Ох уж эти сказочки, ох уж эти сказочники ...

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

331. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Урри (ok), 21-Июл-21, 17:49 
>>который в С существует...
> "To compile the library, GCC 4.6+ is needed."
> Ох уж эти сказочки, ох уж эти сказочники ...

Растоманчик не видит разницу между конкретной сторонней библиотекой и всеми другими реализациями?

Впрочем, ничего удивительного. Не ты ли плакался там выше, что что не включено в STL, то у него не получается в с++ использовать?

Я писал, что конкретно эту библиотеку сейчас использую, и использую уже давно. Gcc 4.6 уже больше 10 лет.

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

341. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (239), 21-Июл-21, 20:57 
>Растоманчик не видит разницу между конкретной сторонней библиотекой и всеми другими реализациями?

Растоманчик видит разницу между С и GCC c кучей расширений, и даже деструкторами.

>Впрочем, ничего удивительного

Вот именно, очередной рассказыватель про прекрасную Сишку, пойман с поличным, что не сожет на чистой сишке сделать нормальные умные указатели. Только хаками и расширениями.

Зато так смело клеймит оппонентов, переходит на личности.

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

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

308. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от нах.. (?), 21-Июл-21, 15:39 
module_amba_driver! {
    type: PL061Device,
    name: b"pl061_gpio",
    author: b"Wedson Almeida Filho",
    license: b"GPL v2",
}

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

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

333. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от Урри (ok), 21-Июл-21, 17:59 
>     name: b"pl061_gpio",
> Тоесть вот это это типа очень удобно и понятно? Ну ладно, яссно
> с вами ржавыми, как язык назовеш так и поплывет... или утонет.

Подожди, у них же аджайл, они щас еще такого наворотят...

Тут недавно добавили возможность идентификаторы писать в юникоде (боже, как я ржал, как я ржал... - эта "фишка" даже в боже прости 1С почти 20 лет назад была, чуть не в каждом языке есть - но растаманчики наконец подвезли и себе такую важную мегавозможность).

Так через два месяца они добавят специальный префикс _ для идентификаторов, которые в юникоде, но надо читать не в юникоде. И _& для тех, что в юникоде, но читаются не в юникоде, а надо в расширенном юникоде. А потом и letmut &hui __go__ для тех, которые в юникоде, но надо бы изменить для совместимости с С, который вызывать через ансейф и через два месяца вместо hui утвердят jui.

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

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

144. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (144), 20-Июл-21, 20:55 
>Он сделан не для того, чтобы быть лучше. Он создан для того, чтобы посмотреть на более реалистичный пример rust'а в ядре

Осталось только написать остальные более реалистичные примеры: работу с VFS на примере реализации ФС, работу с потоками, сетью, памятью и т.д.

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

147. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Ordu (ok), 20-Июл-21, 21:05 
>>Он сделан не для того, чтобы быть лучше. Он создан для того, чтобы посмотреть на более реалистичный пример rust'а в ядре
> Осталось только написать остальные более реалистичные примеры: работу с VFS на примере
> реализации ФС, работу с потоками, сетью, памятью и т.д.

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

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

182. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –3 +/
Сообщение от Аноним (181), 20-Июл-21, 22:50 
Растаманы пытались всё это сделать, но редох начал течь... Поэтому переключились на линух.
Ответить | Правка | К родителю #144 | Наверх | Cообщить модератору

199. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от None (??), 20-Июл-21, 23:21 
redox течёт? Ахаха, вот и цена этому продукту. Только вот уже несколько языков (D и nim точно) зашкварились, начав тащить к себе эту дрянь - "концепцию владения".
Ответить | Правка | Наверх | Cообщить модератору

206. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (-), 20-Июл-21, 23:31 
> redox течёт?

Нет, в оригинале 4 года назад было:
> The Redox kernel does not have the structures in place to allow freeing memory.
> The userspace allocator can free, and then reuse, but anything allocated with sbrk from the kernel will be lost.

просто местные экспертусы - не умеют в разработку и/или английский ...

> Ахаха, вот и цена мнению местных экспертусов

пофиксил.

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

2. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –12 +/
Сообщение от Аноним (2), 20-Июл-21, 16:01 
А вот это действительно очень круто.
Ответить | Правка | Наверх | Cообщить модератору

50. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +2 +/
Сообщение от Урри (ok), 20-Июл-21, 17:05 
У-ха-ха-ха-ха-ха-ха.
Народ, зацените - для анонима построчно переписать код с С на с-подобный язык, это "круто"!

Чувак, транспайлеры были придуманы более 30 лет назад.

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

53. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от Аноним (2), 20-Июл-21, 17:07 
Не тупи, это хороший прогресс, который поможет разобраться в написании драйверов, демонстрирует работу драйвера и в целом инфоповод
Ответить | Правка | Наверх | Cообщить модератору

203. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –3 +/
Сообщение от Урри (ok), 20-Июл-21, 23:25 
Инфоповод, согласен. Я три программерских чата заставил ржать аки лошади.
Ответить | Правка | Наверх | Cообщить модератору

400. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +3 +/
Сообщение от Вадим (??), 23-Июл-21, 16:56 
Да вы там гении самые настоящие, раз переписание драйвера на другой язык вызывает у вас приступы хохота. Наверно это очень простая задача для вас, киньте ссылку на какой-нибудь ваш "нормальный" проект на гитхабе, оценим. Постараемся не ржать.
Ответить | Правка | Наверх | Cообщить модератору

401. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от n00by (ok), 23-Июл-21, 17:19 
Вот специально написанный для поржать драйвер: https://github.com/icestudent/ontl/blob/master/samples/zenad...

Это не GPIO, он всего лишь ловил известные на тот момент ядрёные руткиты для Виндос (включая недетектируемые альтернативами). Написан как раз на "другом языке", на котором тогда нельзя было писать драйвера, да ещё и с использованием стандартной библиотеки, которая в ядре не работала. И Билл Гейтса никто джва года не спрашивал.

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

407. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноньимъ (ok), 24-Июл-21, 03:47 
Не понял шутки, это же сипипишка, стандартная для шиндовс штука.
Ответить | Правка | Наверх | Cообщить модератору

415. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от n00by (ok), 24-Июл-21, 07:30 
Далеко не стандартная, поскольку стандартная библиотека официально отсутствует. Тем более на момент публикации драйвера (2007-й год). Вот ситуация на тот момент http://www.osronline.com/article.cfm%5Earticle%3D4...
Ответить | Правка | Наверх | Cообщить модератору

224. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Я (??), 21-Июл-21, 01:58 
вообще-то именно так и делают гайды для тех кто хочет писать драйвер на расте но умеет только на си.
Ответить | Правка | К родителю #50 | Наверх | Cообщить модератору

260. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +5 +/
Сообщение от Moomintroll (ok), 21-Июл-21, 10:14 
> для тех кто хочет писать драйвер на расте но умеет только на си

Не понимаю этих "тех". Умеешь С - пиши на нём.

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

380. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +2 +/
Сообщение от Аноним 80_уровня (ok), 22-Июл-21, 15:33 
Посмотрел бы я на тех людей, которые умеют писать драйверы на Си, но при этом хотят писать драйверы на Расте.
Ответить | Правка | К родителю #224 | Наверх | Cообщить модератору

383. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним зеленый (?), 22-Июл-21, 21:12 
Тут это пруф отсутствия ошибок работы с памятью.
Ответить | Правка | К родителю #50 | Наверх | Cообщить модератору

396. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от СССР (?), 23-Июл-21, 06:57 
йобу дался чтоль?
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

4. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –5 +/
Сообщение от lockywolf (ok), 20-Июл-21, 16:04 
Жалко, что не на С++, но вообще молодцы.
Ответить | Правка | Наверх | Cообщить модератору

8. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –12 +/
Сообщение от Аноним (8), 20-Июл-21, 16:06 
Ну так C++ - это почти C, только чуть удобнее, ООП (хотя концепция ООП под вопросом), больше возможностей, но всё такое же с ушами из 80-ых.
Любил C++ до перехода на Rust.
Ответить | Правка | Наверх | Cообщить модератору

12. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +16 +/
Сообщение от Аноним (12), 20-Июл-21, 16:08 
> почти C, только чуть удобнее

коротко про анонимов с опеннет

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

14. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от Аноним (8), 20-Июл-21, 16:08 
Бро, я пишу на C++ больше 10 лет.
Да, чуть удобнее C, но всё та же помойка.
Ответить | Правка | Наверх | Cообщить модератору

15. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +10 +/
Сообщение от Аноним (15), 20-Июл-21, 16:10 
скорее всего вы просто за 10 лет не научились писать на С++.
Ответить | Правка | Наверх | Cообщить модератору

17. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +11 +/
Сообщение от Crazy Alex (ok), 20-Июл-21, 16:11 
Скорее всего он так и пишет на С++98.
Ответить | Правка | Наверх | Cообщить модератору

19. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +2 +/
Сообщение от Аноним (15), 20-Июл-21, 16:13 
Думаю да ...
но даже там можно писать хорошо, так что проблема скорее всего в руках и голове )
Ответить | Правка | Наверх | Cообщить модератору

27. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +5 +/
Сообщение от Rev (?), 20-Июл-21, 16:30 
Писать хорошо можно на чём угодно, только статистика говорит о том, что никто на это не способен.
Так что нужен компилятор, который перепроверит код на наличие тупости перед компиляцией.
Ответить | Правка | Наверх | Cообщить модератору

149. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +2 +/
Сообщение от Аноним (149), 20-Июл-21, 21:07 
Только раст на эту роль не претендует
Ответить | Правка | Наверх | Cообщить модератору

347. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от Аноним (347), 22-Июл-21, 00:47 
Компилятор должен компилировать то, что дадут. А анализировать должен анализатор.

Вы же не просите сантехника вам обед гоиовить?

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

52. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Урри (ok), 20-Июл-21, 17:06 
На си-с-классами.
Ответить | Правка | К родителю #17 | Наверх | Cообщить модератору

59. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +2 +/
Сообщение от Аноним (2), 20-Июл-21, 17:16 
C++17 в среднем.

Да даже в C++20 отовсюду видны уши C, нет модулей (стабильно во всех компиляторах), нет сети в стл, нет дефолт пакетного менеджера, нет дефолт системы сборки (cmake лучший, но синтаксис...), нет нормальной де/сериализации структур/классов без костылей, нет дефолт стайл гайдов (каждый лепит как придумал), да много чего нет.
Морально устаревшее нечто с 100% unsafe кодом, тонной UB, серией крэшей, которое уже ничего не спасет.

Не говорю, что в Расте прям всё есть, но с вышеперечисленным всё ок. А это уже львиная для воркфлоу.
И падал у меня ровно один раз. Когда неправильно из C данные передал :)

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

119. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от деанон (?), 20-Июл-21, 19:03 
В чем проблема, пишите на java и c#
Ответить | Правка | Наверх | Cообщить модератору

139. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +5 +/
Сообщение от Аноним (139), 20-Июл-21, 20:45 
Вот это контраргумент, уделал его, уничтожил.
Ответить | Правка | Наверх | Cообщить модератору

174. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от деанон (?), 20-Июл-21, 22:13 
Ну, начнем с того, что у него в предложении совершенно несвзанные вещи в качестве "аргументов"
Ответить | Правка | Наверх | Cообщить модератору

238. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (139), 21-Июл-21, 06:55 
Ну ты жжощ по детски
Ответить | Правка | Наверх | Cообщить модератору

186. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Урри (ok), 20-Июл-21, 23:00 
Какой отбордый бред. Смузихлеб, это все десятки лет есть в библиотеках!

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

> Не говорю, что в Расте прям всё есть, но с вышеперечисленным всё ок. А это уже львиная для воркфлоу.

"Аааааа, перекодировщик видео не включен в стандартную библиотеку, бидабида, я не умею поюзать гит и систему сборки, мне надо чтобы все через карго ставилось, ааааааааа, мама, у миня ни палучаится быть праграмистаааамммм!!!"

ffmpeg куда записывать будешь, гений, в стандартную библиотеку? А sqlite3 тоже? Развелось неучей, ска.

А хотя я понял, тебя пугает разнообразие? Ты не в состоянии все время учить новые вещи? Ну так иди сайты клепай, в программировании то что забыл?

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

273. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Noname (??), 21-Июл-21, 11:31 
Даже не представляю, как без этого все эти программисты на плюсах живут!

А, наверное, библиотеки используют.

А, для смузихлёбов это сложно.

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

375. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от n00by (ok), 22-Июл-21, 14:19 
> дефолт пакетного менеджера
> дефолт системы сборки
> дефолт стайл гайдов

Дефолт случился в 1998 году. Делаем выводы.

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

204. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от None (??), 20-Июл-21, 23:28 
главная проблема C++ - шаблоноёбство, из-за которого при наличии развёрнутой системы типов начинается фантастическое раздувание кода.
но в компилируемом языке иначе нельзя, либо делаем разные куски кода, либо придётся вводить условия, косвенные обращения и т.п.
С другой стороны, где золотая середина, сэкономить на лишнем обращении к памяти, или сэкономить на загрузке в кэш очередного куска кода.
Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

9. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от OnTheEdgeemail (ok), 20-Июл-21, 16:06 
ну так весь смысл в пресловутой безопасности раста, так что упоминание плюсов здесь просто неуместно
Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

13. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –3 +/
Сообщение от Аноним (8), 20-Июл-21, 16:08 
Не считаю это основным преимуществом Раста. Скорее как приятный бонус, да. Его сила в остальных возможностях.
Ответить | Правка | Наверх | Cообщить модератору

32. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +5 +/
Сообщение от Кир (?), 20-Июл-21, 16:39 
Всегда убеждался, что люди, ругающие C++, его попросту не знают (или пользуют подпротухшие стандарты типа 98). Удиви меня, приведи обоснованную критику?
Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

51. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (76), 20-Июл-21, 17:05 
Никто его полностью не знает(кроме может пары человек), потому собсна Раст и появился. Он родился чтобы все UB превратить в панику или (что предпочтительнее) в ошибку компиляции
Ответить | Правка | Наверх | Cообщить модератору

121. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –6 +/
Сообщение от iLex (ok), 20-Июл-21, 19:08 
Таких лютых проблем с зависимостями, как в C++, нет больше нигде. Иногда быстрее написать собственную библиотеку, чем разобраться, как заставить собраться уже существующую. Выберите любой крупный проект на github, сделайте git clone, попробуйте собрать. С первого раза не соберётся никогда и ничего (а к ряду проектов написаны целые тома с инструкциями по сборке, это по-вашему нормально?).
C++ всё ещё не может в нормальную кросс-компиляцию - даже банально собирать код под винду, сидя на Linux - это адский ад (а что-нибудь типа OpenCV вы и вовсе никогда не соберёте кросс-компиляцией, только ставить контейнер с целевой осью и собирать в нём).
Пока весь мир на 98% состоял из винды на x86, это было норм. Но в мире, где уже есть пачка платформ и каждый год добавляются новые, кодить на этом будет разве только мазохист, потому что задолбаетесь зоопарк платформ поддерживать с вашей сишкой.
Ответить | Правка | К родителю #32 | Наверх | Cообщить модератору

178. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от деанон (?), 20-Июл-21, 22:31 
Ля, проблемы с зависимостями. Мы ещё посмотрим на лешаси Раста, лол
Ответить | Правка | Наверх | Cообщить модератору

198. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Урри (ok), 20-Июл-21, 23:21 
А можно пример такого проекта? А то я вполне спокойно собираю хромиум, например. Да и кучи других проектов тоже.

> C++ всё ещё не может в нормальную кросс-компиляцию - даже банально собирать код под винду, сидя на Linux - это адский ад

Там выше уже было очень справедливо сказано: "Всегда убеждался, что люди, ругающие C++, его попросту не знают".

Почему я спокойно собираю свою либо под... секундочку... вот: (aarch64 armv5tel armv5te armv6hf armv6l armv7hf armv7l i686 mipselhf mipsel mipshf mips ppc64le ppc64 ppcle ppc). А это не хелловоролд, там несколько десятков тысяч строк, включая платформозависимые части для винды, ведроида, макоси?

c/c++ единственный (!) компилятор, который действительно умеет в кросскомпиляцию. И единственный, который соберет и запустит твой helloworld без каких-либо изменений на всем, на чем вообще можно что-то запускать.

> а что-нибудь типа OpenCV вы и вовсе никогда не соберёте кросс-компиляцией

А при чем тут C++ к системе сборки, которую выбрали ребята из opencv? cmake по твоему то же самое, что с++ компилятор? с++ то как раз прекрасно код opencv собирает.

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

222. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Кир (?), 21-Июл-21, 01:38 
Удивительно, у меня в системе процентов 15-20 софта собрано из исходников без единой проблемы. Что я делаю не так?
Ответить | Правка | К родителю #121 | Наверх | Cообщить модератору

250. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Michael Shigorinemail (ok), 21-Июл-21, 09:13 
> Удивительно, у меня в системе процентов 15-20 софта собрано
> из исходников без единой проблемы. Что я делаю не так?

Собираете их локально, а не в применяемый дистрибутив.
Но это перпендикулярно. :)

PS: в альте пакеты поддерживать не так уж сложно, и по-русски подскажут (если не хватит документации на той же вики).  Ну, мало ли ;-)

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

248. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +2 +/
Сообщение от Michael Shigorinemail (ok), 21-Июл-21, 09:11 
> С первого раза не соберётся никогда и ничего

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

Короче, неправда Ваша.

> C++ всё ещё не может в нормальную кросс-компиляцию [...] а что-нибудь
> типа OpenCV вы и вовсе никогда не соберёте кросс-компиляцией, только
> ставить контейнер с целевой осью и собирать в нём).

Деточка, та же ОС Эльбрус собирается именно и исключительно кроссом; libopencv там есть.

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

Это именно про Rust.  Опять же говорю как практик.

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

324. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Урри (ok), 21-Июл-21, 17:16 
Тот редкий случай, когда Шигорин авторитетно заявляет и прав.
Ответить | Правка | Наверх | Cообщить модератору

249. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (12), 21-Июл-21, 09:12 
> сишкой

плюсы от си не отличаете

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

218. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (218), 21-Июл-21, 00:58 
Ну сходи в рассылку ядра и ответь на критику Линуса. Или комменты на опеннете - твой потолок?
Ответить | Правка | К родителю #32 | Наверх | Cообщить модератору

101. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –5 +/
Сообщение от _kp (ok), 20-Июл-21, 18:04 
В с++ инициализацию структур до сих пор тормозят на уровне 90х годов, что вынуждает в с++ проекте всё равно тянуть  си файлы...
Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

223. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +2 +/
Сообщение от Кир (?), 21-Июл-21, 01:41 
Вот, типичнейшая иллюстрация к тезису о дремучести критиканов C++. Человек застрял на уровне C и по нему судит о C++.
Ответить | Правка | Наверх | Cообщить модератору

428. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от _kp (ok), 10-Авг-21, 13:43 
> Вот, типичнейшая иллюстрация к тезису о дремучести критиканов C++. Человек застрял на
> уровне C и по нему судит о C++.

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

Но часто бывает задача скормить в новый проект готовое, и получить результат, а не переписывать, отлаживать, перепроверять.. Мы ж не Микрософт, чтоб заказчику глючные обновления вручать.

Да всякий несовместимый код можно обложить обёртками, что б включить в более свежий проект, но, лучше подобной радости по минимуму.

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

6. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +30 +/
Сообщение от Аноним (6), 20-Июл-21, 16:05 
>Особенностью драйвера является то, что его реализация практически построчно повторяет имеющийся драйвер GPIO на языке Си

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

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

7. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +5 +/
Сообщение от КО (?), 20-Июл-21, 16:05 
"практически построчно"
И внизу полотно комментов, разбирающий и исправляющий ошибки в раст варианте...
Не вижу реальной пользы в перестановке стульев.
Ответить | Правка | Наверх | Cообщить модератору

11. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –7 +/
Сообщение от Аноним (8), 20-Июл-21, 16:07 
Довольно наглядно сравнивать, почему синтаксис Растп делает код приятнее. Думаю, это основная цель.
Ответить | Правка | Наверх | Cообщить модератору

18. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +3 +/
Сообщение от Аноним (18), 20-Июл-21, 16:12 
О да. Сам то понял что ступил?
Ответить | Правка | Наверх | Cообщить модератору

54. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +4 +/
Сообщение от заминированный тапок (ok), 20-Июл-21, 17:09 
это у него очень тонкий юмор
Ответить | Правка | Наверх | Cообщить модератору

61. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –3 +/
Сообщение от Аноним (2), 20-Июл-21, 17:17 
Где ступил? Посмотри на код, у Раста и меньше, и красивее
Ответить | Правка | К родителю #18 | Наверх | Cообщить модератору

94. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от CGo_one_love (?), 20-Июл-21, 17:53 
Так женись на нём. Наверно заместили естественный объект красоты и малой ширины на искусственный.
Ответить | Правка | Наверх | Cообщить модератору

272. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от VladSh (?), 21-Июл-21, 11:28 
Видать сам женат на C?
Ответить | Правка | Наверх | Cообщить модератору

143. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +4 +/
Сообщение от danonimous (?), 20-Июл-21, 20:54 
Они вероломно использовали одну хитрость, чтобы код на rust занимал меньше строк - не переносили скобки на новую строку :)
Ответить | Правка | К родителю #61 | Наверх | Cообщить модератору

370. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (370), 22-Июл-21, 11:02 
Вот чем go не зашёл - требование открывающую скобку фигачить в конце строки и никак иначе.
Ответить | Правка | Наверх | Cообщить модератору

162. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (162), 20-Июл-21, 21:37 
Не знаю не С, не Rust
Но код на С выглядит понятнее О_о
Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

163. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (-), 20-Июл-21, 21:48 
> Не знаю не С, не Rust

Не стесняйся, большей части местных "анти" комментаторов это никак не мешает.


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

251. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +3 +/
Сообщение от Michael Shigorinemail (ok), 21-Июл-21, 09:15 
>> Не знаю не С, не Rust
> Не стесняйся, большей части местных "анти" комментаторов
> это никак не мешает.

s/"анти" //

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

146. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от proninyaroslavemail (ok), 20-Июл-21, 21:03 
Ну так это не предполагается для текущих драйверов (именно из-за ошибок при переписывании того что уже работает), а для якобы новых.
Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

10. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (15), 20-Июл-21, 16:06 
недолюбливаю я этот rust, внутреннее чутье подсказывает мне что GPIO будет теперь менее стабилен.
Ответить | Правка | Наверх | Cообщить модератору

23. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +3 +/
Сообщение от Аноним (23), 20-Июл-21, 16:27 
"Не читал, но осуждаю", да?
Ответить | Правка | Наверх | Cообщить модератору

107. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (107), 20-Июл-21, 18:21 
А тут к бабке не ходи понятно что проблем станет больше. Например со сборкой этих драйверов на новом тулчейне на разных платформах и версиях этого раста.
Ответить | Правка | Наверх | Cообщить модератору

133. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (23), 20-Июл-21, 19:52 
По сравнению с задачей "обеспечить сборку ядра clang-ом", которую решали лет 5 как минимум - какой-то раст - это вообще семечки.
Ответить | Правка | Наверх | Cообщить модератору

252. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Michael Shigorinemail (ok), 21-Июл-21, 09:16 
> По сравнению с задачей "обеспечить сборку ядра clang-ом",
> которую решали лет 5 как минимум - какой-то раст - это вообще семечки.

Ему про платформы -- он про семечки.  Что за люди...

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

359. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от Аноним (359), 22-Июл-21, 04:38 
Почему просто не забанить всех растоманов? Все равно у них интеллект как у js разработчиков и они не смогут ничего путного сказать по определению
Ответить | Правка | Наверх | Cообщить модератору

16. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –4 +/
Сообщение от Аноним (18), 20-Июл-21, 16:11 
Ктобы сомневался что ничего полезного он итаки не сделают. Только вон построчно и могут заменить даже не включая мозга. Но это раст детка.
Ответить | Правка | Наверх | Cообщить модератору

42. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Dzen Python (ok), 20-Июл-21, 16:54 
Ты забыл про бульон!
Теперь все растовички будут гордо тыкать ровно в 1 (один) пример драйвера на расте, который делает хоть что-то.
Ответить | Правка | Наверх | Cообщить модератору

48. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +3 +/
Сообщение от Аноним (-), 20-Июл-21, 17:03 
> On Thu, Jul 8, 2021 at 9:49 PM Linus Walleij <linus.walleij@linaro.org> wrote:
>
>  With my GPIO maintainer hat on I'd say a GPIO driver would be quite
>  interesting to look at. We are two GPIO maintainers and Bartosz is

...
>  This is not to say I promise we will merge it or so, but I just generically
>  like new approaches to old problems so I like this whole thing
>  overall, despite being critical to some details.

...
т.е. "перепишите GPIO - мы поглядим, не обещаем что замержим"
переписали - анонимы опеннета опять недовольны.
> Ктобы сомневался что ничего полезного он итаки не сделают.

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


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

62. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (2), 20-Июл-21, 17:19 
обоже, только ослы с опеннета могут глубокий WIP с иными целями посчитать за что-то мегаважное и до* на пустом месте
Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

81. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (2), 20-Июл-21, 17:34 
прошу прощения, психануло)
Ответить | Правка | Наверх | Cообщить модератору

122. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +4 +/
Сообщение от Аноним (122), 20-Июл-21, 19:23 
Ну да, настолько бесполезная вещь что в переписке разрабы благодарят проделанную работу "Thanks a lot, this looks extremely helpful!" и задают разные вопросы и получают на них ответы.
Но кто они такие по сравнению с гуру опеннета...
Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

20. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +5 +/
Сообщение от Аноним (20), 20-Июл-21, 16:21 
В Rust меня отталкивает синтаксисом, но если его не учитывать, то плюсов при переходе можно набрать достаточно.

Ох, если бы не вырвиглазный синтаксис Rust...

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

22. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от Аноним (122), 20-Июл-21, 16:26 
Синтаксис не проблема, тем более он не так сильно отличается от си. Плюс на том же лиспе люди как-то писали и выжили.
Ответить | Правка | Наверх | Cообщить модератору

115. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +5 +/
Сообщение от Ванёк (?), 20-Июл-21, 18:52 
Не выжили
Ответить | Правка | Наверх | Cообщить модератору

410. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноньимъ (ok), 24-Июл-21, 03:56 
Выжили, родили сыновей, внуков и правнуков. И теперь передают правнукам искусство лиспа, оружие для более цивилизованного будущего века.
Ответить | Правка | Наверх | Cообщить модератору

212. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (212), 20-Июл-21, 23:58 
У lisp синтаксис элементарный, он весь на основе sexp, в отличии от мешанины в rust.
Ответить | Правка | К родителю #22 | Наверх | Cообщить модератору

409. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноньимъ (ok), 24-Июл-21, 03:54 
Проще чем у лиспа синтаксиса уже быть не может.
Ответить | Правка | К родителю #22 | Наверх | Cообщить модератору

24. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Rev (?), 20-Июл-21, 16:27 
Просто не используйте дженерики и ссылки с временами жизни ;)
Ответить | Правка | К родителю #20 | Наверх | Cообщить модератору

35. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (18), 20-Июл-21, 16:41 
Просто не используйте раст.
Ответить | Правка | Наверх | Cообщить модератору

63. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (8), 20-Июл-21, 17:20 
А более нечего, если хочется скорости.
C малофункционален, C++ легаси и перегружен, а Кристал, Зиг и прочие малопопулярны.
Ответить | Правка | Наверх | Cообщить модератору

78. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (78), 20-Июл-21, 17:29 
> C малофункционален

Что значит малофункционален? Как бы новость о том, что на расте драйвер для линукса написали. Вот этот самый линукс написан на С. На С можно написать абсолютно любой код.

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

80. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (2), 20-Июл-21, 17:33 
Ветка же не связана с ядром, а абстрактна о языках.

Да, на C можно сделать огромный проект, где в другом языке это эффективнее решит одна строчка (утрирую, но мысль ясна)

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

254. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от Michael Shigorinemail (ok), 21-Июл-21, 09:18 
> Да, на C можно сделать огромный проект, где в другом языке

...написанном на C...

> это эффективнее решит одна строчка (утрирую, но мысль ясна)

Перловики это давно уж пояснили практически, не грузитесь. :)

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

360. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним31 (?), 22-Июл-21, 06:37 
Ну дада... Давайте тогда и на yoptascript дрова писать :) Удобно же, одна строчка.
Ответить | Правка | К родителю #80 | Наверх | Cообщить модератору

129. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +3 +/
Сообщение от Анончик (?), 20-Июл-21, 19:43 
>На С можно написать абсолютно любой код

Громкое заявление, покажи верификатор.

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

411. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноньимъ (ok), 24-Июл-21, 03:59 
>На С можно написать абсолютно любой код.

А нужно работающий.

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

106. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от _kp (ok), 20-Июл-21, 18:13 
> C малофункционален

У Вас устаревшие сведения

>C++ легаси и перегружен

Никто не заставляет использовать всё.
Даже в маломощных встраиваемых решениях, грамотное использование С++ повышает скорость, надёжность, и как ни странно сокращает объём кода.

Ps: отношение к Rust? Нейтральный игнор. Меня интересует переносимость кода как между различными ОС, так и работа без ОС, и прямо сейчас.


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

57. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +4 +/
Сообщение от Аноним (76), 20-Июл-21, 17:13 
По началу есть такое чувство. Это примерно как с пробелами в питоне. Но синтаксис это лишь малая часть языка. Куда важнее сообщество вокруг, написанные библиотеки, тулинг и заложенные подходы. И надо признать что сам дизайн языка вокруг трейтов для почти всего(в том числе динамического диспатчинга) очень элегантен. После осознания этого все складывается и непривычными остаются только лайфтаймы. Но для них все остальные придуманные способы еще хуже.
Ответить | Правка | К родителю #20 | Наверх | Cообщить модератору

83. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (2), 20-Июл-21, 17:36 
Лайфтаймы в общем-то есть и в C/C++, но большинство погромистов на этих языках мелкие нюансы мало волнуют :)
Ответить | Правка | Наверх | Cообщить модератору

207. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –3 +/
Сообщение от Аноним (207), 20-Июл-21, 23:34 
Но в питоне не навязывают пробелы. Это в ниме и ямле навязывают.
Ответить | Правка | К родителю #57 | Наверх | Cообщить модератору

65. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (8), 20-Июл-21, 17:21 
Разбери немного, перестанет откладывает
У меня тоже раньше подобная "проблема" была, но потом приходит понимание, что там всё логично, красиво и к месту
Ответить | Правка | К родителю #20 | Наверх | Cообщить модератору

213. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (212), 21-Июл-21, 00:00 
Нет, там выбраны очень дурацкие символы и конструкции для выражения смысла.
Ответить | Правка | Наверх | Cообщить модератору

384. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним зеленый (?), 22-Июл-21, 21:16 
Они не просто так "выбраны". Они были обсуждены сообществом - https://habr.com/ru/post/532660/
Ответить | Правка | Наверх | Cообщить модератору

82. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –4 +/
Сообщение от НяшМяш (ok), 20-Июл-21, 17:36 
А что в нём вырвиглазного? Всё такое же как и везде, плюс пара своих специфических плюшек типа времени жизни. Как минимум куда приятнее современных плюсов, в которых реально непонятно что происходит.
Ответить | Правка | К родителю #20 | Наверх | Cообщить модератору

154. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (149), 20-Июл-21, 21:15 
жабоскриптер   осуждает с++ и хвалит раст? Не удивлён
Ответить | Правка | Наверх | Cообщить модератору

189. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от НяшМяш (ok), 20-Июл-21, 23:07 
Естественно, раст больше на жеес\теес похож, чем плюсы ). Тупо на нём легче писать.
Ответить | Правка | Наверх | Cообщить модератору

208. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (208), 20-Июл-21, 23:40 
Каким местом он на них похож?
Ответить | Правка | Наверх | Cообщить модератору

276. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от НяшМяш (ok), 21-Июл-21, 13:07 

interface MyType {
    myFunction(): void
}

class MyClass implements MyType {
    constructor() {
        console.log("MyClass created")
    }

    myFunction(): void {
        console.log('myFunction called')
    }
}

const myCls = new MyClass();

myCls.myFunction();

и


trait MyTrait {
    fn my_function(&self) -> ()
}

struct MyStruct {}

impl MyStruct {
    fn new() -> Self {
        println!("MyStruct constructed")

        MyStruct{}
    }
}

impl MyTrait for MyStruct {
    fn my_function(&self) -> () {
        println("my_function called")
    }
}

let myStr = MyStruct::new()

myStr.my_function()

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

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

315. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноноша (?), 21-Июл-21, 16:12 
Штош:

1. Неявного конструктора в rs нет, new - просто соглашение. В js классах есть constructor.
2. self в методы явно передается, в js - неявный this (привет с++).
3. Объявленную через let в rs объект нельзя менять, обьявленный c помощью const объект в js - мутабельный.
3. Типы пишутся в конце? Дык, так много где.

Короче, все что ты описал очень поверхностное и притянутое за уши сходство.

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

337. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от НяшМяш (ok), 21-Июл-21, 18:34 
> 1. Неявного конструктора в rs нет, new - просто соглашение. В js классах есть constructor.

Да, сделал так специально для "похожести". Можно и без new.
> 2. self в методы явно передается, в js - неявный this (привет с++).

Тут согласен, но в Rust эта явность в плюс. В TypeScript тоже кстати можно this потипизировать, хотя это не нужно в 99% случаев
> 3. Объявленную через let в rs объект нельзя менять, обьявленный c помощью const объект в js - мутабельный.

И опять же это плюс. В жеесе очень часто дебажить приходится именно как раз такие объекты. Object.freeze конечно помогает, но частично - его нужно рекурсивно на вложенные объекты применять.
> 4. Типы пишутся в конце? Дык, так много где.

Это и хорошо же, не надо снова учить 139 синтаксис очередного сочинения на тему "как я писал свой яп на каникулах"


> Короче, все что ты описал очень поверхностное и притянутое за уши сходство.

А я и обсуждаю чисто визуальное сходство. Что с тайпскрипта взять и начать писать на расте куда проще, чем на го с его синтаксисом упорыша (вопреки всем заявлением обратного). А все остальные детали уже в процессе тренируются, особенно если жс был не единственный твой язык.

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

339. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноноша (?), 21-Июл-21, 19:18 
> Да, сделал так специально для "похожести". Можно и без new.

Где тут похожесть? В js нельзя классы без new звать. В rust вообще нет классов и конструкторов в понимании js, а есть просто структуры и связанные методы (как впрочем и в го). Для полноты реализуй наследование классов как в js (не интерфейсов, а именно классов).

> Тут согласен, но в Rust эта явность в плюс.

Мы не обсуждаем плюс это или нет. Мы обсуждаем похожесть. И это ни разу не похоже.

> И опять же это плюс. В жеесе очень часто дебажить приходится именно как раз такие объекты. Object.freeze конечно помогает, но частично - его нужно рекурсивно на вложенные объекты применять.

Анадлгично под видом "похожего" синтаксиса совершенно разный смысл.

> Это и хорошо же, не надо снова учить 139 синтаксис очередного сочинения на тему "как я писал свой яп на каникулах"

Эмм. Вообще распространено 2 вида: тип перед или после. Что тут учить еще?

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

Ну это же самообман.

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

342. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от нах.. (?), 21-Июл-21, 21:25 
А можно просто взять и обойтись без этой вашей ООПни.
Ответить | Правка | К родителю #337 | Наверх | Cообщить модератору

408. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноньимъ (ok), 24-Июл-21, 03:53 
Оно синтаксически сиподобное, или скорее сипипи подобное.
Что конечно ужасно, но видимо время забыть этот жуткий пережиток прошлого навязанный корпорастами ещё не пришло.
Ответить | Правка | К родителю #20 | Наверх | Cообщить модератору

21. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от йцукен (??), 20-Июл-21, 16:25 
х.м.  а такое

.ok_or(Error::ENXIO)?

разве не вызывает панику

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

25. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +3 +/
Сообщение от Rev (?), 20-Июл-21, 16:28 
Нет
Ответить | Правка | Наверх | Cообщить модератору

85. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от НяшМяш (ok), 20-Июл-21, 17:37 
Панику может вызвать только явный unwrap без предварительной проверки.
Ответить | Правка | К родителю #21 | Наверх | Cообщить модератору

96. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +6 +/
Сообщение от CGo_one_love (?), 20-Июл-21, 17:56 
Панику зрительных нервов?
Ответить | Правка | К родителю #21 | Наверх | Cообщить модератору

26. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +5 +/
Сообщение от Аноним (26), 20-Июл-21, 16:29 
А патч очищающий Linux от ржавчины уже есть?

Надо сделать обязательно! По аналогии с южноамериканским deblob.

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

34. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от SystemD (?), 20-Июл-21, 16:40 
Rust это язык будущего! Быстро извенись перед всеми на каленях, только так тебя простит великий Rust! Сейчас же извенись! Сейчас же!
Ответить | Правка | Наверх | Cообщить модератору

36. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от Аноним (26), 20-Июл-21, 16:44 
Я и go, systemd, dbus, polkit+JS, JIT, ... так же в своей системе видеть не желаю! Та что можешь мне соснуть, стоя на коленях.
Ответить | Правка | Наверх | Cообщить модератору

41. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Великая Rust (?), 20-Июл-21, 16:51 
SystemD это как Chromium, ты можешь его и не ставить, но будешь соcать раком за бортом прогресса!
Ответить | Правка | Наверх | Cообщить модератору

90. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (90), 20-Июл-21, 17:46 
пох это ты, мы тебя узнали
Ответить | Правка | Наверх | Cообщить модератору

104. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +3 +/
Сообщение от Аноним (104), 20-Июл-21, 18:08 
> SystemD

Это не прогресс, а регрес в безопасности.

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

45. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (45), 20-Июл-21, 16:58 
Так переходи на вантуз. Разве что только JIT из всего списка останется.
Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

110. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (104), 20-Июл-21, 18:27 
У меня и GNU/Linux без этого списка работает.
Ответить | Правка | Наверх | Cообщить модератору

95. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от Аноним (370), 20-Июл-21, 17:54 
Go вроде и ничего, но стандартная библиотека и сплайсы всё жедание осваивать его отбили. Переписал пару утилит дата-конвертеров с питона на го и больше не трогал
Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

111. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +3 +/
Сообщение от Аноним (104), 20-Июл-21, 18:31 
> Go вроде и ничего

Думал также, увидел это:

https://gitweb.gentoo.org/repo/gentoo.git/tree/net-p2p/go-ip...

и сразу изменил свое мнение.

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

114. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Плюсовик (?), 20-Июл-21, 18:43 
Ужас! Даже добавить нечего.
Ответить | Правка | Наверх | Cообщить модератору

278. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (278), 21-Июл-21, 13:11 
При чем тут Го? Не нравятся импорты, можно писать самому на чём угодно.
Ответить | Правка | К родителю #111 | Наверх | Cообщить модератору

216. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноноша (?), 21-Июл-21, 00:22 
> но стандартная библиотека всё жедание осваивать его отбили

Что с ней не так?

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

39. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от макпыф (ok), 20-Июл-21, 16:48 
пока, к счастью, не от чего очищать
Ответить | Правка | К родителю #26 | Наверх | Cообщить модератору

68. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –3 +/
Сообщение от Аноним (8), 20-Июл-21, 17:22 
Только ослы будут очищать a shit of C от прекрасного.
Ответить | Правка | К родителю #26 | Наверх | Cообщить модератору

98. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от CGo_one_love (?), 20-Июл-21, 18:01 
Без Си ты бы даже не смог написать это сообщение. У тебя в смартфоне и компе всё провоняло, получается.
Ответить | Правка | Наверх | Cообщить модератору

145. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –4 +/
Сообщение от Аноним (-), 20-Июл-21, 21:01 
> Без Си ты бы даже не смог написать это сообщение.

Мог, мог. Колибря, Редокс, современные браузеры на плюсах? Не, не слышал!

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

255. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Michael Shigorinemail (ok), 21-Июл-21, 09:22 
Деточка, слова firmware или там bootloader хоть что-то говорят?

PS: очередная перепевка басни "Свинья и Дуб", ага.

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

265. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от anonymous (??), 21-Июл-21, 10:34 
По поводу firmware можете посмотреть на oreboot, например.
Ответить | Правка | Наверх | Cообщить модератору

291. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (-), 21-Июл-21, 14:08 
>> Колибря
> ... или там bootloader хоть что-то говорят?

Похоже, что мне - больше чем вам, "дяденька". Работающих агрузчиков для x86 на чистом асме я видел (и писал). А вот наоборот, на хваленой "чистой сишечке", что-то туговато с ними.
Так что кто тут занимается перепевом басни
> PS: очередная перепевка басни "Свинья и Дуб", ага.

еще большой вопрос.

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

301. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Совершенно другой аноним (?), 21-Июл-21, 14:57 
А хоть Firmware-то на C пишут, или там может какие-то операционные системы?
Ответить | Правка | Наверх | Cообщить модератору

314. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (-), 21-Июл-21, 16:03 
> А хоть Firmware-то на C пишут, или там может какие-то операционные системы?

Ну вы можете поискать и кинуть ссылок на фирмварь "на чистой сишкечке, совсем без асма" для устройств, с которых можно более-менее удобно запостить комментарий на опеннет, кто ж вам мешает-то?

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

390. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от yet another anonymous (?), 22-Июл-21, 23:46 
> А хоть Firmware-то на C пишут, или там может какие-то операционные системы?

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

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

303. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +2 +/
Сообщение от Аноним (303), 21-Июл-21, 15:02 
Не обращайте внимания. Шигорин сильно не любит Rust, в силу того, что Rust ВНЕЗАПНО не так уж и безнадёжен, как хотелось бы ему пропагандировать, вот и приходится с ним сталкиваться в своих линуксах и при взаимодействии с Российскими процами, где через C-транспиляцию так просто не извертеться, а АСМ там настолько страшен, что разрабы сами предпочитают избегать его насколько возможно.
Ответить | Правка | К родителю #291 | Наверх | Cообщить модератору

277. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от Аноним (278), 21-Июл-21, 13:09 
Это называется назло маме шапку не надену и отморожу уши. Вот и всё. Великовозрастные юноши как правило считают себя умнее своих родителей, и гордыня выше головы.
Ответить | Правка | К родителю #145 | Наверх | Cообщить модератору

284. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от Аноним (-), 21-Июл-21, 13:46 
> Это называется назло маме шапку не надену и отморожу уши. Вот и
> всё. Великовозрастные юноши как правило считают себя умнее своих родителей, и
> гордыня выше головы.

А по существу сказать есть что, балабол? Можешь начать с перечисления "сишных браузеров", работающих в сорвеменном гуглне^W интернете.


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

297. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от Совершенно другой аноним (?), 21-Июл-21, 14:46 
Есть https://lexborisov.github.io/myhtml, не знаю, есть ли на базе его браузеры. Но вот Вы, если данный сайт посещаете с Linux/BSD/Android, то явно пользуетесь ОС написанной на C, и наверное, не смогли-бы без неё написать своё ценное мнение.
Ответить | Правка | Наверх | Cообщить модератору

304. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (-), 21-Июл-21, 15:03 
>> с перечисления "сишных браузеров", работающих в сорвеменном гуглне^W интернете.
> Есть https://lexborisov.github.io/myhtml, не знаю, есть ли на базе его браузеры.

Угу, "и вот так - у вас все!" (с)
Сразу бы ссылку на линкс дали, что ли.

Я кстати, в курсе его существования и даже какое-то время отслеживал. Но последний коммит "4f98bb1 Nov 28, 2020" немного намекает. Впрочем, без полноценного JS движка никакой работы "в сорвеменном гуглне^W интернете" не будет.

>>> Без Си ты бы даже не смог написать это сообщение
>> Перечисление пары ОС не на си, намек на ЯП современных браузеров
> ... если данный сайт посещаете с Linux/BSD/Android, то явно пользуетесь ОС написанной на C, и наверное, не смогли-бы без неё написать своё ценное мнение.

Скилл Кэпа вы прокачали неплохо, осталось прокачать скилл чтения.


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

305. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –3 +/
Сообщение от Совершенно другой аноним (?), 21-Июл-21, 15:11 
> Я кстати, в курсе его существования и даже какое-то время отслеживал. Но последний коммит
> "4f98bb1 Nov 28, 2020" немного намекает. Впрочем, без полноценного JS движка никакой работы "в
> сорвеменном гуглне^W интернете" не будет.

Т.е. Вы хотите сказать, что за прошедшие пол-года в современном интернете всё поменялось? уже там, я не знаю, HTML 6 вышел, не совместимый с HTML 5, или ещё что случилось?

> Скилл Кэпа вы прокачали неплохо, осталось прокачать скилл чтения.

Исходное сообщение было:

> Без Си ты бы даже не смог написать это сообщение. У тебя в смартфоне и компе всё провоняло,
> получается.

Или Вы уже научились запускать браузер вне каких-либо ОС?

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

313. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (-), 21-Июл-21, 15:53 
>> Я кстати, в курсе его существования и даже какое-то время отслеживал. Но последний коммит
>> "4f98bb1 Nov 28, 2020" немного намекает. Впрочем, без полноценного JS движка никакой работы "в
>> сорвеменном гуглне^W интернете" не будет.
> Т.е. Вы хотите сказать, что за прошедшие пол-года в современном интернете всё
> поменялось? уже там, я не знаю, HTML 6 вышел, не совместимый
> с HTML 5, или ещё что случилось?

Т.е. я хочу скзать "где браузер, Карл!". Ну и о JS там было "вдогонку".

>> Скилл Кэпа вы прокачали неплохо, осталось прокачать скилл чтения.
> Исходное сообщение было:
>> Без Си ты бы даже не смог написать это сообщение. У тебя в смартфоне и компе всё провоняло,
>> получается.
> Или Вы уже научились запускать браузер вне каких-либо ОС?

Если вы отвечали на исходное сообщение, то ошиблись веткой. Если на мое - то неплохо бы учитывать ответы и контекст (заодно не выдирая из него цитаты), а не заниматься подменой понятий вида
>> даже не смог написать это сообщение
> если данный сайт посещаете с Linux/BSD/Android, то явно пользуетесь ОС написанной на C, и наверное, не смогли-бы без неё написать своё ценное мнение.
> Или Вы уже научились запускать браузер вне каких-либо ОС?

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

323. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от Совершенно другой аноним (?), 21-Июл-21, 17:10 
> Т.е. я хочу скзать "где браузер, Карл!". Ну и о JS там
> было "вдогонку".

Извиняюсь за вопрос на вопрос, но "где используемый ширнармассами браузер, на чём-то кроме C++, Карл", да и то там будут, скорее всего, запчасти из других языков.
JS-ов тоже куча есть, как минимум от проекта nginx (http://nginx.org/ru/docs/njs/index.html), от Фабриса Беллара (https://bellard.org/quickjs/).

> Если вы отвечали на исходное сообщение, то ошиблись веткой. Если на мое
> - то неплохо бы учитывать ответы и контекст (заодно не выдирая
> из него цитаты), а не заниматься подменой понятий вида
>>> даже не смог написать это сообщение
>> если данный сайт посещаете с Linux/BSD/Android, то явно пользуетесь ОС написанной на C, и наверное, не смогли-бы без неё написать своё ценное мнение.
>> Или Вы уже научились запускать браузер вне каких-либо ОС?

Не могли-бы Вы тогда прояснить свою мысль - что Вы хотите доказать?

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

279. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –3 +/
Сообщение от Moomintroll (ok), 21-Июл-21, 13:23 
> Колибря, Редокс, современные браузеры на плюсах?

А где можно увидеть "современные браузеры" на "Колибря, Редокс"?

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

285. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (-), 21-Июл-21, 13:47 
>> Колибря, Редокс, современные браузеры на плюсах?
> А где можно увидеть "современные браузеры" на "Колибря, Редокс"?

А где можно увидеть "современные браузеры" на Си?

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

289. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от Moomintroll (ok), 21-Июл-21, 14:02 
> А где можно увидеть "современные браузеры" на Си?

Я не предлагал браузер на C. Я только хотел увидеть "современный браузер на плюсах" работающий в Колибри и/или Редокс.

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

294. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (-), 21-Июл-21, 14:13 
>> А где можно увидеть "современные браузеры" на Си?
> Я не предлагал браузер на C. Я только хотел увидеть "современный браузер
> на плюсах" работающий в Колибри и/или Редокс.

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


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

299. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от Совершенно другой аноним (?), 21-Июл-21, 14:55 
Есть на C https://lexborisov.github.io/myhtml/. А так - и на других языках нету, кроме C++, и на Rust тоже (там писали Servo, по потом всех разработчиков Мозилла выгнала).
Ответить | Правка | Наверх | Cообщить модератору

320. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (-), 21-Июл-21, 16:57 
>> Для опеннета современный бразуер(ный движок) не нужен, если что. Что не отменяет факта отсутствия таких движков на сишечке.
> Есть на C https://lexborisov.github.io/myhtml/.

/0

> (там писали Servo, по потом всех разработчиков Мозилла выгнала).

Уровень "познаний" опеннета:
https://www.opennet.ru/opennews/art.shtml?num=45385
> Проект Mozilla представил Quantum, комбинированный браузерный движок для Firefox
> 28.10.2016 13:49
> Разработчики Mozilla представили проект Quantum, в рамках которого для Firefox началась разработка браузерного движка нового поколения, сочетающего проверенные временем наработки движка Gecko с новыми возможностями по обеспечению многопоточной обработки данных, предоставляемые языком Rust. В частности, в рамках проекта в Gecko будут перенесены некоторые компоненты из движка Servo,

---
> 25.07.2017 20:49
> В Firefox добавлен CSS-движок Stylo, написанный на языке Rust

---
> Выпуск Firefox 57 с многопоточным CSS-движком и новым оформлением
> 14.11.2017 17:33
> и новый web-движок Quantum, комбинирующий проверенные временем компоненты движка Gecko с новыми возможностями по обеспечению многопоточной обработки данных, предоставляемые языком Rust и движком Servo.

-
> 19.07.2018 20:50
> В ночные сборки Firefox, которые лягут в основу выпуска Firefox 63, в качестве временного эксперимента интегрирована система композитинга Servo WebRender
> Из ожидающих внедрения инициатив проекта Quantum также можно отметить Quantum DOM, который обеспечит распараллеливание операций с DOM (Document Object Model).
>

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

334. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от Совершенно другой аноним (?), 21-Июл-21, 18:05 
>>> Для опеннета современный бразуер(ный движок) не нужен, если что. Что не отменяет факта отсутствия таких движков на сишечке.
>> Есть на C https://lexborisov.github.io/myhtml/.
> /0

Поясните, пожалуйста, чем он вдруг не подошел?

>[оверквотинг удален]
> https://www.opennet.ru/opennews/art.shtml?num=45385
>> Проект Mozilla представил Quantum, комбинированный браузерный движок для Firefox
>> 28.10.2016 13:49
>> В Firefox добавлен CSS-движок Stylo, написанный на языке Rust
>> 25.07.2017 20:49
>> Выпуск Firefox 57 с многопоточным CSS-движком и новым оформлением
>> 14.11.2017 17:33
>> и новый web-движок Quantum, комбинирующий проверенные временем компоненты движка Gecko
>> 19.07.2018 20:50
>> В ночные сборки Firefox, которые лягут в основу выпуска Firefox 63, в качестве временного эксперимента интегрирована система композитинга Servo WebRender

Что-же с Rust-ом так всё хорошо, что его кода, судя по https://www.openhub.net/p/firefox/analyses/latest/languages_... меньше, чем C. Так-что выходит, пока на Rust-е то и браузеров нет, точнее они есть, но пока они даже больше C-шные, чем Rust-овые.

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

28. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от SystemD (?), 20-Июл-21, 16:31 
Надо весь Linux переписать на Rust!
Ответить | Правка | Наверх | Cообщить модератору

31. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +7 +/
Сообщение от ыы (?), 20-Июл-21, 16:39 
построчно!!!
Ответить | Правка | Наверх | Cообщить модератору

33. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +4 +/
Сообщение от Тинус Лорвальдс (ok), 20-Июл-21, 16:40 
Ну раз надо, значит делай. Или у тебя руки способны писать только комментарии в интернете?
Ответить | Правка | К родителю #28 | Наверх | Cообщить модератору

91. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (90), 20-Июл-21, 17:47 
>Или у тебя руки способны писать только комментарии в интернете?

На некоторых грязных сайтах есть видео отрицающее это

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

140. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (140), 20-Июл-21, 20:47 
А Rust надо переписать на Linux!
Ответить | Правка | К родителю #28 | Наверх | Cообщить модератору

221. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –4 +/
Сообщение от Аноним (221), 21-Июл-21, 01:29 
Не понятно, что разработчикам, продвигающим Rust, мешает форкнуть ядро и построчно переписать его. И вообще может кто-то из них сможет транслятор сделать из C в Rust?
Ответить | Правка | Наверх | Cообщить модератору

259. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (259), 21-Июл-21, 09:56 
Это на данном этапе не нужно, у них же нет тысяч разработчиков для переписывания миллионов строк кода, а то кол-во "хакерских оптимизаций", которое позволил всунуть Си, никаким транслятором не переведешь в другие языки. Большинство ошибок в ядре в драйверах. Достаточно всунуть в ядро возможность писАть на относительно безопасном и быстром языке - и заинтересованные производители железок со временем сами захотят писАть на нем драйвера.
Ответить | Правка | Наверх | Cообщить модератору

282. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (280), 21-Июл-21, 13:36 
А кто производителей железок заставляет на C писать непременно с хакирскими трюками? Пусть пишут, если им нравится, в соотвествии с MISRA.
Ответить | Правка | Наверх | Cообщить модератору

266. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от anonymous (??), 21-Июл-21, 10:37 
Внезапно работать всем вместе на одном проекте -- выгоднее, чем когда каждый пилит свой проект. Сотрудничество вместо конкуренции.
Ответить | Правка | К родителю #221 | Наверх | Cообщить модератору

288. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от user (??), 21-Июл-21, 13:55 
Надо понимать какие цели у лидера проекта. Например, можно было бы вместе с немцами сотрудничать в годы ВОВ - это выгодно по вашему?
Ответить | Правка | Наверх | Cообщить модератору

30. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –4 +/
Сообщение от Аноним (30), 20-Июл-21, 16:38 
Nim > Rust
Запомните этот твит!
Ответить | Правка | Наверх | Cообщить модератору

69. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +4 +/
Сообщение от Аноним (8), 20-Июл-21, 17:23 
Ним вообще зеро, даже без компилятора и никогда не выстрелит.
Запомните этот твит!
Ответить | Правка | Наверх | Cообщить модератору

368. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (30), 22-Июл-21, 10:29 
Если речь идет о трансляции в машинный код, так для это Nim пользует компилятор C/C++.
Зачем изобретать Nim'у велосипеды и привязка к конкретной платформе?
Ответить | Правка | Наверх | Cообщить модератору

97. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (97), 20-Июл-21, 17:57 
2 опечатки в слове Zig
Ответить | Правка | К родителю #30 | Наверх | Cообщить модератору

290. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (280), 21-Июл-21, 14:08 
Как применить операцию сравнения к нечисловому множеству?
Ответить | Правка | К родителю #30 | Наверх | Cообщить модератору

367. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (30), 22-Июл-21, 10:24 
Не очень понятен вопрос
- Что подразумевается под "операцией сравнения"?
- Что подразумевается под "нечисловое множество"?

Если принять, что операция сравнения это, например, проверка вложенности,
а нечисловое множесто (фундаментально компьютеры оперируют только числами), это просто
упорядоченые "атомные" литералы, то так
https://play.nim-lang.org/#ix=3tFN

так же см.
https://nim-by-example.github.io/bitsets/

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

376. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (376), 22-Июл-21, 14:23 
Думаю он спрашивает про то, как применить сравнение для языков.
Ответить | Правка | Наверх | Cообщить модератору

381. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (30), 22-Июл-21, 17:38 
> Думаю он спрашивает про то, как применить сравнение для языков.

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


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

37. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (37), 20-Июл-21, 16:44 
Т.е. они взяли изначально нормально работающий и проверенный драйвер. Сделали замену сишных вызовав прекрасными растоструктурами и такие "во, смотрите, мы драйвер написали"

Ай да молодцы. Ай да квалификация. Вот это прорыв. Вот это уровень образования. Вот это я понимаю.

Это даже не двойка.....

Учитесь люди как надо драйвера писать.

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

56. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +4 +/
Сообщение от Аноним (56), 20-Июл-21, 17:11 
> Т.е. они взяли изначально нормально работающий и проверенный драйвер. Сделали замену сишных
> вызовав прекрасными растоструктурами и такие "во, смотрите, мы драйвер написали"

Т.е они взяли и прочитали сообщения Грега с мейнтейнером GPIO
https://lore.kernel.org/ksummit/YOdJLYmUkoMyszO7@kroah.com/
> From: Greg KH <greg@kroah.com>
>  And really, there is no need to dig through a huge spec, try porting an existing C driver will be much easier.
> From: Linus Walleij <linus.walleij@linaro.org>
> With my GPIO maintainer hat on I'd say a GPIO driver would be quite

interesting to look at.
а надо было анонимов опеннета читать!

> Это даже не двойка.....
> Учитесь люди как надо правильно ...

не читать ссылки и подробности, а сразу высказывать Особо Ценное Анонимное Менение, ага.

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

70. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (8), 20-Июл-21, 17:23 
А ты хоть так сможешь сделать?

Очевидно, что там иные цели, а не просто сделать драйвер)

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

128. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (37), 20-Июл-21, 19:32 
Прикинь а. У меня нет проблем ни с памятью ни с логикой.
Ответить | Правка | Наверх | Cообщить модератору

131. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (23), 20-Июл-21, 19:45 
Что ты тогда на опеннете делаешь?
Ответить | Правка | Наверх | Cообщить модератору

150. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (-), 20-Июл-21, 21:09 


> Прикинь а.

Верим-верим.
> Сделали замену [b\сишных вызовав прекрасными растоструктурами

...
> У меня нет проблем ни с памятью ни с логикой.

Только с чтением/аглицким, да.
Ну и еще - с азами и прочими "мелочами".

А так-то да, тут каждый второй аноним - как минимум, Лев Толстой и заслуженный разработчик ядра. По крайней мере, на словах.


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

86. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (23), 20-Июл-21, 17:39 
Эммм, новость мы читаем ж@пой?
Это пример. Пример написания драйвера на расте. Для этого и взят простой драйвер, для этого и сделано построчное сравнение с сишным.
Ответить | Правка | К родителю #37 | Наверх | Cообщить модератору

123. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от деанон (?), 20-Июл-21, 19:24 
Ты понимаешь как пишется софт?! Проекция в чужой синтаксис не делает программу родной и показать оно не может ничего, кроме говнокодинга
Ответить | Правка | Наверх | Cообщить модератору

124. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от деанон (?), 20-Июл-21, 19:26 
Что, кстати, многое говорит о квалификации этих программистов
Ответить | Правка | Наверх | Cообщить модератору

130. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (23), 20-Июл-21, 19:44 
А ты понимаешь, как пишутся модули ядра? В этом примере половина кода - привязка к ядерным api, что в растовском, что в сишном случае, а вторая половина простая как табуретка, опять же в обоих случаях.
Ответить | Правка | Наверх | Cообщить модератору

176. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от деанон (?), 20-Июл-21, 22:18 
Понимаю, но, что тогда это должно продемонстрировать, что нужно писать на си?
Ответить | Правка | Наверх | Cообщить модератору

184. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (23), 20-Июл-21, 22:54 
Это сделано
> Для разработчиков, желающих познакомиться с созданием драйверов на Rust

Не твое это.

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

202. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от деанон (?), 20-Июл-21, 23:24 
Офигенная аргументация, ага, так держать
Ответить | Правка | Наверх | Cообщить модератору

40. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +6 +/
Сообщение от Kroz (ok), 20-Июл-21, 16:51 
> подготовлено построчное сравнение, позволяющее понять в какие конструкции на Rust преобразован код на Си.

Превосходно!
Наконец-то можно будет код на Rust переписать на Си!

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

44. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –4 +/
Сообщение от Аноним (37), 20-Июл-21, 16:57 
Зачем? На нём что-то толковое разве сделали? Чтобы не текло и безапастноне падало
Ответить | Правка | Наверх | Cообщить модератору

64. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (76), 20-Июл-21, 17:20 
ну да, ну да. а в curl например его от нехерделать завезли видимо. и всякие хоть и хипстерские, но рвущие в бенчах ripgrep'ы и прочие cli-утилиты для всяких cloudflare и гугл
Ответить | Правка | Наверх | Cообщить модератору

118. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (118), 20-Июл-21, 18:55 
Рипгреп-то по функциональности простой греп догнал или всё также уровня хелловорлда? Специально под тесты-то заточить это одно, а дальше всё.
Ответить | Правка | Наверх | Cообщить модератору

152. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +2 +/
Сообщение от Аноним (-), 20-Июл-21, 21:12 
> Рипгреп-то по функциональности простой греп догнал или всё также уровня хелловорлда?

А че так скромно, без конкретики и "по пунктам"? Не стесняйтесь!
> Специально под тесты-то заточить это одно, а дальше всё.

Довольно неоригинальная отмазка.


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

73. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –5 +/
Сообщение от Аноним (8), 20-Июл-21, 17:26 
На C? Да в общем-то не особо. Всё так же течет и падает. Есть крупные проекты вроде Линукса, где титаническими усилиями заставляют его работать хоть как-то, но получается не всегда.
В отличие от Раста, который не течет и не падает.
Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

116. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +2 +/
Сообщение от Ванёк (?), 20-Июл-21, 18:54 
Прежде чем писать, что раз подумай, а потом подумай ещё 1000 раз!
Ответить | Правка | Наверх | Cообщить модератору

127. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (37), 20-Июл-21, 19:31 
Ну да, у растоманов и с логикой смотрю плохо.
Ответить | Правка | К родителю #73 | Наверх | Cообщить модератору

177. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (122), 20-Июл-21, 22:23 
Не, сишечка не падает. Просто бажина из-за переполнения буфера 15 лет живет в ядре и позволяет получить рут. А надежно и ничего не падает.
Ответить | Правка | К родителю #73 | Наверх | Cообщить модератору

293. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (280), 21-Июл-21, 14:11 
Не течёт и не падает то, чего нет.
Ответить | Правка | К родителю #73 | Наверх | Cообщить модератору

292. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (280), 21-Июл-21, 14:09 
А на Rust что-то просто толковое сделали?
Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

47. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +5 +/
Сообщение от Аноним Анонимович Анонимов (?), 20-Июл-21, 17:00 
Полистал код драйвера. Я не знаю кому удобнее читать/писать на такой смеси крестов с явой и прочей эзотерикой.

Уж лучше чистый Си.

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

66. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –5 +/
Сообщение от Аноним (66), 20-Июл-21, 17:21 
может лучше на грязном Си ?
Ответить | Правка | Наверх | Cообщить модератору

49. Скрыто модератором  –4 +/
Сообщение от Аноним (49), 20-Июл-21, 17:04 
Ответить | Правка | Наверх | Cообщить модератору

67. Скрыто модератором  –3 +/
Сообщение от Аноним (122), 20-Июл-21, 17:21 
Ответить | Правка | Наверх | Cообщить модератору

240. Скрыто модератором  –1 +/
Сообщение от Аноним (49), 21-Июл-21, 07:42 
Ответить | Правка | Наверх | Cообщить модератору

55. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +14 +/
Сообщение от Аноним (55), 20-Июл-21, 17:11 
Конкретный код про выделение памяти с обработкой ошибки выделения на си занимает 2 строки (выделил, сверил указатель с null), на Rust это какая-то дикость
```
Ref::try_new_and_init(
            device::Data::new(
                PL061Registrations {
                    gpio_chip: gpio::ChipRegistration::default(),
                },
                PL061Resources {
                    base: IoMem::try_new(res)?,
                    parent_irq: irq,
                },
                // SAFETY: We call `irqsave_spinlock_init` below.
                unsafe { IrqDisableSpinLock::new(PL061Data::default()) },
            ),
            |mut data| {
                // SAFETY: General part of the data is pinned when `data` is.
                let gen = unsafe { data.as_mut().map_unchecked_mut(|d| d.deref_mut()) };
                kernel::irqdisable_spinlock_init!(gen, "PL061::General");
            },
        )?;
```

По сути и там и там это про управление памятью, только в си оно прямое, а в Rust тебе приходится делать то же самое, но косвенными путями, с болью и мучениями. Читать такой код и понимать, что конкретно он будет делать с памятью - очень сложно, это задача из разряда "а если бы вот ты знал особенности компилятора Rust, ты бы написал лямбда-функцию и итератор вместо простого new с присваиванием, и производительность бы выросла в 1000 раз". Нужна предсказуемость, пожалуйста.

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

71. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (76), 20-Июл-21, 17:25 
Тут код в основном про безопасную инициализацию, а не про выделение памяти. лямбды иногда пихают для ленивой инициализации, но это общий для многих языков паттерн
Ответить | Правка | Наверх | Cообщить модератору

79. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (55), 20-Июл-21, 17:31 
Код-то в основном про инициализацию, но именно этот неделимый на более мелкие куски блок кода, над результатом которого выполняется оператор ?, теоретически способен вернуть какую-нибудь информацию об ошибке при аллокации.
Ответить | Правка | Наверх | Cообщить модератору

87. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –3 +/
Сообщение от НяшМяш (ok), 20-Июл-21, 17:40 
Ну вообще вот это написано чисто из-за ядерной специфики.
Ответить | Правка | К родителю #55 | Наверх | Cообщить модератору

92. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (55), 20-Июл-21, 17:48 
Отлавливать ошибки аллокации было бы неплохо и в userspace-приложениях, тем более раз уж Rust пытается быть безопасным как в рекламе, а не безопасным от двух багов - use-after-free и double-free
Ответить | Правка | Наверх | Cообщить модератору

157. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Ordu (ok), 20-Июл-21, 21:19 
> Отлавливать ошибки аллокации было бы неплохо и в userspace-приложениях, тем более раз
> уж Rust пытается быть безопасным как в рекламе, а не безопасным
> от двух багов - use-after-free и double-free

У тебя есть use-case для отлова ошибок аллокации в userspace-приложениях? По-моему опыту в linux'е без oom-killer'а, лишь бы сдохли все побыстрее, кто выжрал столько памяти. Если когда они продерутся через всё это и дождутся NULL в качестве результата malloc, ещё вот не хватало, чтобы они пытались бы провести какой-то рекавери после ошибки. Пускай ДОХНУТ суки.

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

229. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (55), 21-Июл-21, 03:37 
Ну например если бы программа или игрушка при вылете написала, что она вылетела из-за недостатка вот такого конкретного количества оперативной памяти, а не просто паникнула с кашей в консоль, это было бы очень полезно знать конечному пользователю. Сразу ясно, что тут нужно освободить или докупить памяти, а не ругаться на разработчиков со словами "ваша штука сама вылетает без какой-либо вменяемой информации" и удалять эту программную гадость, неспособную даже объяснить, что конкретно ей не понравилось, в чем ошибка.
Ответить | Правка | Наверх | Cообщить модератору

231. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Ordu (ok), 21-Июл-21, 04:05 
> Ну например если бы программа или игрушка при вылете написала, что она
> вылетела из-за недостатка вот такого конкретного количества оперативной памяти, а не
> просто паникнула с кашей в консоль, это было бы очень полезно
> знать конечному пользователю.

Такого количества это какого? Программа выделяет себе хрена в ступе арену, чтобы потом не кучей общего назначения пользоваться, а чтоб побырому оттуда объекты фиксированного размера выделять? Ну дык ты эту арену всё равно будешь писать ручками, запрашивая память не у кучи, а через mmap. Вот там и обработаешь все ошибки. Вернёшь Result если хочется няшно, или прям оттуда сделаешь panic!("You have not enough memory, moron! Go buy some more of it!").

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

Не, я так думаю, стандартный интерфейс к памяти -- это не для игроманства, игре нужен ограниченный real-time, который может быть разломан swap'ом легко. Надо опрашивать систему на предмет того, сколько есть свободной памяти, неплохо было бы защитить страницы от свопирования (я не знаю, если честно, возможно ли это в linux без рутовских прав?), бла-бла-бла... Не, стандартная куча не для тебя. Тебе надо свой alloc писать -- реализацию кучи можно взять на стороне, но вот проверку доступной памяти, предвыделение её, прибивание гвоздями к физической раме -- это стандартная куча не умеет. Надо вручную запиливать эти возможности в кучу. Можно прям в std'шную реализацию. Можно в какую ещё по вкусу. Можно вообще выкинуть слово куча из лексикона, и заменить аренами и памятью на стеке.

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

242. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (55), 21-Июл-21, 08:32 
вышеописанная ошибка при выделении памяти для арены не теряет свою актуальность

память можно выделять как угодно, это же си, делай как тебе надо!

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

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

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

295. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от Ordu (ok), 21-Июл-21, 14:20 
> вышеописанная ошибка при выделении памяти для арены не теряет свою актуальность

Возьми такой крейт с реализацией арены, который будет об этих ошибках сообщать. Проблем-то. Или напиши свой, сообщающий.

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

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

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

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

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

258. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Совершенно другой аноним (?), 21-Июл-21, 09:52 
> неплохо было бы защитить страницы от свопирования (я не знаю, если честно, возможно ли это в linux без рутовских прав?)

man mlock

Если я правильно понял - пишут, что для непривилегированных процессов есть soft limit RLIMIT_MEMLOCK.

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

412. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноньимъ (ok), 24-Июл-21, 04:07 
В линуксе даже кеш фс не могут от свопа защитить...
Ответить | Правка | К родителю #231 | Наверх | Cообщить модератору

416. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от n00by (ok), 24-Июл-21, 07:35 
А зачем? Когда юзеры добровольно организуют своп в zRAM))
Ответить | Правка | Наверх | Cообщить модератору

417. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноньимъ (ok), 24-Июл-21, 08:44 
> А зачем? Когда юзеры добровольно организуют своп в zRAM))

Тем более за этим.

Но да, одно изобретение линукса чудесатее другого.

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

256. "Для ядра Linux п.редложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Michael Shigorinemail (ok), 21-Июл-21, 09:28 
> Если когда они продерутся через всё это и дождутся NULL
> в качестве результата malloc

Это вообще когда при overcommit-то?

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

193. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –6 +/
Сообщение от Аноним (193), 20-Июл-21, 23:15 
У Си с его malloc и проверкой на NULL (ага, NULL, а не null) есть маленькая проблемка. Веделенная память содержит "мусор", т.е. неизвестный набор байт и язык Си не проверит за программиста, не забыл ли тот корректно инициализировать все поля. Без такой инициализации в дальнейшем может прилететь.

Громоздкость инициализации в Rust гарантирует что в структуре Data будут только корректные значения, плюс дальше компилятор не даст ни лажу туда записать, ни время жизни нарушить.

Что-то типа https://ru.scribd.com/document/403214728/Modern-Memory-Safet... только бесплатно

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

227. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +3 +/
Сообщение от Аноним (55), 21-Июл-21, 03:29 
Ваша ссылка вывалила мне кучу рекламы и предложила купить какие-то курсы, а если не куплю - то и читать мне она ничего не даст. Что касается инициализации - берешь структуру (в си есть структуры) и инициализируешь, это ведь делается одинаково что в Rust, что в Си. Можно даже свой конструктор написать, где объединяется выделение памяти и инициализация, получится всё по RAII. А если надо - пишешь геттеры и сеттеры, при правильной работе с типами в Си компилятор Си тоже не даст записать в структуру мусор. Все-таки в си есть свобода - можно писать так и эдак, можно работать с типами и подсказками компилятора, а можно сказать компилятору что разберешься без него и все переменные сделать void* . В Расте же ты гвоздями прибит к его способу работы с ресурсами и данными, это может быть где-то удобно, но не везде, например что если я хочу использовать четыре разных аллокатора памяти? Или написать свой собственный? А вот как в расте написать свой Vec с ручной работой с памятью через unsafe, например хочу чтобы сначала заполнялись четные ячейки массива, а потом нечетные, или чтобы в Vec были куски, при доступе к которым вываливалась бы ошибка (в ядре такое есть, чтобы выявлять доступ куда-то не туда, т.е. баги при работе с памятью)?  На Rust я такое не смогу, а на си - достаточно просто. А Zig так вообще практически из коробки дает возможность гибкой работы с аллокаторами (функции принимают аллокатор как аргумент).
Ответить | Правка | Наверх | Cообщить модератору

228. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +4 +/
Сообщение от Аноним (228), 21-Июл-21, 03:34 
для склеротиков есть calloc
Ответить | Правка | К родителю #193 | Наверх | Cообщить модератору

232. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Ordu (ok), 21-Июл-21, 04:12 
calloc не инициализирует, а обнуляет. Разницу объяснять надо?
Ответить | Правка | Наверх | Cообщить модератору

283. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +2 +/
Сообщение от z (??), 21-Июл-21, 13:44 
Вообще-то по стандарту именно "The space is initialized to all bits zero". Реально же есть интересные нюансы https://vorpus.org/blog/why-does-calloc-exist/
Ответить | Правка | Наверх | Cообщить модератору

275. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (278), 21-Июл-21, 13:06 
memset(ptr, 0, sizeof(...));
это ясен пень, и такое забывать нельзя.
Ответить | Правка | К родителю #193 | Наверх | Cообщить модератору

287. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от z (??), 21-Июл-21, 13:53 
malloc + memset != calloc см. хороший разбор на линке выше.
Ответить | Правка | Наверх | Cообщить модератору

298. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от Совершенно другой аноним (?), 21-Июл-21, 14:48 
К сожалению там почти всё "заблюрено". Единственный плюс у calloc() относительно malloc(), это защита от переполнения при умножении числа элементов на размер элемента.
Ответить | Правка | Наверх | Cообщить модератору

300. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +2 +/
Сообщение от z (??), 21-Июл-21, 14:55 
Там еще разные скорости и разные внутренние политики. Позвольте еще раз привести https://vorpus.org/blog/why-does-calloc-exist/ - последний параграф как раз об этом.
Ответить | Правка | Наверх | Cообщить модератору

310. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (278), 21-Июл-21, 15:46 
В микроконтроллерах STM32 такого нет. Как и zeromem.
Ответить | Правка | К родителю #287 | Наверх | Cообщить модератору

312. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (278), 21-Июл-21, 15:47 
calloc есть оказывается, попутал.
Ответить | Правка | Наверх | Cообщить модератору

58. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +5 +/
Сообщение от Урри (ok), 20-Июл-21, 17:14 
Для желающих поугорать:

Оригинал (С): https://code.woboq.org/linux/linux/drivers/gpio/gpio-pl061.c...
Ремастер (rust): https://raw.githubusercontent.com/wedsonaf/linux/pl061/drive...

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

74. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –7 +/
Сообщение от Аноним (8), 20-Июл-21, 17:27 
Спасибо, угораю с убогого оригинала
Ответить | Правка | Наверх | Cообщить модератору

84. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от CGo_one_love (?), 20-Июл-21, 17:37 
Т.е. ты оценил его по факту написания на Rust, т.к. функционал то один и тот же! Придумали для выпедрёжа этот синтаксис, а не для решения задач? Просто субкультура, какими были панки, готы, эмо... где они сейчас. Очередная иллюзия нового и надежд на избавление от проблем.
Ответить | Правка | Наверх | Cообщить модератору

126. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (37), 20-Июл-21, 19:29 
Он не оценил. У него память раст сожрал и случилась растоистерика.
Ответить | Правка | Наверх | Cообщить модератору

125. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (37), 20-Июл-21, 19:29 
Действительно, после раста посмотришь на оригинал и ржать хочется насколько криво на расте всё получается.
Ответить | Правка | К родителю #74 | Наверх | Cообщить модератору

112. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от ng (ok), 20-Июл-21, 18:35 
> Для желающих поугорать:

Существует всего два вида программ: большие и маленькие. Последние не могут работать при наличии ошибок.

Похоже, rust создан для разработки последних.

imho

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

113. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Онаним (?), 20-Июл-21, 18:37 
Да пипец какой-то.
Даже этот полухеллоуворлд на сях в разы более читабелен, сразу понятно, что делается, где и зачем, в отличие от.
Ответить | Правка | К родителю #58 | Наверх | Cообщить модератору

267. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от anonymous (??), 21-Июл-21, 10:44 
Да, в rust уровень вхождения сильно выше. Там требуется больше думать. И это плохо. Но это, мне кажется, недостаточная причина для reject-а. Это думание не напрасно, а на повышение safety и надёжности кода.
Ответить | Правка | Наверх | Cообщить модератору

151. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (151), 20-Июл-21, 21:10 
Да, дичь как она есть.
Через кровь пот и слезы к железу.
Зачем полумеры?
Берите и переписывайте все ядро на расте.
И варитесь в своем уютном котле.
Я лично в гробу видел поддерживать ядро написанное на двух языках и ломать себе мозг когда вот такое встретится.
Это хуже чем С.
Даже асм и то понятнее.
Ответить | Правка | К родителю #58 | Наверх | Cообщить модератору

170. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (208), 20-Июл-21, 22:03 
Вот автор на С оставил автограф, а как же растоман? Боится ручки испачкать? Потом ведь за свю жизнь не отмоется.
Ответить | Правка | К родителю #58 | Наверх | Cообщить модератору

286. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Жироватт (ok), 21-Июл-21, 13:47 
2 блока unsafe. Круто, чё
Ответить | Правка | К родителю #58 | Наверх | Cообщить модератору

77. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +2 +/
Сообщение от CGo_one_love (?), 20-Июл-21, 17:29 
Посмотрел сравнение. Синтаксис реально дичь. Я вижу в этом только желание выделиться, мол смотрите, сколько закорючек в одной строке делают магию (чем-то Perl напоминает, но у него ниша подходящая). Эти :: ? (()), где на Си простые человеческие строки - жесть. В таких конструкциях шансов больше накосячить уже в плане опечаток и невнимательности. Примерно как стих без рифмы, работает, но читается трудно. Даже JS лучше читается.
Вот пример - Го, просто взяли и сделали легкий текст, который в то же время очень похож на Си, и даже легче, чем Си в плане синтаксиса, и возможностей при этом сделали больше, в т.ч. выход за пределы, сборщики, структуры с методами, и прочие паники, и без ООП. Даже без знания языка понятно, что в коде происходит. Но Го не подходит для системного уровня, почему нельзя сделать язык аналогичный для системного - а потому что уже есть Си.
Ответить | Правка | Наверх | Cообщить модератору

99. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (140), 20-Июл-21, 18:02 
Уже делают zig. Он как С только модный молодежный.
Ответить | Правка | Наверх | Cообщить модератору

171. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (208), 20-Июл-21, 22:04 
В Россее могут запретить.
Ответить | Правка | Наверх | Cообщить модератору

192. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (207), 20-Июл-21, 23:14 
Та, что у нацистов, пишется по-другому.
Ответить | Правка | Наверх | Cообщить модератору

296. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (280), 21-Июл-21, 14:23 
Наши суды не интересует, как там оно у них пишется, звучит-то как у нацистов.
Ответить | Правка | Наверх | Cообщить модератору

148. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от proninyaroslavemail (ok), 20-Июл-21, 21:06 
Так раст это идейный продолжитель C++, но никак не Си. Ни в плане абстракций, ни в плане синтаксиса. Мешанины в плюсах не меньше, чем в расте.
Ответить | Правка | К родителю #77 | Наверх | Cообщить модератору

173. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (37), 20-Июл-21, 22:10 
Меньше.
Ответить | Правка | Наверх | Cообщить модератору

205. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от Урри (ok), 20-Июл-21, 23:31 
Меньше. С++ вполне логичный в плане синтаксиса и строгий. Раст же постоянно перестраивают, потому что то там то там что-то не вяжется.
Ответить | Правка | К родителю #148 | Наверх | Cообщить модератору

253. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от proninyaroslav (ok), 21-Июл-21, 09:16 
> Меньше. С++ вполне логичный в плане синтаксиса и строгий. Раст же постоянно
> перестраивают, потому что то там то там что-то не вяжется.

Кхм, но ведь синтаксически и семантически несовместимых версий раста только две - 2015 и 2018 версии.

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

164. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (208), 20-Июл-21, 21:52 
Drew DeVault пилит подобный "секретный язык" https://drewdevault.com/2021/05/24/io_uring-finger-server.html
Ответить | Правка | К родителю #77 | Наверх | Cообщить модератору

262. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Michael Shigorinemail (ok), 21-Июл-21, 10:19 
> Drew DeVault пилит подобный "секретный язык"
> https://drewdevault.com/2021/05/24/io_uring-finger-server.html

Гм, он и по обсуждаемой теме тоже высказался:

---
"Go is the result of C programmers designing a new programming language, and Rust is the result of C++ programmers designing a new programming language"
[...]
Rust is a decent C++ replacement if you have the same goals as C++, but if you don’t, the design has very similar drawbacks. Both Rust and C++ are what I like to call “kitchen sink” programming languages, with the obvious implication. These languages solve problems by adding more language features. A language like C solves problems by writing more C code.
--- http://drewdevault.com/2019/03/25/Rust-is-not-a-good-C-repla...

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

306. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +3 +/
Сообщение от Аноним (303), 21-Июл-21, 15:30 
> A language like C solves problems by writing more C code

То есть он признаёт, что для решения задач на C надо написать тонну бойлерплейта, и при этом C всё ещё единственный самый лучший незаменимый язык? Шигорин, ты...

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

88. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (88), 20-Июл-21, 17:41 
Опять что-то переписали?
Ответить | Правка | Наверх | Cообщить модератору

89. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –3 +/
Сообщение от Аноним (-), 20-Июл-21, 17:44 
> Опять что-то переписали?

Опять устроили в комментах перепись читающих заголовки.

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

100. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (140), 20-Июл-21, 18:04 
Пытаются показать что могут, но до сих пор не могут внятно сказать зачем.
Ответить | Правка | К родителю #88 | Наверх | Cообщить модератору

102. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +5 +/
Сообщение от user90 (?), 20-Июл-21, 18:05 
Учебный проЭкт? Ну ладно, пусть будет, но в ядре-то он нахрен?))
Ответить | Правка | Наверх | Cообщить модератору

352. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (352), 22-Июл-21, 02:01 
Пусть учаться линуксята молодые.
Ответить | Правка | Наверх | Cообщить модератору

103. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (103), 20-Июл-21, 18:06 
https://www.opennet.ru/opennews/art.shtml?num=54970
> Ещё одной проблемой стали попытки использования вычислений с плавающей запятой или 128-битными типами, что не является допустимым для таких окружений, как ядро Linux. Это оказалось более серьёзной проблемой, так как в данный момент базовая (core) библиотека Rust неделима и представляет собой один большой blob - в ней нет возможности запросить только некоторые из возможностей, предотвратив использование той или иной проблемной функциональности. Решение проблемы может потребовать внесения изменений в компиляторе rust и библиотеки, при том, что на данный момент у команды ещё нет стратегии, как реализовать модульность библиотек языка.

куда интересней как они вот это будут решать

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

156. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (-), 20-Июл-21, 21:18 
> https://www.opennet.ru/opennews/art.shtml?num=54970
>> Ещё одной проблемой стали попытки использования вычислений с плавающей запятой или 128-битными типами, что не является допустимым для таких окружений, как ядро Linux. Это оказалось более серьёзной проблемой, так как в данный момент базовая (core) библиотека Rust неделима и представляет собой один большой blob - в ней нет возможности запросить только некоторые из возможностей, предотвратив использование той или иной проблемной функциональности. Решение проблемы может потребовать внесения изменений в компиляторе rust и библиотеки, при том, что на данный момент у команды ещё нет стратегии, как реализовать модульность библиотек языка.
> куда интересней как они вот это будут решать

Решать что? Проблемы перевода очередного пересказа "о расте"?


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

172. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (208), 20-Июл-21, 22:06 
Хехехе. Мне нравится как мэйинтейнеры ядра одним ленивым взглядом находят труднорешаемые проблемы для хипстеров.
Ответить | Правка | К родителю #103 | Наверх | Cообщить модератору

105. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (105), 20-Июл-21, 18:09 
Zig модный молодёжный, простой приятный, великий китайский C заменитель язык Xi кнопка УДАР!
Ответить | Правка | Наверх | Cообщить модератору

120. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +5 +/
Сообщение от Ванёк (?), 20-Июл-21, 19:03 
Опять занимаются велосипедостроением вместо полезных дел
Ответить | Правка | Наверх | Cообщить модератору

132. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –3 +/
Сообщение от Аноним (23), 20-Июл-21, 19:49 
Полезные дела для тебя оставили.
Ответить | Правка | Наверх | Cообщить модератору

137. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +2 +/
Сообщение от Аноним (137), 20-Июл-21, 20:36 
>> Особенностью драйвера является то, что его реализация практически построчно повторяет имеющийся драйвер GPIO на языке Си.

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

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

217. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от псевдонимус (?), 21-Июл-21, 00:30 
Именно!

За это расоноркоманов и не любят.

Может в вэб этому убожество нашлось бы место, но мазила Рип, а в вэб пхп, питон и го. И "умерший" перл, внезапно.

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

141. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +2 +/
Сообщение от Аноним (140), 20-Июл-21, 20:48 
Драйвера и на джаваскрипт можно писать. Давайте покажите класс что вы можете.
Ответить | Правка | Наверх | Cообщить модератору

210. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +3 +/
Сообщение от Аноним (208), 20-Июл-21, 23:48 
Ну зачем ты так сразу? Альтернативно одаренные трансгендерные кодеры еще не отошли от проблемы в leftpad (помним (с)), а ты сразу драйвер.
Ответить | Правка | Наверх | Cообщить модератору

230. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (230), 21-Июл-21, 03:47 
Альтернативно одаренные той проблемы даже не заметили. В зависимости же проблема, значит - не их.
Ответить | Правка | Наверх | Cообщить модератору

159. Скрыто модератором  +/
Сообщение от Аноним (208), 20-Июл-21, 21:28 
Ответить | Правка | Наверх | Cообщить модератору

166. Скрыто модератором  –1 +/
Сообщение от Аноним (166), 20-Июл-21, 21:55 
Ответить | Правка | Наверх | Cообщить модератору

175. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +2 +/
Сообщение от Dzen Python (ok), 20-Июл-21, 22:16 
Мне одному это очень сильно напоминает работу по кодингу от какой-нибудь девочки-зубрилки курсе на 2-3м любого ИТ-вуза нашей необъятной?

Поясняю: у каждого в группе она была - девушко, хорошистка, но при этом тупая как валенок в профильном предмете и выезжающая только на КВН, самодеятельности, я-волонтёрко-и-ниипёт, просиживанию штанов в профкоме и/или упорным лизанием задниц всем преподам текущего семестра. Которая лабы по тому же кодингу сдавала так же. Ну, вытягивала из реально шарящего студента накаляканный код, просто его красивенько форматировала, меняла пару переменных, а потом этот подсрочник пыталась сдать, падая на самых элементарных вопросах, вроде "зачем вообще нужна эта переменная" или "почему здесь заюзан алгоритм Маршалла-Фуллера вместо Клефа-Брайта?".

Блин, кто-нибудь из местных неананасных неыкспердов с расторассадников, объясните мне сакральную причину переделки в виде подстрочной трансляции в стиле той зубрилко, что ночью перед сдачей уродует код ботана, а не в виде оригинальной реализации GPIO? Где можно и язык показать с лучшей стороны, и вообще? Почему? Или все гуру раста полыхают на опеннете, в святой войне против Ыкспердов?

Нет, тут уже сравнивали эту реализацию с тестовым стендом двигла. Хорошо. Зачем брать уже миллион лет как зарекомендовавший себя ЖРД, стоящий последние полмиллиона лет буквально на всем, от пылесосов до Гиганских Космических Меха-Покорителях Вселенных, заменять каждую детальку кривой китайской копией, а заем снова впихивать на стенд? Не разумнее на основе этого двигла сделать (вырастить?) какой-нибудь Биосовместимый Ветропускающий Двигатель на горохе? Который делает ровно то же, но показывает преимущества органики перед металлом?

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

179. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +3 +/
Сообщение от Аноним (122), 20-Июл-21, 22:39 
Причина простая - показать си разрабам ядра как это выглядело бы на rust - такой себе розеттский камень. И они (в отличие от оппенетовских диванных кодеров) этим остались довольны. Можно посмотреть дальнейшую переписку в рассылке - там задают вопросы, обсуждают почему и как.
Если его переписать не транслирую (напр. поменять структуры данных где это можно) - то им будет очень сложно понять, потому что им этот язык вообще не знаком. Там нет каких-то зубодробительных фишек типа, только минимум чтобы оно работало точно так же. И этого уже достаточно.
Ответить | Правка | Наверх | Cообщить модератору

187. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (207), 20-Июл-21, 23:05 
>"почему здесь заюзан алгоритм Маршалла-Фуллера вместо Клефа-Брайта?".

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

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

195. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +2 +/
Сообщение от Аноним (-), 20-Июл-21, 23:19 
> Не разумнее на основе этого двигла сделать (вырастить?) какой-нибудь Биосовместимый
> Ветропускающий Двигатель на горохе? Который делает ровно то же, но показывает
> преимущества органики перед металлом?

Вместо ваяния сего пафосного опуса - прошел бы по ссылке lkml и прочитал предложение Грега взять в качестве примера имеющийся драйвер и предложение Линуса (не Т, но не суть важно) взять драйвер GPIO.
Но это было бы слишком скучно и вообще, читать дальше заголовка - невместно для уважающего себя опеннетчика, да?


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

211. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +2 +/
Сообщение от Аноним (208), 20-Июл-21, 23:53 
> Поясняю: у каждого в группе она была - девушко, хорошистка,

У нормальных пацанов девушку заменяет Бьерн Страуструп. Именно с его книгой они проводят ламповые теплые вечера и встречают рассвет. И эта любовь настолько сильна, что ни одна современная растовая соска ее не заменит.

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

413. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноньимъ (ok), 24-Июл-21, 04:20 
А потом пацаны одевают на себя пушистые костюмы с хвостмками и ушками и едут на фурфест.
Ответить | Правка | Наверх | Cообщить модератору

424. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноноша (?), 25-Июл-21, 21:52 
> А потом пацаны одевают на себя пушистые костюмы с хвостмками и ушками
> и едут на фурфест.

Вы про растоманов их мурзиллы?

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

426. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноньимъ (ok), 25-Июл-21, 22:24 
Ну к чему это притворство. Я про С++ пацанов.
Про растенианцев ничего не знаю, в близи не видел. А про кресты все давно знают что там к чему.
Ответить | Правка | Наверх | Cообщить модератору

183. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (207), 20-Июл-21, 22:51 
Поигравшись немного с растом я пришёл к следующему выводу.

1. Раст - сырой нестабильный язык, пользоваться которым на данный момент - боль и унижение. Потому что нет алсолютно необходимых примитивов, которые есть в других языках, потому что их запретил borrow-checker.

2. Из-за этого сообществу и Foundation приходится постоянно изобретать новые примитивы и идиомы, взамен тех, что нельзя использовать.

3. Пока этих примитивов нет, сообщество вынуждено с болью и унижением извращаться.

4. Когда примитивы появляются, счастью каждого разработчика нет предела. Можно выкинуть старое неудобное громозкое говно. Поэтому все сидят исключительно на nightly. Стабильные и бета  бесполезны - даже если лично вы предпочтёте извратиться, авторы других ящиков извращаться не будут.

5. Из-за таких вот постоянных подарков разработчикам раст и является самым любимым языком с самыми фанатичными фанатами.

6. Не смотря на быстрое развитие, это всё равно что вычерпывание моря. Пригодным для разработки раст станет нескоро. Но когда станет - всех порвёт. Если раньше профессию программиста не упразднят и не переложат на GPT-5.

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

188. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +3 +/
Сообщение от Аноним (122), 20-Июл-21, 23:07 
Ну, ты из 6 пунктов целых 4 посвятил "абсолютно необходимым примитивам", но не назвал ни одного... Или примитивы твои слишком известны, чтобы ты их называл?)
Ответить | Правка | Наверх | Cообщить модератору

196. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –3 +/
Сообщение от Аноним (193), 20-Июл-21, 23:19 
а ты точно с растом поигрался?)
Ответить | Правка | К родителю #183 | Наверх | Cообщить модератору

215. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (212), 21-Июл-21, 00:21 
а ты точно читать умеешь?
Ответить | Правка | Наверх | Cообщить модератору

264. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –3 +/
Сообщение от Michael Shigorinemail (ok), 21-Июл-21, 10:30 
> Поигравшись немного с растом я пришёл к следующему выводу.

Спасибо, занятно -- и полностью бьётся с упомянутой в #262 статьёй, вот её заключение:

---
The kitchen sink approach doesn’t work. Rust will eventually fail to the “jack of all trades, master of none” problem that C++ has. Wise languages designers start small and stay small. Wise systems programmers extend this philosophy to designing entire systems, and Rust is probably not going to be invited. I understand that many people, particularly those already enamored with Rust, won’t agree with much of this article. But now you know why we are still writing C, and hopefully you’ll stop bloody bothering us about it.
--- http://drewdevault.com/2019/03/25/Rust-is-not-a-good-C-repla...

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

Делающие-то не визжат.

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

269. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +4 +/
Сообщение от Аноним (269), 21-Июл-21, 11:07 
Ну а чего только выводы цитировать? В статье есть более интересные моменты, напр:
"Yes, Rust is more safe. I don’t really care. In light of all of these problems, I’ll take my segfaults and buffer overflows."
Собственно больше добавлять и него.

Для автора статьи портабилити, неуменее работать с карго и "C has many implementations" важнее безопасности. Ну ок. Это вполне созвучно с последними новостями с главной (очередная "21.07 Root-уязвимость в ядре Linux")

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

391. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от yet another anonymous (?), 23-Июл-21, 00:05 
> Для автора статьи портабилити, неуменее работать с карго

про засаду с cargo автор всё понял.

> и "C has many implementations" важнее безопасности.

О. Вот тут вы и вскрылись: надо отдаться попечительскому совету, который обеспечит подгрузку необходимого кода (с нужными "решениями") прямо в любой проект. Следующий уровень: надо не внедряться в 100500 проектов, а контролировать подкачиваемые бинари.

> Ну ок. Это вполне созвучно с последними новостями
> с главной (очередная "21.07 Root-уязвимость в ядре Linux")

Ээээ, а откуда у нас там eBPF завёлся, не поясните? Следом за rust с cargo ядро будет подгружать что-то вроде eBPF-байткода исключительно из "проверенных" источников?

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

402. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (402), 23-Июл-21, 19:47 
Нет никакой засады. Обычный make и rustc спасет отца русской демократии. Правда будут такие портянки Makefile как и для си.
Плюс сам карго можно локально развернуть - это совсем не сложно. Просто читайте маны https://doc.rust-lang.org/cargo/reference/specifying-depende... и все будет свое локальное.

> надо отдаться попечительскому совету

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

А там не в eBPF дело. Просто очередной выход за границы буфера, дело-то житейское.

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

403. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от yet another anonymous (?), 23-Июл-21, 21:52 
> Правда будут такие портянки Makefile как и для си.

Вы уж как-то аккуратней мемы с такой коннотацией пользуйте, если не хотите про методичку услышать.

> Плюс сам карго можно локально развернуть - это совсем не сложно. Просто читайте маны ...

Ни разу не видел развернувших "своё, локальное" для ... ну, скажем, мнэ...,  node.js.
Зато мемы про результат этой продвинутой стратегии --- на этом ресурсе в избытке.

> нужно отдать комитету по стандартизации wg14... оу щи, это же совсем другое!

Раньше было другое. Сечас с ускорением дрейфует в аналогичном направлении. С усилением доли кое-кого.

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

Тут комментировать нечего: один из методов "к победе в дискуссии".

> А там не в eBPF дело.

Да так, оно там чуть более, чем существенно.

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

382. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от freecoder (?), 22-Июл-21, 20:56 
Вот читаю ваш отзыв и офигеваю, как же я ухитряюсь на стабильном расте уже 3 года писать в прод и не испытывать проблем? Мистика какая-то..
Ответить | Правка | К родителю #183 | Наверх | Cообщить модератору

214. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –3 +/
Сообщение от псевдонимус (?), 21-Июл-21, 00:20 
>построчно повторяющий

И после этого кто-то удивляется травле и глумлением над нарко..оастоманами.

Ну да и пусть. Линукс все равно спасать нет смысла. Да и нечего там спасать. Все, что в нем есть ценного драйвера.

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

225. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (-), 21-Июл-21, 02:30 
https://lore.kernel.org/ksummit/YOdJLYmUkoMyszO7@kroah.com/
>> From: Greg KH <greg@kroah.com>
>>  And really, there is no need to dig through a huge spec, try porting an existing C driver will be much easier.
>> From: Linus Walleij <linus.walleij@linaro.org>
>> With my GPIO maintainer hat on I'd say a GPIO driver would be quite interesting to look at.
>>>построчно повторяющий
> И после этого кто-то удивляется травле и глумлением над нарко..оастоманами.

Перепись "не читавших, но ценное мнение имеющих" уже есть выше.

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

219. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (218), 21-Июл-21, 01:17 
Линус ещё 2 недели назад написал:
"At least the argument is that Rust _fixes_ some of the C safety
issues. C++ would not."

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

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

316. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноноша (?), 21-Июл-21, 16:26 
Можно почитать рассылку приведенную в посте и увидеть реальные вопросы не в пользу раста. Я пока не вижу восторженных отзывов.
Ответить | Правка | Наверх | Cообщить модератору

340. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (218), 21-Июл-21, 19:18 
Там предметный технический разговор профессионалов, а тут только байт от неучей.
Ответить | Правка | Наверх | Cообщить модератору

369. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от Аноним (-), 22-Июл-21, 11:01 
Годный байт от неучей. Раст - не нужен, Чистый Си - вечен.
Ответить | Правка | Наверх | Cообщить модератору

234. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +2 +/
Сообщение от Аноним (234), 21-Июл-21, 04:18 
Как можно потом искать ошибки в абсолютно нечитаемой лапше из закорючек? Раст не должен восприниматься как язык, позволяющий писать корректный код
Ответить | Правка | Наверх | Cообщить модератору

243. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от OnTheEdge (??), 21-Июл-21, 08:32 
А зачем их искать? Можно их оставить ведь это так удобно что при обращении к разыменованному указателю приложение не падает в сегфолт, а делает ничего. А то что указатель это может быть логической ошибкой решительно ни одного хрустика не интересует.
Ответить | Правка | Наверх | Cообщить модератору

261. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (261), 21-Июл-21, 10:17 
Стиль написания жесть..

>>

  fn ack(data: &Ref<DeviceData>, irq_data: &IrqData) {
        let mask = bit(irq_data.hwirq() % u64::from(PL061_GPIO_NR));
        let _guard = data.lock();
        if let Some(pl061) = data.resources() {
            let _ = pl061.base.try_writeb(mask.into(), GPIOIC);
        }
    }
>>

вот и гадай где data.lock() отпустят. или в какой-то из функций внутри или по выходу..

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

317. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноноша (?), 21-Июл-21, 16:28 
Предположу, что по выходу, ибо _guard никуда не передается.
Ответить | Правка | Наверх | Cообщить модератору

346. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Ordu (ok), 22-Июл-21, 00:27 
> вот и гадай где data.lock() отпустят. или в какой-то из функций внутри или по выходу..

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

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

Но в целом, я согласен, несколько странный API. Я бы ожидал чего-нибудь в стиле:

  fn ack(data: &Ref<DeviceData>, irq_data: &IrqData) {
        let mask = bit(irq_data.hwirq() % u64::from(PL061_GPIO_NR));
        let data_ref = data.lock();
        if let Some(pl061) = data_ref.resources() {
            let _ = pl061.base.try_writeb(mask.into(), GPIOIC);
        }
    }

То как оно написано, неясно что будет, если я, не сделав data.lock(), попытаюсь вызвать data.resources(). Я получу панику? Или чтение без синхронизации? Разве не стоило бы сделать невозможным обращение к resources без синхронизации, если синхронизация нужна?

Если иногда надо с синхронизацией, а иногда можно без неё, я б пометил метод IrqData::resources как unsafe, чтоб соблазна не возникало без нужды его дёргать, а если хочешь без unsafe, то вызови IrqData::lock, получи взамен "умный указатель" IrqDataLocked, который предоставит тебе метод IrqDataLocked::resources, который уже не будет unsafe. Но с другой стороны, я ничего не знаю про этот IrqData, может и есть какое-то обоснование тому, как они сделали.

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

349. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –3 +/
Сообщение от Аноним (347), 22-Июл-21, 01:14 
Какая прекрасная логичность и целостность языка: для указания, что переменная изменятся, надо добавить отдельное слово "мут", а что она не используется - к имени пририсовать подчеркивание.

Логика уровня "раст".

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

355. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Ordu (ok), 22-Июл-21, 02:12 
> Какая прекрасная логичность и целостность языка: для указания, что переменная изменятся,
> надо добавить отдельное слово "мут", а что она не используется -
> к имени пририсовать подчеркивание.

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

Пускай у нас есть функция:

fn rotate_vector(x: f32, y: f32, angle: f32) -> (f32, f32) {
...
}

Она принимает координаты вектора и угол и возвращает tuple из двух флоатов, которые представляют собой координаты повёрнутого вектора. Я могу написать:

    let coords = rotate_vector(1.0, 0.0, 90.0);

и потом ссылаться на x, через coords.0, а на y через coords.1, но я могу поступить интереснее:

    let (x, y) = rotate_vector(1.0, 0.0, 90.0);

это называется деструктуризация: при присвоении я разбиваю структуру из правой части на именованные куски, в данном случае на x и y. Оно так чаще понятнее выходит.

Но что делать, если мне нужен, скажем, только x? Если я оставлю y, то раст начнёт варнинги кидать о том, что переменная y не используется. На такой случай можно написать:

    let (x, _) = rotate_vector(1.0, 0.0, 90.0);

тут _ -- это специальное имя для переменной, которая не используется, но она нужна только чтобы место занять конкретно в этом выражении. Этот _ можно читать как "пoxpeн что".

Но иногда хочется в коде оставить подсказку, что же там в _: если переменной дать название, то код будет понятнее, будет сразу понятно, какие части возвращаемого значения мы игнорим. Читать проще. И вот тут как раз можно и рыбку съесть и жoпy не ободрать:

    let (x, _y) = rotate_vector(1.0, 0.0, 90.0);

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

> Логика уровня "раст".

Ты льстишь расту. В этом нет ничего нового. Такого рода штуку я ещё в пайтоне видел. Но там, если память мне не изменяет, вместо _ используется *. И я вот не упомню точно, но, вроде, я не только в расте видел использование значка _ в смысле "пoxpeн что".

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

385. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от freecoder (?), 22-Июл-21, 21:18 
Вообще-то _ и _y - это принципиально разные вещи. Просто подчеркивание - это вообще не имя, а служебное слово языка, которое в паттерне обозначает игнорирование. Это важно понимать, так как в этом случае никакого связывания вообще не происходит, в отличии от варианта _y, где используется уже действительно имя и оно связывается со значением.
Ответить | Правка | Наверх | Cообщить модератору

387. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Ordu (ok), 22-Июл-21, 21:40 
> Вообще-то _ и _y - это принципиально разные вещи. Просто подчеркивание -
> это вообще не имя, а служебное слово языка, которое в паттерне
> обозначает игнорирование.

Ты говоришь, что это принципиально разные вещи, в чём "принципиальность" разницы? Что ты называешь принципиальной разницей? Чем принципиальная разница отличается от непринципиальной?

Тебе не кажется, что синтаксис языка определяет, что принципиально разные вещи в этом языке, а что нет? Мне кажется, что именно так. Если синтаксис языка говорит, что if принципиально отличается от foo, потому что if -- это ключевое слово, то значит это принципиальное отличие. Вот lisp, например, не говорит, что if -- это что-то принципиально отличающееся от foo, if -- это просто ещё один символ, и действие его ты можешь повторить, реализовав if как макрос. Ты можешь присвоить значение if'у, или сделать его функцией. В лиспе эта разница непринципиальна. В лиспе просто принято использовать if, как if. В C же if -- это ключевое слово, его поведение невоспроизводимо средствами языка, ты не можешь средствами языка переопределить if и научить его танцевать польку.

> Это важно понимать, так как в этом случае никакого
> связывания вообще не происходит, в отличии от варианта _y, где используется
> уже действительно имя и оно связывается со значением.

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

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

421. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от freecoder (?), 25-Июл-21, 18:24 
> Ты говоришь, что это принципиально разные вещи, в чём "принципиальность" разницы?
> Связывание происходит в обоих случаях, только в первом с безымянной переменной, во
> второй с переменной имеющей имя. В любом случае значение будет существовать
> до выхода переменной из области видимости.

Разница принципиальная, так как в случае использования _ нет никакого байндинга и нет передачи владения (потому что подчеркивание - это не имя). А вот в случае использования имен _x - байндинг есть и передача владения есть. Вот этот код скомпилируется:

let string = Some("foo".to_string());
if let Some(_) = string {
}
println!("{:?}", string);

Но если ты заменишь _ на _x - то не скомпилируется.

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

422. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Ordu (ok), 25-Июл-21, 18:59 
> вот в случае использования имен _x - байндинг есть и передача
> владения есть. Вот этот код скомпилируется:
> let string = Some("foo".to_string());
> if let Some(_) = string {
> }
> println!("{:?}", string);
> Но если ты заменишь _ на _x - то не скомпилируется.

Хм. Да, действительно.

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

398. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от n00by (ok), 23-Июл-21, 07:23 
> вроде, я не только в расте видел использование значка _ в
> смысле "пoxpeн что".

В паттерн-матчинге _ используется именно в таком смысле, вот пример на OCaml:


let fib n =
  let rec fib_aux m a b =
    match m with
    | 0 -> a
    | _ -> fib_aux (m - 1) b (a + b)
  in fib_aux n 0 1

в данном случае из-за вывода типов возможные значения _ сужены до "любое целое".
Ответить | Правка | К родителю #355 | Наверх | Cообщить модератору

414. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноньимъ (ok), 24-Июл-21, 04:31 
Это ещё в лиспе было в бородатые года когда сишка была бредовой фантазией в головах корпорастов.
Ответить | Правка | К родителю #355 | Наверх | Cообщить модератору

358. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (-), 22-Июл-21, 03:27 
> Какая прекрасная логичность и целостность языка: для указания, что переменная изменятся,
> надо добавить отдельное слово "мут", а что она не используется - к имени пририсовать подчеркивание.
> Логика уровня "раст".

http://www.cse.unsw.edu.au/~billw/dictionaries/prolog/
>> the appearance of the same variable in two (or more places) in effect says that when the variable is bound to a value, it must be bound to the same value in all the places that it appears in a given rule.
>> The Prolog variable _ (underscore) is a "don't-care" variable, which will match anything (atom, number, structure, …). For example, the rule
>>  In Prolog interpreters that report singleton variables (variables that are only used once in a rule - often these are caused by typographical errors in the code, which is why Prolog warns you about them) do not report singleton variables that begin with _

Какой прекрасный парад невежества уровня "опеннетный антирастовый комментарий".  

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

365. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Совершенно другой аноним (?), 22-Июл-21, 09:37 
как я понимаю претензия была не к переменной "_", а к тому, что к префиксу "_" привязали какой-то функционал/ограничение. Правда я не понял, это так на уровне языка потребовали (в каких-нибудь официальных документах), и я уже не имею права называть свои переменные с символом подчёркивания в начале, или это такая негласная, но широко распространённая договорённость.
Ответить | Правка | Наверх | Cообщить модератору

386. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от freecoder (?), 22-Июл-21, 21:23 
Неиспользуемая переменная - это ворнинг компилятора. Несколько раз меня спасал от досадных логических ошибок.
Ответить | Правка | Наверх | Cообщить модератору

366. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Совершенно другой аноним (?), 22-Июл-21, 09:57 
Впрочем, перечитал Ordu - если действительно компилятор на это подчёркивание смотрит, решение довольно странное, более логично было-бы его подкрашивать через ключевое слово, имхо.
Ответить | Правка | К родителю #358 | Наверх | Cообщить модератору

378. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Ordu (ok), 22-Июл-21, 14:36 
> Впрочем, перечитал Ordu - если действительно компилятор на это подчёркивание смотрит, решение
> довольно странное, более логично было-бы его подкрашивать через ключевое слово, имхо.

Это могло бы быть логичным в C или в C++. Поэтому в них есть __attribute__((unused)). В расте это не логично. Потому как:

1. Раст настаивает на том, чтобы неиспользуемые переменные были бы помечены как неиспользуемые. Местами он задалбывает этим хуже некуда, когда у тебя неиспользуемость временна, и ты компиляцию используешь только чтобы проверить наполовину написанный кусок кода. Или если ты закомментировал половину кода, чтобы посмотреть на то как будет работать без неё. Писать __attribute__((unused)) к каждой переменной, которая не используется, бррр

А как насчёт такого (допустим, что open там возвращает не -1 в случае ошибки, а очень по растовому Err(some_error), а в случае успеха -- Ok(file_descriptor)):

let filedesc = match open(file_name, O_APPEND) {
     Ok(fd) => fd,
     Err(_) => panic!("I cannot open file {:?}. I'm panicking now and going to die soon.", file_name),
};

Видишь там Err(_)? Это тоже деструктуризация, на этот раз в процессе паттерн-матчинга, и это тоже объявление неиспользуемой переменной. можно было бы написать Err(_error) например. Если ты там не обозначишь переменную как неиспользуемую, то раст начнёт тебя клевать, мол, "переменная не используется". И что, ещё туда вставлять __attribute__((unused))? Как ты потом читать будешь всё это?

2. Компилятор раста, хоть и любит заклёвывать своим перфекционизмом, очень заботливый, и если ты, читая RustBook не обратил внимания на _ или обратил, но забыл потом, то он по-ходу дела объяснит тебе, как и когда его использовать. Если б он не был таким заботливым, я подозреваю, растоманов было бы в разы меньше, потому как через несколько часов возни с компилятором, ведущим себя как дятел-перфекционист, они бы разбили бы себе мониторы и растоптали бы свои клавиатуры. С рядах растоманов остались бы только 100% флегматики, абсолютно неспособные к эмоциям.

А, и ещё, ежели тебе кажется, что трактовать имена переменных с определённым префиксом специальным образом, это изобретение rust'а, то опять это не так. В Common Lisp'е имена символов начинающиеся с : в начале автоматически имеют себя в качестве своего значения, их поэтому можно использовать как символические ключи в парах (ключ значение), не парясь о том, чтобы квотировать их дописывая ' в начале. То есть это вроде как и переменная, но сколько бы раз в процессе вычислений на эту переменную не выполнялся бы eval, она от этого не изменится. Очень удобно. Можно было бы ключами использовать строки, типа ("ключ" значение), но там ряд неудобств возникает: кавычек много писать надо, и :ключ будет иметь ровно одну копию в памяти, в то время как строк "ключ" может быть создано сколько угодно, и хоть они и будут равны друг-другу, но они будут разными объектами, занимающими память, и проверять на равенство их каждый раз придётся посимвольно, то есть со сложностью O(N), вместо O(1).

Тоже кстати дискриминация: почему я не могу называть свои переменные с именем, начинающимся с двоеточия? =)

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

374. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Ordu (ok), 22-Июл-21, 13:58 
> http://www.cse.unsw.edu.au/~billw/dictionaries/prolog/

О, точно же, в прологе так было!

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

377. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (377), 22-Июл-21, 14:28 
>> http://www.cse.unsw.edu.au/~billw/dictionaries/prolog/
> О, точно же, в прологе так было!

Ну да, правда в раст оно скорее всего из хаскеля попало:
https://typeclasses.com/underscore
> When the underscore appears alone in a pattern,This is perhaps the most common use of an underscore. it is a reserved identifier that acts as a wildcard: a pattern that matches anything A pattern that always succeeds is called an irrefutable pattern. but does not introduce a new variable.
> Beginning a name with an underscore is sometimes used to name variables we will not use – and thus don’t really care about – but care just enough about to give it a name to remind ourselves of what is being discarded.

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

268. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от lindevel (?), 21-Июл-21, 10:58 
350 строчный GPIO драйвер, нарошно искали максимально простой драйвер, вместо того, чтоб написать что-то практичное
Даже этот драйвер запороли, например "#ifdef CONFIG_PM" просто выпилили, без какой либо замены на раст код
А это что такое?
                    }
                }
            }
        }
    }
}
6 закрывающих скобок подряд
Еще глянул html файл, синий текст на черном фоне... очень удобно читать
А в html коде "<!-- HTML generated using hilite.me -->", что как бы намекает, что растоман не смог даже простейший html написать ручками
Ответить | Правка | Наверх | Cообщить модератору

271. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (271), 21-Июл-21, 11:22 
Смузихлебы уже все Unix утилиты (ls, du, etc) на раст переписали, из полезного только ripgrep и то преимущества спорны, зато менее функционален по сравнению с grep. Теперь будут также бесполезно драйверы переписывать. Напомню, свою ос растеры не осилили, течёт как плотина весной.
Ответить | Правка | Наверх | Cообщить модератору

318. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноноша (?), 21-Июл-21, 16:31 
fuchsia? Правда пока в дикой природе не встретишь.
Ответить | Правка | Наверх | Cообщить модератору

418. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от protonessoemail (?), 24-Июл-21, 14:02 
Ядро всё ещё на C++
Ответить | Правка | Наверх | Cообщить модератору

423. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноноша (?), 25-Июл-21, 21:51 
> Ядро всё ещё на C++

Спасибо! Просмотрел этот момент.

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

321. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (321), 21-Июл-21, 17:02 
Отцы, ну вы блин развели срач …
Может пусть Торвальдс решит, является ли переписанный код драйвера полезным или нет
Ответить | Правка | Наверх | Cообщить модератору

325. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –2 +/
Сообщение от Урри (ok), 21-Июл-21, 17:34 
А Торвальдс - господь бог, что ли?

У нас тоже свои мозги есть. А некоторые из нас еще и программированием на жизнь зарабатывают. И это все называется "коммьюнити".

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

395. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от СССР (?), 23-Июл-21, 06:54 
вы своей комьюнити перепишите линукс на раст и будет вам счатье, и пихайте в него хоть что, ок? а продукт и человека который этому продукту жизнь посвятил, не нужно затрагивать , зопли еще не высохли у тебя под носом. комюнити покемонов.
Ответить | Правка | Наверх | Cообщить модератору

351. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (351), 22-Июл-21, 01:54 
> Rust для ядра Linux, бесполезен и не решает реальных задач
> Особенностью драйвера является то, что его реализация практически построчно повторяет имеющийся драйвер GPIO на языке Си

Они решили наглядно продемонстрировать бесполезность?

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

353. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (352), 22-Июл-21, 02:02 
Ошиблись в слове безопастность
Ответить | Правка | Наверх | Cообщить модератору

356. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (351), 22-Июл-21, 02:51 
Да какая там в пень безопасность, один к одному конвертнули сишный код и в unsafe все обернули.
Ответить | Правка | Наверх | Cообщить модератору

392. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от gogo (?), 23-Июл-21, 02:51 
Именно. Линус говорил, что мол ничего полезного не написано. А они не новое написали, а ПЕРЕписали.
Ответить | Правка | К родителю #351 | Наверх | Cообщить модератору

354. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (352), 22-Июл-21, 02:04 
А что там с Radix его совсем забросили или будут что-то доделывать?
Ответить | Правка | Наверх | Cообщить модератору

371. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (-), 22-Июл-21, 11:09 
Не зннаю.
Ответить | Правка | Наверх | Cообщить модератору

388. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +1 +/
Сообщение от Аноним (388), 22-Июл-21, 21:53 
от ваших растов, тошнит уже даже больше чем от опеннета.
Ответить | Правка | Наверх | Cообщить модератору

393. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Растофиля (?), 23-Июл-21, 02:55 
RUST безоп-а-а-а-сный, ко-ко-ко!!1!


https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=rust

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

394. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от СССР (?), 23-Июл-21, 06:50 
ну преобразуйте на java, преобразуйте на pascal? питон, и что? уже противно читать про про всякое дерьмо позволяющее улучшить код при помощи языка. может программисты начнут хоть немного втыкать что они пишут?
Ответить | Правка | Наверх | Cообщить модератору

399. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Ordu (ok), 23-Июл-21, 15:41 
> может программисты начнут хоть немного втыкать что они пишут?

Программированию скоро уже век исполнится. До сих пор не научились. Сколько ты считаешь возможным ждать у моря погоды?

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

405. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Аноним (405), 23-Июл-21, 22:56 
> Программированию скоро уже век исполнится.

Какой век?! Пневмо-гидро-логические программируемые элементы были уже в Древней Греции. Не говоря уж про механику программируемую (вал, штыри, верёвка).

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

406. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  –1 +/
Сообщение от Аноним (405), 23-Июл-21, 22:57 
Но, как показала практика, древние программисты были умнее современных растаманов.
Ответить | Правка | Наверх | Cообщить модератору

419. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от СССР (?), 24-Июл-21, 23:50 
они есть, просто от той масса новых, которая зашла в отрасль, не требуется разрабатывать структуры данных, оптимизировать. Требуется создавать контент либо решать бизнес-логику котораю уже завтра изменится и потребует переписки уже кода. А сейчас эта масса быдлокодеров считает себя как класс, заявляет свои права на переписку частей ядра (как пример) на модный язык.
Ответить | Правка | К родителю #399 | Наверх | Cообщить модератору

420. "Для ядра Linux предложен драйвер GPIO, написанный на Rust"  +/
Сообщение от Ordu (ok), 25-Июл-21, 13:56 
> они есть, просто от той масса новых, которая зашла в отрасль, не
> требуется разрабатывать структуры данных, оптимизировать. Требуется создавать контент
> либо решать бизнес-логику котораю уже завтра изменится и потребует переписки уже
> кода. А сейчас эта масса быдлокодеров считает себя как класс, заявляет
> свои права на переписку частей ядра (как пример) на модный язык.

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

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

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

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




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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