URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 124847
[ Назад ]

Исходное сообщение
"Для ядра Linux предложен драйвер GPIO, написанный на Rust"

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

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


Содержание

Сообщения в этом обсуждении
"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено OnTheEdge , 20-Июл-21 16:01 
завертелось...

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Dzen Python , 20-Июл-21 16:55 
Как в машинке "Вятка-Автомат". Жизнь-то закрутится, завертится.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено _hide_ , 20-Июл-21 17:17 
А чем растовый вариант драйвера лучше сишного? Без стёба?

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

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


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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Michael Shigorin , 21-Июл-21 09:05 
> Что невозможно ни в C ни в С++.

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


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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено BorichL , 21-Июл-21 15:33 
Михаил, вы такими вопросами разрушаете радужный мир розовых пони растоманов! Они привыкли, что за них Гниль думает, самим нынче думать не в моде, некогда...

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено yet another anonymous , 22-Июл-21 23:29 
Не, не разрушает. Тьюринг свою машину возле них не парковал.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 25-Июл-21 22:00 
Вам знаком термин сложность алгоритма? Вы пытались написать проверку во всех местах, где это делает Rust-компилятор? Изучали ли в университете дискретную математику или вообще математику - не спрашиваю)

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:28 
Тем что большее количество UB отловлено на этапе компиляции. У кода появляются формальные гарантии

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено _hide_ , 20-Июл-21 20:18 
Вы вообще пример драйвера на смотрели?

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Dzen Python , 20-Июл-21 17:49 
Если говорить серьезно - ничем.

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

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

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

    j = i++ + ++i;

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Ananimasss , 20-Июл-21 20:34 
Простите экс вебмакаку, но что казуистического в примере?
Прибавится единичка к  i до сложения, выполнится сложение и запишется в j, после прибавится 1 к i.
Где-то это не так?

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено ананим.orig , 20-Июл-21 21:24 
> Прибавится единичка к  i до сложения, выполнится сложение и запишется в j, после прибавится 1 к i.

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Урри , 20-Июл-21 23:08 
Два неуча.

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Anonymoustus , 20-Июл-21 23:21 
На PDP тоже так было, великий гуру?

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Урри , 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.


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

Убедил.


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Кир , 22-Июл-21 03:25 
Откуда ж вы лезете, знатоки C++ по учебникам C лохматых 90-х?

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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 13:28 
Для ядра важно, как это делает конкретно gcc.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Кир , 21-Июл-21 16:37 
Для неуча:

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Урри , 21-Июл-21 17:41 
> Для неуча:

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

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

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

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


"Для ядра 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 что-то изменилось.


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Кир , 22-Июл-21 00:23 
А в целом, придирка к неопределенному порядку вычислений выражений сама по себе дурацкая донельзя: порядок вычислений не фиксировали в стандарте не потому, что нешмагли, а для того, чтобы не наступать на горло оптимизирующему компилятору, который может сгенерировать более эффективный код, изменив порядок вычислений.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено freecoder , 22-Июл-21 08:10 
Ага, в этом автомобиле нет ремней безопасности да и вообще нет кресел не потому, что "не шмогли", а потому, что лишний вес мешает разгоняться.

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

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

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Anonymoustus , 20-Июл-21 23:20 
Как там у вас?


let a = 1
undefined


Так?


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено freecoder , 22-Июл-21 08:11 
Нет, не так. Что спросить-то хотел?

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено None , 20-Июл-21 23:18 
Когда мы видим одну операцию присваивания, а реально их три - да, фигня получается.
Зато удобно автоинкрементную/автодекрементную индексацию как бы описывать.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 02:40 
> j = i++ + ++i;

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Урри , 21-Июл-21 17:45 
> Я где-то ошибаюсь?

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

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


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

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Anonimus , 22-Июл-21 09:17 
```int a[] = {1,2}; int b = a[2]```

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


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

"Для ядра 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);

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


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

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


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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Линус , 20-Июл-21 20:39 
Сделай.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 22:48 
> Причем на первых 3х это уже давно делают.
> ...уже давно делают...

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Ordu , 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х это уже
> давно делают.

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Урри , 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
}


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


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

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

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

И чё?

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Урри , 21-Июл-21 17:53 
> ref_count существовал до всех этих ваших C, не надо его недооценивать.

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

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

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

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

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

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


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

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

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

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

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


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

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

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


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

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

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

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


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

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

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

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

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

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


"Для ядра 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",
}

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


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

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

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

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

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


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

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


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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 22:50 
Растаманы пытались всё это сделать, но редох начал течь... Поэтому переключились на линух.

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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 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.

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

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

пофиксил.


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 16:01 
А вот это действительно очень круто.

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:07 
Не тупи, это хороший прогресс, который поможет разобраться в написании драйверов, демонстрирует работу драйвера и в целом инфоповод

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Урри , 20-Июл-21 23:25 
Инфоповод, согласен. Я три программерских чата заставил ржать аки лошади.

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

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноньимъ , 24-Июл-21 03:47 
Не понял шутки, это же сипипишка, стандартная для шиндовс штука.

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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Я , 21-Июл-21 01:58 
вообще-то именно так и делают гайды для тех кто хочет писать драйвер на расте но умеет только на си.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Moomintroll , 21-Июл-21 10:14 
> для тех кто хочет писать драйвер на расте но умеет только на си

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним 80_уровня , 22-Июл-21 15:33 
Посмотрел бы я на тех людей, которые умеют писать драйверы на Си, но при этом хотят писать драйверы на Расте.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним зеленый , 22-Июл-21 21:12 
Тут это пруф отсутствия ошибок работы с памятью.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено СССР , 23-Июл-21 06:57 
йобу дался чтоль?

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено lockywolf , 20-Июл-21 16:04 
Жалко, что не на С++, но вообще молодцы.

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

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 16:08 
Бро, я пишу на C++ больше 10 лет.
Да, чуть удобнее C, но всё та же помойка.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 16:10 
скорее всего вы просто за 10 лет не научились писать на С++.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Crazy Alex , 20-Июл-21 16:11 
Скорее всего он так и пишет на С++98.

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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Rev , 20-Июл-21 16:30 
Писать хорошо можно на чём угодно, только статистика говорит о том, что никто на это не способен.
Так что нужен компилятор, который перепроверит код на наличие тупости перед компиляцией.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 21:07 
Только раст на эту роль не претендует

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 22-Июл-21 00:47 
Компилятор должен компилировать то, что дадут. А анализировать должен анализатор.

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Урри , 20-Июл-21 17:06 
На си-с-классами.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:16 
C++17 в среднем.

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено деанон , 20-Июл-21 19:03 
В чем проблема, пишите на java и c#

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 20:45 
Вот это контраргумент, уделал его, уничтожил.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено деанон , 20-Июл-21 22:13 
Ну, начнем с того, что у него в предложении совершенно несвзанные вещи в качестве "аргументов"

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 06:55 
Ну ты жжощ по детски

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

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

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

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

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Noname , 21-Июл-21 11:31 
Даже не представляю, как без этого все эти программисты на плюсах живут!

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено n00by , 22-Июл-21 14:19 
> дефолт пакетного менеджера
> дефолт системы сборки
> дефолт стайл гайдов

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


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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено OnTheEdge , 20-Июл-21 16:06 
ну так весь смысл в пресловутой безопасности раста, так что упоминание плюсов здесь просто неуместно

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

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

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

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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено деанон , 20-Июл-21 22:31 
Ля, проблемы с зависимостями. Мы ещё посмотрим на лешаси Раста, лол

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Урри , 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 собирает.


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Кир , 21-Июл-21 01:38 
Удивительно, у меня в системе процентов 15-20 софта собрано из исходников без единой проблемы. Что я делаю не так?

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Michael Shigorin , 21-Июл-21 09:13 
> Удивительно, у меня в системе процентов 15-20 софта собрано
> из исходников без единой проблемы. Что я делаю не так?

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Michael Shigorin , 21-Июл-21 09:11 
> С первого раза не соберётся никогда и ничего

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

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

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

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

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Урри , 21-Июл-21 17:16 
Тот редкий случай, когда Шигорин авторитетно заявляет и прав.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 09:12 
> сишкой

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 00:58 
Ну сходи в рассылку ядра и ответь на критику Линуса. Или комменты на опеннете - твой потолок?

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено _kp , 20-Июл-21 18:04 
В с++ инициализацию структур до сих пор тормозят на уровне 90х годов, что вынуждает в с++ проекте всё равно тянуть  си файлы...

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Кир , 21-Июл-21 01:41 
Вот, типичнейшая иллюстрация к тезису о дремучести критиканов C++. Человек застрял на уровне C и по нему судит о C++.

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

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

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

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


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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено КО , 20-Июл-21 16:05 
"практически построчно"
И внизу полотно комментов, разбирающий и исправляющий ошибки в раст варианте...
Не вижу реальной пользы в перестановке стульев.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 16:07 
Довольно наглядно сравнивать, почему синтаксис Растп делает код приятнее. Думаю, это основная цель.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 16:12 
О да. Сам то понял что ступил?

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено заминированный тапок , 20-Июл-21 17:09 
это у него очень тонкий юмор

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:17 
Где ступил? Посмотри на код, у Раста и меньше, и красивее

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено CGo_one_love , 20-Июл-21 17:53 
Так женись на нём. Наверно заместили естественный объект красоты и малой ширины на искусственный.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено VladSh , 21-Июл-21 11:28 
Видать сам женат на C?

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено danonimous , 20-Июл-21 20:54 
Они вероломно использовали одну хитрость, чтобы код на rust занимал меньше строк - не переносили скобки на новую строку :)

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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 21:37 
Не знаю не С, не Rust
Но код на С выглядит понятнее О_о

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 21:48 
> Не знаю не С, не Rust

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



"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Michael Shigorin , 21-Июл-21 09:15 
>> Не знаю не С, не Rust
> Не стесняйся, большей части местных "анти" комментаторов
> это никак не мешает.

s/"анти" //


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено proninyaroslav , 20-Июл-21 21:03 
Ну так это не предполагается для текущих драйверов (именно из-за ошибок при переписывании того что уже работает), а для якобы новых.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 16:06 
недолюбливаю я этот rust, внутреннее чутье подсказывает мне что GPIO будет теперь менее стабилен.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 16:27 
"Не читал, но осуждаю", да?

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

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

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 22-Июл-21 04:38 
Почему просто не забанить всех растоманов? Все равно у них интеллект как у js разработчиков и они не смогут ничего путного сказать по определению

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 16:11 
Ктобы сомневался что ничего полезного он итаки не сделают. Только вон построчно и могут заменить даже не включая мозга. Но это раст детка.

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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 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 - мы поглядим, не обещаем что замержим"
переписали - анонимы опеннета опять недовольны.
> Ктобы сомневался что ничего полезного он итаки не сделают.

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



"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:19 
обоже, только ослы с опеннета могут глубокий WIP с иными целями посчитать за что-то мегаважное и до* на пустом месте

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:34 
прошу прощения, психануло)

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

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 16:26 
Синтаксис не проблема, тем более он не так сильно отличается от си. Плюс на том же лиспе люди как-то писали и выжили.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Ванёк , 20-Июл-21 18:52 
Не выжили

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноньимъ , 24-Июл-21 03:56 
Выжили, родили сыновей, внуков и правнуков. И теперь передают правнукам искусство лиспа, оружие для более цивилизованного будущего века.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 23:58 
У lisp синтаксис элементарный, он весь на основе sexp, в отличии от мешанины в rust.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноньимъ , 24-Июл-21 03:54 
Проще чем у лиспа синтаксиса уже быть не может.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Rev , 20-Июл-21 16:27 
Просто не используйте дженерики и ссылки с временами жизни ;)

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 16:41 
Просто не используйте раст.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:20 
А более нечего, если хочется скорости.
C малофункционален, C++ легаси и перегружен, а Кристал, Зиг и прочие малопопулярны.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:29 
> C малофункционален

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:33 
Ветка же не связана с ядром, а абстрактна о языках.

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Michael Shigorin , 21-Июл-21 09:18 
> Да, на C можно сделать огромный проект, где в другом языке

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

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним31 , 22-Июл-21 06:37 
Ну дада... Давайте тогда и на yoptascript дрова писать :) Удобно же, одна строчка.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Анончик , 20-Июл-21 19:43 
>На С можно написать абсолютно любой код

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


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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено _kp , 20-Июл-21 18:13 
> C малофункционален

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

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

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

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



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

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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 23:34 
Но в питоне не навязывают пробелы. Это в ниме и ямле навязывают.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:21 
Разбери немного, перестанет откладывает
У меня тоже раньше подобная "проблема" была, но потом приходит понимание, что там всё логично, красиво и к месту

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 00:00 
Нет, там выбраны очень дурацкие символы и конструкции для выражения смысла.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним зеленый , 22-Июл-21 21:16 
Они не просто так "выбраны". Они были обсуждены сообществом - https://habr.com/ru/post/532660/

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено НяшМяш , 20-Июл-21 17:36 
А что в нём вырвиглазного? Всё такое же как и везде, плюс пара своих специфических плюшек типа времени жизни. Как минимум куда приятнее современных плюсов, в которых реально непонятно что происходит.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 21:15 
жабоскриптер   осуждает с++ и хвалит раст? Не удивлён

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено НяшМяш , 20-Июл-21 23:07 
Естественно, раст больше на жеес\теес похож, чем плюсы ). Тупо на нём легче писать.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 23:40 
Каким местом он на них похож?

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено НяшМяш , 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 других языков.


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноноша , 21-Июл-21 16:12 
Штош:

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено НяшМяш , 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 синтаксис очередного сочинения на тему "как я писал свой яп на каникулах"


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

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


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

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

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

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

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

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

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

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

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено нах.. , 21-Июл-21 21:25 
А можно просто взять и обойтись без этой вашей ООПни.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноньимъ , 24-Июл-21 03:53 
Оно синтаксически сиподобное, или скорее сипипи подобное.
Что конечно ужасно, но видимо время забыть этот жуткий пережиток прошлого навязанный корпорастами ещё не пришло.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено йцукен , 20-Июл-21 16:25 
х.м.  а такое

.ok_or(Error::ENXIO)?

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Rev , 20-Июл-21 16:28 
Нет

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено НяшМяш , 20-Июл-21 17:37 
Панику может вызвать только явный unwrap без предварительной проверки.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено CGo_one_love , 20-Июл-21 17:56 
Панику зрительных нервов?

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 16:29 
А патч очищающий Linux от ржавчины уже есть?

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено SystemD , 20-Июл-21 16:40 
Rust это язык будущего! Быстро извенись перед всеми на каленях, только так тебя простит великий Rust! Сейчас же извенись! Сейчас же!

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 16:44 
Я и go, systemd, dbus, polkit+JS, JIT, ... так же в своей системе видеть не желаю! Та что можешь мне соснуть, стоя на коленях.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Великая Rust , 20-Июл-21 16:51 
SystemD это как Chromium, ты можешь его и не ставить, но будешь соcать раком за бортом прогресса!

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:46 
пох это ты, мы тебя узнали

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 18:08 
> SystemD

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 16:58 
Так переходи на вантуз. Разве что только JIT из всего списка останется.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 18:27 
У меня и GNU/Linux без этого списка работает.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:54 
Go вроде и ничего, но стандартная библиотека и сплайсы всё жедание осваивать его отбили. Переписал пару утилит дата-конвертеров с питона на го и больше не трогал

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 18:31 
> Go вроде и ничего

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

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Плюсовик , 20-Июл-21 18:43 
Ужас! Даже добавить нечего.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 13:11 
При чем тут Го? Не нравятся импорты, можно писать самому на чём угодно.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноноша , 21-Июл-21 00:22 
> но стандартная библиотека всё жедание осваивать его отбили

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено макпыф , 20-Июл-21 16:48 
пока, к счастью, не от чего очищать

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:22 
Только ослы будут очищать a shit of C от прекрасного.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено CGo_one_love , 20-Июл-21 18:01 
Без Си ты бы даже не смог написать это сообщение. У тебя в смартфоне и компе всё провоняло, получается.

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Michael Shigorin , 21-Июл-21 09:22 
Деточка, слова firmware или там bootloader хоть что-то говорят?

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено anonymous , 21-Июл-21 10:34 
По поводу firmware можете посмотреть на oreboot, например.

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

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Совершенно другой аноним , 21-Июл-21 14:57 
А хоть Firmware-то на C пишут, или там может какие-то операционные системы?

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

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


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

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


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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 13:09 
Это называется назло маме шапку не надену и отморожу уши. Вот и всё. Великовозрастные юноши как правило считают себя умнее своих родителей, и гордыня выше головы.

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

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



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

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

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

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

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

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



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

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

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

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

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

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


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

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

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

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


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

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

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Moomintroll , 21-Июл-21 13:23 
> Колибря, Редокс, современные браузеры на плюсах?

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 13:47 
>> Колибря, Редокс, современные браузеры на плюсах?
> А где можно увидеть "современные браузеры" на "Колибря, Редокс"?

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Moomintroll , 21-Июл-21 14:02 
> А где можно увидеть "современные браузеры" на Си?

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


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

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



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

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

/0

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

Уровень "познаний" опеннета:
https://www.opennet.dev/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).
>


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

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

>[оверквотинг удален]
> https://www.opennet.dev/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-овые.


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено SystemD , 20-Июл-21 16:31 
Надо весь Linux переписать на Rust!

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено ыы , 20-Июл-21 16:39 
построчно!!!

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Тинус Лорвальдс , 20-Июл-21 16:40 
Ну раз надо, значит делай. Или у тебя руки способны писать только комментарии в интернете?

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:47 
>Или у тебя руки способны писать только комментарии в интернете?

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 20:47 
А Rust надо переписать на Linux!

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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 09:56 
Это на данном этапе не нужно, у них же нет тысяч разработчиков для переписывания миллионов строк кода, а то кол-во "хакерских оптимизаций", которое позволил всунуть Си, никаким транслятором не переведешь в другие языки. Большинство ошибок в ядре в драйверах. Достаточно всунуть в ядро возможность писАть на относительно безопасном и быстром языке - и заинтересованные производители железок со временем сами захотят писАть на нем драйвера.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 13:36 
А кто производителей железок заставляет на C писать непременно с хакирскими трюками? Пусть пишут, если им нравится, в соотвествии с MISRA.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено anonymous , 21-Июл-21 10:37 
Внезапно работать всем вместе на одном проекте -- выгоднее, чем когда каждый пилит свой проект. Сотрудничество вместо конкуренции.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено user , 21-Июл-21 13:55 
Надо понимать какие цели у лидера проекта. Например, можно было бы вместе с немцами сотрудничать в годы ВОВ - это выгодно по вашему?

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 16:38 
Nim > Rust
Запомните этот твит!

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:23 
Ним вообще зеро, даже без компилятора и никогда не выстрелит.
Запомните этот твит!

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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:57 
2 опечатки в слове Zig

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 14:08 
Как применить операцию сравнения к нечисловому множеству?

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 22-Июл-21 10:24 
Не очень понятен вопрос
- Что подразумевается под "операцией сравнения"?
- Что подразумевается под "нечисловое множество"?

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 22-Июл-21 14:23 
Думаю он спрашивает про то, как применить сравнение для языков.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 22-Июл-21 17:38 
> Думаю он спрашивает про то, как применить сравнение для языков.

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



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

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

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 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.
а надо было анонимов опеннета читать!

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:23 
А ты хоть так сможешь сделать?

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 19:32 
Прикинь а. У меня нет проблем ни с памятью ни с логикой.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 19:45 
Что ты тогда на опеннете делаешь?

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 21:09 


> Прикинь а.

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

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

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

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



"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:39 
Эммм, новость мы читаем ж@пой?
Это пример. Пример написания драйвера на расте. Для этого и взят простой драйвер, для этого и сделано построчное сравнение с сишным.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено деанон , 20-Июл-21 19:24 
Ты понимаешь как пишется софт?! Проекция в чужой синтаксис не делает программу родной и показать оно не может ничего, кроме говнокодинга

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено деанон , 20-Июл-21 19:26 
Что, кстати, многое говорит о квалификации этих программистов

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 19:44 
А ты понимаешь, как пишутся модули ядра? В этом примере половина кода - привязка к ядерным api, что в растовском, что в сишном случае, а вторая половина простая как табуретка, опять же в обоих случаях.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено деанон , 20-Июл-21 22:18 
Понимаю, но, что тогда это должно продемонстрировать, что нужно писать на си?

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

Не твое это.


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено деанон , 20-Июл-21 23:24 
Офигенная аргументация, ага, так держать

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 16:57 
Зачем? На нём что-то толковое разве сделали? Чтобы не текло и безапастноне падало

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

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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 21:12 
> Рипгреп-то по функциональности простой греп догнал или всё также уровня хелловорлда?

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

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



"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:26 
На C? Да в общем-то не особо. Всё так же течет и падает. Есть крупные проекты вроде Линукса, где титаническими усилиями заставляют его работать хоть как-то, но получается не всегда.
В отличие от Раста, который не течет и не падает.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Ванёк , 20-Июл-21 18:54 
Прежде чем писать, что раз подумай, а потом подумай ещё 1000 раз!

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 19:31 
Ну да, у растоманов и с логикой смотрю плохо.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 22:23 
Не, сишечка не падает. Просто бажина из-за переполнения буфера 15 лет живет в ядре и позволяет получить рут. А надежно и ничего не падает.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 14:11 
Не течёт и не падает то, чего нет.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 14:09 
А на Rust что-то просто толковое сделали?

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:21 
может лучше на грязном Си ?

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:04 
Ща блевану. Притащить ржавого чтобы написать все то же самое, что уже есть на Си и работает прекрасно. ГПИО гребаный это всего навсего сраный COM порт с уартом и проститутками.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:21 
Конечно они написали тоже самое и взяли самый простой пример. Надо же было пожалеть старперов с напрочь закостенелой способностью разбираться в чем-то новом.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 07:42 
Пожалеть? Кто-то просил? Этих сумасшедших надо в поликлинику сдать для опытов. Если можно что-то написать на джаве, бейсике, расте, то это не значит что это надо тащить в ядро. Дебилы блин отборные. Есть Си и есть С++, а остальное пусть дауны на Ada, D, Rust используют. А то ща еще одни даунито прибегут и заявят что ассемблерные вставки ненужны, потому что их только старперы используют, ведь есть же божественный ска раст.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 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 раз". Нужна предсказуемость, пожалуйста.


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:25 
Тут код в основном про безопасную инициализацию, а не про выделение памяти. лямбды иногда пихают для ленивой инициализации, но это общий для многих языков паттерн

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:31 
Код-то в основном про инициализацию, но именно этот неделимый на более мелкие куски блок кода, над результатом которого выполняется оператор ?, теоретически способен вернуть какую-нибудь информацию об ошибке при аллокации.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено НяшМяш , 20-Июл-21 17:40 
Ну вообще вот это написано чисто из-за ядерной специфики.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:48 
Отлавливать ошибки аллокации было бы неплохо и в userspace-приложениях, тем более раз уж Rust пытается быть безопасным как в рекламе, а не безопасным от двух багов - use-after-free и double-free

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 03:37 
Ну например если бы программа или игрушка при вылете написала, что она вылетела из-за недостатка вот такого конкретного количества оперативной памяти, а не просто паникнула с кашей в консоль, это было бы очень полезно знать конечному пользователю. Сразу ясно, что тут нужно освободить или докупить памяти, а не ругаться на разработчиков со словами "ваша штука сама вылетает без какой-либо вменяемой информации" и удалять эту программную гадость, неспособную даже объяснить, что конкретно ей не понравилось, в чем ошибка.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Ordu , 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'шную реализацию. Можно в какую ещё по вкусу. Можно вообще выкинуть слово куча из лексикона, и заменить аренами и памятью на стеке.


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 08:32 
вышеописанная ошибка при выделении памяти для арены не теряет свою актуальность

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

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Ordu , 21-Июл-21 14:20 
> вышеописанная ошибка при выделении памяти для арены не теряет свою актуальность

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

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

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

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

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


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

man mlock

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноньимъ , 24-Июл-21 04:07 
В линуксе даже кеш фс не могут от свопа защитить...

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено n00by , 24-Июл-21 07:35 
А зачем? Когда юзеры добровольно организуют своп в zRAM))

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

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

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


"Для ядра Linux п.редложен драйвер GPIO, написанный на Rust"
Отправлено Michael Shigorin , 21-Июл-21 09:28 
> Если когда они продерутся через всё это и дождутся NULL
> в качестве результата malloc

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


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

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

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


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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 03:34 
для склеротиков есть calloc

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Ordu , 21-Июл-21 04:12 
calloc не инициализирует, а обнуляет. Разницу объяснять надо?

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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 13:06 
memset(ptr, 0, sizeof(...));
это ясен пень, и такое забывать нельзя.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено z , 21-Июл-21 13:53 
malloc + memset != calloc см. хороший разбор на линке выше.

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

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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 15:46 
В микроконтроллерах STM32 такого нет. Как и zeromem.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 15:47 
calloc есть оказывается, попутал.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Урри , 20-Июл-21 17:14 
Для желающих поугорать:

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:27 
Спасибо, угораю с убогого оригинала

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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 19:29 
Он не оценил. У него память раст сожрал и случилась растоистерика.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 19:29 
Действительно, после раста посмотришь на оригинал и ржать хочется насколько криво на расте всё получается.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено ng , 20-Июл-21 18:35 
> Для желающих поугорать:

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

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

imho


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Онаним , 20-Июл-21 18:37 
Да пипец какой-то.
Даже этот полухеллоуворлд на сях в разы более читабелен, сразу понятно, что делается, где и зачем, в отличие от.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено anonymous , 21-Июл-21 10:44 
Да, в rust уровень вхождения сильно выше. Там требуется больше думать. И это плохо. Но это, мне кажется, недостаточная причина для reject-а. Это думание не напрасно, а на повышение safety и надёжности кода.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 21:10 
Да, дичь как она есть.
Через кровь пот и слезы к железу.
Зачем полумеры?
Берите и переписывайте все ядро на расте.
И варитесь в своем уютном котле.
Я лично в гробу видел поддерживать ядро написанное на двух языках и ломать себе мозг когда вот такое встретится.
Это хуже чем С.
Даже асм и то понятнее.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 22:03 
Вот автор на С оставил автограф, а как же растоман? Боится ручки испачкать? Потом ведь за свю жизнь не отмоется.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Жироватт , 21-Июл-21 13:47 
2 блока unsafe. Круто, чё

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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 18:02 
Уже делают zig. Он как С только модный молодежный.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 22:04 
В Россее могут запретить.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 23:14 
Та, что у нацистов, пишется по-другому.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 14:23 
Наши суды не интересует, как там оно у них пишется, звучит-то как у нацистов.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено proninyaroslav , 20-Июл-21 21:06 
Так раст это идейный продолжитель C++, но никак не Си. Ни в плане абстракций, ни в плане синтаксиса. Мешанины в плюсах не меньше, чем в расте.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 22:10 
Меньше.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Урри , 20-Июл-21 23:31 
Меньше. С++ вполне логичный в плане синтаксиса и строгий. Раст же постоянно перестраивают, потому что то там то там что-то не вяжется.

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 21:52 
Drew DeVault пилит подобный "секретный язык" https://drewdevault.com/2021/05/24/io_uring-finger-server.html

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Michael Shigorin , 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...


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 15:30 
> A language like C solves problems by writing more C code

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:41 
Опять что-то переписали?

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 17:44 
> Опять что-то переписали?

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 18:04 
Пытаются показать что могут, но до сих пор не могут внятно сказать зачем.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено user90 , 20-Июл-21 18:05 
Учебный проЭкт? Ну ладно, пусть будет, но в ядре-то он нахрен?))

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 22-Июл-21 02:01 
Пусть учаться линуксята молодые.

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

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


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

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



"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 22:06 
Хехехе. Мне нравится как мэйинтейнеры ядра одним ленивым взглядом находят труднорешаемые проблемы для хипстеров.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 18:09 
Zig модный молодёжный, простой приятный, великий китайский C заменитель язык Xi кнопка УДАР!

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Ванёк , 20-Июл-21 19:03 
Опять занимаются велосипедостроением вместо полезных дел

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 19:49 
Полезные дела для тебя оставили.

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено псевдонимус , 21-Июл-21 00:30 
Именно!

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 20:48 
Драйвера и на джаваскрипт можно писать. Давайте покажите класс что вы можете.

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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 03:47 
Альтернативно одаренные той проблемы даже не заметили. В зависимости же проблема, значит - не их.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 21:28 
Уважаемые любители раста, Линус Торвальдс привествует вас и передает вам "f*ck you!"

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 21:55 
Золотой человек чтобы мы без него делали?

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

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

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

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


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

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

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


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

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



"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 23:53 
> Поясняю: у каждого в группе она была - девушко, хорошистка,

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноньимъ , 24-Июл-21 04:20 
А потом пацаны одевают на себя пушистые костюмы с хвостмками и ушками и едут на фурфест.

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

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


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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 22:51 
Поигравшись немного с растом я пришёл к следующему выводу.

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

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

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

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

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

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


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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 20-Июл-21 23:19 
а ты точно с растом поигрался?)

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 00:21 
а ты точно читать умеешь?

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Michael Shigorin , 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...

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 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")


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено yet another anonymous , 23-Июл-21 00:05 
> Для автора статьи портабилити, неуменее работать с карго

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

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

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

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

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


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

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

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено yet another anonymous , 23-Июл-21 21:52 
> Правда будут такие портянки Makefile как и для си.

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

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

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

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

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

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

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

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено freecoder , 22-Июл-21 20:56 
Вот читаю ваш отзыв и офигеваю, как же я ухитряюсь на стабильном расте уже 3 года писать в прод и не испытывать проблем? Мистика какая-то..

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено псевдонимус , 21-Июл-21 00:20 
>построчно повторяющий

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 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.
>>>построчно повторяющий
> И после этого кто-то удивляется травле и глумлением над нарко..оастоманами.

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


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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноноша , 21-Июл-21 16:26 
Можно почитать рассылку приведенную в посте и увидеть реальные вопросы не в пользу раста. Я пока не вижу восторженных отзывов.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 19:18 
Там предметный технический разговор профессионалов, а тут только байт от неучей.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 22-Июл-21 11:01 
Годный байт от неучей. Раст - не нужен, Чистый Си - вечен.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 04:18 
Как можно потом искать ошибки в абсолютно нечитаемой лапше из закорючек? Раст не должен восприниматься как язык, позволяющий писать корректный код

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

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 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() отпустят. или в какой-то из функций внутри или по выходу..


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноноша , 21-Июл-21 16:28 
Предположу, что по выходу, ибо _guard никуда не передается.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Ordu , 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, может и есть какое-то обоснование тому, как они сделали.


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 22-Июл-21 01:14 
Какая прекрасная логичность и целостность языка: для указания, что переменная изменятся, надо добавить отдельное слово "мут", а что она не используется - к имени пририсовать подчеркивание.

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Ordu , 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н что".


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено freecoder , 22-Июл-21 21:18 
Вообще-то _ и _y - это принципиально разные вещи. Просто подчеркивание - это вообще не имя, а служебное слово языка, которое в паттерне обозначает игнорирование. Это важно понимать, так как в этом случае никакого связывания вообще не происходит, в отличии от варианта _y, где используется уже действительно имя и оно связывается со значением.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Ordu , 22-Июл-21 21:40 
> Вообще-то _ и _y - это принципиально разные вещи. Просто подчеркивание -
> это вообще не имя, а служебное слово языка, которое в паттерне
> обозначает игнорирование.

Ты говоришь, что это принципиально разные вещи, в чём "принципиальность" разницы? Что ты называешь принципиальной разницей? Чем принципиальная разница отличается от непринципиальной?

Тебе не кажется, что синтаксис языка определяет, что принципиально разные вещи в этом языке, а что нет? Мне кажется, что именно так. Если синтаксис языка говорит, что if принципиально отличается от foo, потому что if -- это ключевое слово, то значит это принципиальное отличие. Вот lisp, например, не говорит, что if -- это что-то принципиально отличающееся от foo, if -- это просто ещё один символ, и действие его ты можешь повторить, реализовав if как макрос. Ты можешь присвоить значение if'у, или сделать его функцией. В лиспе эта разница непринципиальна. В лиспе просто принято использовать if, как if. В C же if -- это ключевое слово, его поведение невоспроизводимо средствами языка, ты не можешь средствами языка переопределить if и научить его танцевать польку.

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

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


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено freecoder , 25-Июл-21 18:24 
> Ты говоришь, что это принципиально разные вещи, в чём "принципиальность" разницы?
> Связывание происходит в обоих случаях, только в первом с безымянной переменной, во
> второй с переменной имеющей имя. В любом случае значение будет существовать
> до выхода переменной из области видимости.

Разница принципиальная, так как в случае использования _ нет никакого байндинга и нет передачи владения (потому что подчеркивание - это не имя). А вот в случае использования имен _x - байндинг есть и передача владения есть. Вот этот код скомпилируется:

let string = Some("foo".to_string());
if let Some(_) = string {
}
println!("{:?}", string);

Но если ты заменишь _ на _x - то не скомпилируется.


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Ordu , 25-Июл-21 18:59 
> вот в случае использования имен _x - байндинг есть и передача
> владения есть. Вот этот код скомпилируется:
> let string = Some("foo".to_string());
> if let Some(_) = string {
> }
> println!("{:?}", string);
> Но если ты заменишь _ на _x - то не скомпилируется.

Хм. Да, действительно.


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено n00by , 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

в данном случае из-за вывода типов возможные значения _ сужены до "любое целое".

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноньимъ , 24-Июл-21 04:31 
Это ещё в лиспе было в бородатые года когда сишка была бредовой фантазией в головах корпорастов.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 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 _

Какой прекрасный парад невежества уровня "опеннетный антирастовый комментарий".  


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Совершенно другой аноним , 22-Июл-21 09:37 
как я понимаю претензия была не к переменной "_", а к тому, что к префиксу "_" привязали какой-то функционал/ограничение. Правда я не понял, это так на уровне языка потребовали (в каких-нибудь официальных документах), и я уже не имею права называть свои переменные с символом подчёркивания в начале, или это такая негласная, но широко распространённая договорённость.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено freecoder , 22-Июл-21 21:23 
Неиспользуемая переменная - это ворнинг компилятора. Несколько раз меня спасал от досадных логических ошибок.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Совершенно другой аноним , 22-Июл-21 09:57 
Впрочем, перечитал Ordu - если действительно компилятор на это подчёркивание смотрит, решение довольно странное, более логично было-бы его подкрашивать через ключевое слово, имхо.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Ordu , 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).

Тоже кстати дискриминация: почему я не могу называть свои переменные с именем, начинающимся с двоеточия? =)


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Ordu , 22-Июл-21 13:58 
> http://www.cse.unsw.edu.au/~billw/dictionaries/prolog/

О, точно же, в прологе так было!


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 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.


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено lindevel , 21-Июл-21 10:58 
350 строчный GPIO драйвер, нарошно искали максимально простой драйвер, вместо того, чтоб написать что-то практичное
Даже этот драйвер запороли, например "#ifdef CONFIG_PM" просто выпилили, без какой либо замены на раст код
А это что такое?
                    }
                }
            }
        }
    }
}
6 закрывающих скобок подряд
Еще глянул html файл, синий текст на черном фоне... очень удобно читать
А в html коде "<!-- HTML generated using hilite.me -->", что как бы намекает, что растоман не смог даже простейший html написать ручками

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 11:22 
Смузихлебы уже все Unix утилиты (ls, du, etc) на раст переписали, из полезного только ripgrep и то преимущества спорны, зато менее функционален по сравнению с grep. Теперь будут также бесполезно драйверы переписывать. Напомню, свою ос растеры не осилили, течёт как плотина весной.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноноша , 21-Июл-21 16:31 
fuchsia? Правда пока в дикой природе не встретишь.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено protonesso , 24-Июл-21 14:02 
Ядро всё ещё на C++

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноноша , 25-Июл-21 21:51 
> Ядро всё ещё на C++

Спасибо! Просмотрел этот момент.


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 21-Июл-21 17:02 
Отцы, ну вы блин развели срач …
Может пусть Торвальдс решит, является ли переписанный код драйвера полезным или нет

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Урри , 21-Июл-21 17:34 
А Торвальдс - господь бог, что ли?

У нас тоже свои мозги есть. А некоторые из нас еще и программированием на жизнь зарабатывают. И это все называется "коммьюнити".


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено СССР , 23-Июл-21 06:54 
вы своей комьюнити перепишите линукс на раст и будет вам счатье, и пихайте в него хоть что, ок? а продукт и человека который этому продукту жизнь посвятил, не нужно затрагивать , зопли еще не высохли у тебя под носом. комюнити покемонов.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 22-Июл-21 01:54 
> Rust для ядра Linux, бесполезен и не решает реальных задач
> Особенностью драйвера является то, что его реализация практически построчно повторяет имеющийся драйвер GPIO на языке Си

Они решили наглядно продемонстрировать бесполезность?


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 22-Июл-21 02:02 
Ошиблись в слове безопастность

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 22-Июл-21 02:51 
Да какая там в пень безопасность, один к одному конвертнули сишный код и в unsafe все обернули.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено gogo , 23-Июл-21 02:51 
Именно. Линус говорил, что мол ничего полезного не написано. А они не новое написали, а ПЕРЕписали.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 22-Июл-21 02:04 
А что там с Radix его совсем забросили или будут что-то доделывать?

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 22-Июл-21 11:09 
Не зннаю.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 22-Июл-21 21:53 
от ваших растов, тошнит уже даже больше чем от опеннета.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Растофиля , 23-Июл-21 02:55 
RUST безоп-а-а-а-сный, ко-ко-ко!!1!


https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=rust


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено СССР , 23-Июл-21 06:50 
ну преобразуйте на java, преобразуйте на pascal? питон, и что? уже противно читать про про всякое дерьмо позволяющее улучшить код при помощи языка. может программисты начнут хоть немного втыкать что они пишут?

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Ordu , 23-Июл-21 15:41 
> может программисты начнут хоть немного втыкать что они пишут?

Программированию скоро уже век исполнится. До сих пор не научились. Сколько ты считаешь возможным ждать у моря погоды?


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 23-Июл-21 22:56 
> Программированию скоро уже век исполнится.

Какой век?! Пневмо-гидро-логические программируемые элементы были уже в Древней Греции. Не говоря уж про механику программируемую (вал, штыри, верёвка).


"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Аноним , 23-Июл-21 22:57 
Но, как показала практика, древние программисты были умнее современных растаманов.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено СССР , 24-Июл-21 23:50 
они есть, просто от той масса новых, которая зашла в отрасль, не требуется разрабатывать структуры данных, оптимизировать. Требуется создавать контент либо решать бизнес-логику котораю уже завтра изменится и потребует переписки уже кода. А сейчас эта масса быдлокодеров считает себя как класс, заявляет свои права на переписку частей ядра (как пример) на модный язык.

"Для ядра Linux предложен драйвер GPIO, написанный на Rust"
Отправлено Ordu , 25-Июл-21 13:56 
> они есть, просто от той масса новых, которая зашла в отрасль, не
> требуется разрабатывать структуры данных, оптимизировать. Требуется создавать контент
> либо решать бизнес-логику котораю уже завтра изменится и потребует переписки уже
> кода. А сейчас эта масса быдлокодеров считает себя как класс, заявляет
> свои права на переписку частей ядра (как пример) на модный язык.

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