The OpenNET Project / Index page

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

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

20.07.2021 15:57

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

  1. Главная ссылка к новости (https://lwn.net/Articles/86345...)
  2. OpenNews: Вторая редакция патчей для ядра Linux с поддержкой языка Rust
  3. OpenNews: Выпуск Rust 1.53. Google профинансирует добавление поддержки Rust в ядро Linux
  4. OpenNews: Поддержка Rust для ядра Linux столкнулась с критикой Торвальдса
  5. OpenNews: В ветку ядра Linux-next добавлен код для разработки драйверов на языке Rust
  6. OpenNews: Линус Торвальдс подключился к обсуждению начальной реализации поддержки Rust в ядре Linux
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/55521-rust
Ключевые слова: rust, kernel, linux, gpio
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (388) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, OnTheEdge (ok), 16:01, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +14 +/
    завертелось...
     
     
  • 2.43, Dzen Python (ok), 16:55, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Как в машинке "Вятка-Автомат". Жизнь-то закрутится, завертится.
     
     
  • 3.60, _hide_ (ok), 17:17, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +11 +/
    А чем растовый вариант драйвера лучше сишного? Без стёба?
     
     
  • 4.72, Аноним (-), 17:26, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +8 +/
    > А чем растовый вариант драйвера лучше сишного? Без стёба?

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

     
     
  • 5.245, Михаил (??), 08:33, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Из основного я заметил использование правил ownership (проверяемых на этапе компиляции) при использовании lock-ов.
    Что невозможно ни в C ни в С++.
     
     
  • 6.247, Michael Shigorin (ok), 09:05, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > Что невозможно ни в C ни в С++.

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

     
     
  • 7.281, Аноним (-), 13:36, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Что невозможно ни в C ни в С++.
    > Вам знаком термин "машина Тьюринга"?
    > Вы пытались посмотреть, на чём написан транслятор Rust?..

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

     
  • 7.307, BorichL (ok), 15:33, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Михаил, вы такими вопросами разрушаете радужный мир розовых пони растоманов! Они привыкли, что за них Гниль думает, самим нынче думать не в моде, некогда...
     
     
  • 8.389, yet another anonymous (?), 23:29, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не, не разрушает Тьюринг свою машину возле них не парковал ... текст свёрнут, показать
     
  • 7.425, Аноним (425), 22:00, 25/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вам знаком термин сложность алгоритма? Вы пытались написать проверку во всех местах, где это делает Rust-компилятор? Изучали ли в университете дискретную математику или вообще математику - не спрашиваю)
     
  • 7.427, Аноним (427), 23:08, 02/08/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Вам знаком термин "машина Тьюринга"?

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

     
  • 4.76, Аноним (76), 17:28, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Тем что большее количество UB отловлено на этапе компиляции. У кода появляются формальные гарантии
     
     
  • 5.135, _hide_ (ok), 20:18, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вы вообще пример драйвера на смотрели?
     
  • 4.93, Dzen Python (ok), 17:49, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если говорить серьезно - ничем За кодера прошел borrow checker, спаянный со пар... большой текст свёрнут, показать
     
     
  • 5.136, Ananimasss (?), 20:34, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Простите экс вебмакаку, но что казуистического в примере?
    Прибавится единичка к  i до сложения, выполнится сложение и запишется в j, после прибавится 1 к i.
    Где-то это не так?
     
     
  • 6.158, ананим.orig (?), 21:24, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –6 +/
    > Прибавится единичка к  i до сложения, выполнится сложение и запишется в j, после прибавится 1 к i.

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

     
     
  • 7.191, Урри (ok), 23:08, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Два неуча.

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

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

     
     
  • 8.200, Anonymoustus (ok), 23:21, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    На PDP тоже так было, великий гуру ... текст свёрнут, показать
     
     
  • 9.328, Урри (ok), 17:37, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Да Например, можно глянуть http mim update uu se manuals layered pdp11c3 pdf ... текст свёрнут, показать
     
     
  • 10.343, Anonymoustus (ok), 22:11, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Убедил ... текст свёрнут, показать
     
  • 10.357, Кир (?), 03:25, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Откуда ж вы лезете, знатоки C по учебникам C лохматых 90-х ... текст свёрнут, показать
     
     
  • 11.372, adolfus (ok), 13:20, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А причем тут C Речь идет о C, который очень жестко стандартизован и, кстати, ... текст свёрнут, показать
     
  • 8.280, Аноним (280), 13:28, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Для ядра важно, как это делает конкретно gcc ... текст свёрнут, показать
     
  • 8.319, Кир (?), 16:37, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Для неуча https ru wikipedia org wiki D0 A2 D0 BE D1 87 D0 BA D0 B0_ D1 81 D... текст свёрнут, показать
     
     
  • 9.329, Урри (ok), 17:41, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Иногда лучше молчать и слыть болваном, чем заговорить и развеять все сомнения ... текст свёрнут, показать
     
     
  • 10.344, Кир (?), 00:05, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Полистай https en cppreference com w cpp language eval_order Текст ты вряд ли... текст свёрнут, показать
     
  • 10.345, Кир (?), 00:23, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А в целом, придирка к неопределенному порядку вычислений выражений сама по себе ... текст свёрнут, показать
     
     
  • 11.361, freecoder (?), 08:10, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, в этом автомобиле нет ремней безопасности да и вообще нет кресел не потому,... текст свёрнут, показать
     
     
  • 12.363, Совершенно другой аноним (?), 09:15, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вы, как мне кажется, забываете контекст, в каких условиях создавался и стандарти... текст свёрнут, показать
     
  • 12.373, Кир (?), 13:47, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Дело даже не в древних архитектурах, как раз наоборот Простой пример вполне мо... текст свёрнут, показать
     
     
  • 13.397, n00by (ok), 06:57, 23/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И у этих параллельных потоков будет общий стек Ага Представил ... текст свёрнут, показать
     
  • 6.197, Anonymoustus (ok), 23:20, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Как там у вас?

    [CODE]
    let a = 1
    undefined
    [/CODE]


    Так?

     
     
  • 7.362, freecoder (?), 08:11, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, не так. Что спросить-то хотел?
     
  • 5.194, None (??), 23:18, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Когда мы видим одну операцию присваивания, а реально их три - да, фигня получается.
    Зато удобно автоинкрементную/автодекрементную индексацию как бы описывать.
     
  • 5.226, Аноним (226), 02:40, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > j = i++ + ++i;

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

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

     
     
  • 6.330, Урри (ok), 17:45, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Я где-то ошибаюсь?

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

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

     
  • 5.235, px (??), 04:59, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вы, батенька, чушь сморозили UB 8212 это и вполне тривиальное int a ... большой текст свёрнут, показать
     
     
  • 6.246, Совершенно другой аноним (?), 09:02, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > В реальном коде unsafe используется достаточно редко.

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

     
  • 6.364, Anonimus (??), 09:17, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    '''int a[] = {1,2}; int b = a[2]'''

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

     
     
  • 7.404, px (??), 22:11, 23/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Можно выходить и неумышленно, к примеру аллоцировав буфер, и взяв смещение в нём из какого-нибудь заголовка кого-нибудь пакета не проверив...
     
  • 6.379, Кир (?), 14:39, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Для начала, при попытке скомпилировать




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


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

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




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


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

     
  • 4.109, Ordu (ok), 18:25, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Он сделан не для того, чтобы быть лучше. Он создан для того, чтобы посмотреть на более реалистичный пример rust'а в ядре, нежели тот первый пример модуля, который ничего полезного не делал.

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

     
     
  • 5.134, _hide_ (ok), 20:17, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, но это же не показательный вариант. Никаких фишек раста не использовано. Давайте ещё на паскале, го, свифте и чистом llvm asm будем модули писать и выставлять их? Причем на первых 3х это уже давно делают.
     
     
  • 6.138, Линус (?), 20:39, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Сделай.
     
     
  • 7.181, Аноним (181), 22:48, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Причем на первых 3х это уже давно делают.
    > ...уже давно делают...
     
  • 6.153, Ordu (ok), 21:12, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это что за фишки такие derive Default -- это не такая фишка А Ref T , для ... большой текст свёрнут, показать
     
     
  • 7.201, Урри (ok), 23:24, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Ух ты, в расте, оказывается, есть ref_count, который в С существует дайте всп... большой текст свёрнут, показать
     
     
  • 8.209, Ordu (ok), 23:44, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    ref_count существовал до всех этих ваших C, не надо его недооценивать И чё Дем... текст свёрнут, показать
     
     
  • 9.332, Урри (ok), 17:53, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Само собой существовал, еще в лиспе, например А кто его недооценивает Цитирую ... текст свёрнут, показать
     
     
  • 10.338, Ordu (ok), 18:35, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ты тред читал Человек выше задаёт вопрос, почему никаких фишек раста не использ... большой текст свёрнут, показать
     
  • 8.239, Аноним (239), 07:28, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    To compile the library, GCC 4 6 is needed Ох уж эти сказочки, ох уж эти сказ... текст свёрнут, показать
     
     
  • 9.331, Урри (ok), 17:49, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Растоманчик не видит разницу между конкретной сторонней библиотекой и всеми друг... текст свёрнут, показать
     
     
  • 10.341, Аноним (239), 20:57, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Растоманчик видит разницу между С и GCC c кучей расширений, и даже деструкторами... текст свёрнут, показать
     
  • 7.308, нах.. (?), 15:39, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    module_amba_driver! {
        type: PL061Device,
        name: b"pl061_gpio",
        author: b"Wedson Almeida Filho",
        license: b"GPL v2",
    }

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

     
     
  • 8.333, Урри (ok), 17:59, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Подожди, у них же аджайл, они щас еще такого наворотят Тут недавно добавили в... большой текст свёрнут, показать
     
  • 5.144, Аноним (144), 20:55, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >Он сделан не для того, чтобы быть лучше. Он создан для того, чтобы посмотреть на более реалистичный пример rust'а в ядре

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

     
     
  • 6.147, Ordu (ok), 21:05, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >>Он сделан не для того, чтобы быть лучше. Он создан для того, чтобы посмотреть на более реалистичный пример rust'а в ядре
    > Осталось только написать остальные более реалистичные примеры: работу с VFS на примере
    > реализации ФС, работу с потоками, сетью, памятью и т.д.

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

     
  • 6.182, Аноним (181), 22:50, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Растаманы пытались всё это сделать, но редох начал течь... Поэтому переключились на линух.
     
     
  • 7.199, None (??), 23:21, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    redox течёт? Ахаха, вот и цена этому продукту. Только вот уже несколько языков (D и nim точно) зашкварились, начав тащить к себе эту дрянь - "концепцию владения".
     
     
  • 8.206, Аноним (-), 23:31, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет, в оригинале 4 года назад было просто местные экспертусы - не умеют в разра... текст свёрнут, показать
     

     ....большая нить свёрнута, показать (59)

  • 1.2, Аноним (2), 16:01, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –12 +/
    А вот это действительно очень круто.
     
     
  • 2.50, Урри (ok), 17:05, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    У-ха-ха-ха-ха-ха-ха.
    Народ, зацените - для анонима построчно переписать код с С на с-подобный язык, это "круто"!

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

     
     
  • 3.53, Аноним (2), 17:07, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Не тупи, это хороший прогресс, который поможет разобраться в написании драйверов, демонстрирует работу драйвера и в целом инфоповод
     
     
  • 4.203, Урри (ok), 23:25, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Инфоповод, согласен. Я три программерских чата заставил ржать аки лошади.
     
     
  • 5.400, Вадим (??), 16:56, 23/07/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Да вы там гении самые настоящие, раз переписание драйвера на другой язык вызывает у вас приступы хохота. Наверно это очень простая задача для вас, киньте ссылку на какой-нибудь ваш "нормальный" проект на гитхабе, оценим. Постараемся не ржать.
     
     
  • 6.401, n00by (ok), 17:19, 23/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вот специально написанный для поржать драйвер: https://github.com/icestudent/ontl/blob/master/samples/zenadriver/src/driver.c

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

     
     
  • 7.407, Аноньимъ (ok), 03:47, 24/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не понял шутки, это же сипипишка, стандартная для шиндовс штука.
     
     
  • 8.415, n00by (ok), 07:30, 24/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Далеко не стандартная, поскольку стандартная библиотека официально отсутствует ... текст свёрнут, показать
     
  • 3.224, Я (??), 01:58, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    вообще-то именно так и делают гайды для тех кто хочет писать драйвер на расте но умеет только на си.
     
     
  • 4.260, Moomintroll (ok), 10:14, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > для тех кто хочет писать драйвер на расте но умеет только на си

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

     
  • 4.380, Аноним 80_уровня (ok), 15:33, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Посмотрел бы я на тех людей, которые умеют писать драйверы на Си, но при этом хотят писать драйверы на Расте.
     
  • 3.383, Аноним зеленый (?), 21:12, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Тут это пруф отсутствия ошибок работы с памятью.
     
  • 2.396, СССР (?), 06:57, 23/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    йобу дался чтоль?
     

  • 1.4, lockywolf (ok), 16:04, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Жалко, что не на С++, но вообще молодцы.
     
     
  • 2.8, Аноним (8), 16:06, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –12 +/
    Ну так C++ - это почти C, только чуть удобнее, ООП (хотя концепция ООП под вопросом), больше возможностей, но всё такое же с ушами из 80-ых.
    Любил C++ до перехода на Rust.
     
     
  • 3.12, Аноним (12), 16:08, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +16 +/
    > почти C, только чуть удобнее

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

     
     
  • 4.14, Аноним (8), 16:08, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Бро, я пишу на C++ больше 10 лет.
    Да, чуть удобнее C, но всё та же помойка.
     
     
  • 5.15, Аноним (15), 16:10, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +10 +/
    скорее всего вы просто за 10 лет не научились писать на С++.
     
     
  • 6.17, Crazy Alex (ok), 16:11, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +11 +/
    Скорее всего он так и пишет на С++98.
     
     
  • 7.19, Аноним (15), 16:13, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Думаю да ...
    но даже там можно писать хорошо, так что проблема скорее всего в руках и голове )
     
     
  • 8.27, Rev (?), 16:30, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Писать хорошо можно на чём угодно, только статистика говорит о том, что никто на... текст свёрнут, показать
     
     
  • 9.149, Аноним (149), 21:07, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Только раст на эту роль не претендует... текст свёрнут, показать
     
  • 9.347, Аноним (347), 00:47, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Компилятор должен компилировать то, что дадут А анализировать должен анализатор... текст свёрнут, показать
     
  • 7.52, Урри (ok), 17:06, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    На си-с-классами.
     
  • 7.59, Аноним (2), 17:16, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    C++17 в среднем.

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

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

     
     
  • 8.119, деанон (?), 19:03, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В чем проблема, пишите на java и c ... текст свёрнут, показать
     
     
  • 9.139, Аноним (139), 20:45, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Вот это контраргумент, уделал его, уничтожил ... текст свёрнут, показать
     
     
  • 10.174, деанон (?), 22:13, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну, начнем с того, что у него в предложении совершенно несвзанные вещи в качеств... текст свёрнут, показать
     
     
  • 11.238, Аноним (139), 06:55, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну ты жжощ по детски ... текст свёрнут, показать
     
  • 8.186, Урри (ok), 23:00, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Какой отбордый бред Смузихлеб, это все десятки лет есть в библиотеках В мире е... большой текст свёрнут, показать
     
  • 8.273, Noname (??), 11:31, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Даже не представляю, как без этого все эти программисты на плюсах живут А, наве... текст свёрнут, показать
     
  • 8.375, n00by (ok), 14:19, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Дефолт случился в 1998 году Делаем выводы ... текст свёрнут, показать
     
  • 3.204, None (??), 23:28, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    главная проблема C++ - шаблоноёбство, из-за которого при наличии развёрнутой системы типов начинается фантастическое раздувание кода.
    но в компилируемом языке иначе нельзя, либо делаем разные куски кода, либо придётся вводить условия, косвенные обращения и т.п.
    С другой стороны, где золотая середина, сэкономить на лишнем обращении к памяти, или сэкономить на загрузке в кэш очередного куска кода.
     
  • 2.9, OnTheEdge (ok), 16:06, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ну так весь смысл в пресловутой безопасности раста, так что упоминание плюсов здесь просто неуместно
     
     
  • 3.13, Аноним (8), 16:08, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Не считаю это основным преимуществом Раста. Скорее как приятный бонус, да. Его сила в остальных возможностях.
     
  • 3.32, Кир (?), 16:39, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Всегда убеждался, что люди, ругающие C++, его попросту не знают (или пользуют подпротухшие стандарты типа 98). Удиви меня, приведи обоснованную критику?
     
     
  • 4.51, Аноним (76), 17:05, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Никто его полностью не знает(кроме может пары человек), потому собсна Раст и появился. Он родился чтобы все UB превратить в панику или (что предпочтительнее) в ошибку компиляции
     
  • 4.121, iLex (ok), 19:08, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Таких лютых проблем с зависимостями, как в C , нет больше нигде Иногда быстрее... большой текст свёрнут, показать
     
     
  • 5.178, деанон (?), 22:31, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ля, проблемы с зависимостями. Мы ещё посмотрим на лешаси Раста, лол
     
  • 5.198, Урри (ok), 23:21, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А можно пример такого проекта А то я вполне спокойно собираю хромиум, например ... большой текст свёрнут, показать
     
  • 5.222, Кир (?), 01:38, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Удивительно, у меня в системе процентов 15-20 софта собрано из исходников без единой проблемы. Что я делаю не так?
     
     
  • 6.250, Michael Shigorin (ok), 09:13, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Удивительно, у меня в системе процентов 15-20 софта собрано
    > из исходников без единой проблемы. Что я делаю не так?

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

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

     
  • 5.248, Michael Shigorin (ok), 09:11, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > С первого раза не соберётся никогда и ничего

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

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

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

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

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

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

     
     
  • 6.324, Урри (ok), 17:16, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Тот редкий случай, когда Шигорин авторитетно заявляет и прав.
     
  • 5.249, Аноним (12), 09:12, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > сишкой

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

     
  • 4.218, Аноним (218), 00:58, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну сходи в рассылку ядра и ответь на критику Линуса. Или комменты на опеннете - твой потолок?
     
  • 2.101, _kp (ok), 18:04, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –5 +/
    В с++ инициализацию структур до сих пор тормозят на уровне 90х годов, что вынуждает в с++ проекте всё равно тянуть  си файлы...
     
     
  • 3.223, Кир (?), 01:41, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вот, типичнейшая иллюстрация к тезису о дремучести критиканов C++. Человек застрял на уровне C и по нему судит о C++.
     
     
  • 4.428, _kp (ok), 13:43, 10/08/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А я для встраиваемых устройств пишу А тонны готовых работающих библиотек на си,... большой текст свёрнут, показать
     

     ....большая нить свёрнута, показать (35)

  • 1.6, Аноним (6), 16:05, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +30 +/
    >Особенностью драйвера является то, что его реализация практически построчно повторяет имеющийся драйвер GPIO на языке Си

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

     
  • 1.7, КО (?), 16:05, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    "практически построчно"
    И внизу полотно комментов, разбирающий и исправляющий ошибки в раст варианте...
    Не вижу реальной пользы в перестановке стульев.
     
     
  • 2.11, Аноним (8), 16:07, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –7 +/
    Довольно наглядно сравнивать, почему синтаксис Растп делает код приятнее. Думаю, это основная цель.
     
     
  • 3.18, Аноним (18), 16:12, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    О да. Сам то понял что ступил?
     
     
  • 4.54, заминированный тапок (ok), 17:09, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    это у него очень тонкий юмор
     
  • 4.61, Аноним (2), 17:17, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Где ступил? Посмотри на код, у Раста и меньше, и красивее
     
     
  • 5.94, CGo_one_love (?), 17:53, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Так женись на нём. Наверно заместили естественный объект красоты и малой ширины на искусственный.
     
     
  • 6.272, VladSh (?), 11:28, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Видать сам женат на C?
     
  • 5.143, danonimous (?), 20:54, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Они вероломно использовали одну хитрость, чтобы код на rust занимал меньше строк - не переносили скобки на новую строку :)
     
     
  • 6.370, Аноним (370), 11:02, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вот чем go не зашёл - требование открывающую скобку фигачить в конце строки и никак иначе.
     
  • 3.162, Аноним (162), 21:37, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не знаю не С, не Rust
    Но код на С выглядит понятнее О_о
     
     
  • 4.163, Аноним (-), 21:48, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Не знаю не С, не Rust

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


     
     
  • 5.251, Michael Shigorin (ok), 09:15, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >> Не знаю не С, не Rust
    > Не стесняйся, большей части местных "анти" комментаторов
    > это никак не мешает.

    s/"анти" //

     
  • 2.146, proninyaroslav (ok), 21:03, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так это не предполагается для текущих драйверов (именно из-за ошибок при переписывании того что уже работает), а для якобы новых.
     

  • 1.10, Аноним (15), 16:06, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    недолюбливаю я этот rust, внутреннее чутье подсказывает мне что GPIO будет теперь менее стабилен.
     
     
  • 2.23, Аноним (23), 16:27, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    "Не читал, но осуждаю", да?
     
     
  • 3.107, Аноним (107), 18:21, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А тут к бабке не ходи понятно что проблем станет больше. Например со сборкой этих драйверов на новом тулчейне на разных платформах и версиях этого раста.
     
     
  • 4.133, Аноним (23), 19:52, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    По сравнению с задачей "обеспечить сборку ядра clang-ом", которую решали лет 5 как минимум - какой-то раст - это вообще семечки.
     
     
  • 5.252, Michael Shigorin (ok), 09:16, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > По сравнению с задачей "обеспечить сборку ядра clang-ом",
    > которую решали лет 5 как минимум - какой-то раст - это вообще семечки.

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

     
     
  • 6.359, Аноним (359), 04:38, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Почему просто не забанить всех растоманов? Все равно у них интеллект как у js разработчиков и они не смогут ничего путного сказать по определению
     

  • 1.16, Аноним (18), 16:11, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Ктобы сомневался что ничего полезного он итаки не сделают. Только вон построчно и могут заменить даже не включая мозга. Но это раст детка.
     
     
  • 2.42, Dzen Python (ok), 16:54, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты забыл про бульон!
    Теперь все растовички будут гордо тыкать ровно в 1 (один) пример драйвера на расте, который делает хоть что-то.
     
  • 2.48, Аноним (-), 17:03, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > 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 - мы поглядим, не обещаем что замержим"
    переписали - анонимы опеннета опять недовольны.
    > Ктобы сомневался что ничего полезного он итаки не сделают.

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


     
  • 2.62, Аноним (2), 17:19, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    обоже, только ослы с опеннета могут глубокий WIP с иными целями посчитать за что-то мегаважное и до* на пустом месте
     
     
  • 3.81, Аноним (2), 17:34, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    прошу прощения, психануло)
     
  • 2.122, Аноним (122), 19:23, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Ну да, настолько бесполезная вещь что в переписке разрабы благодарят проделанную работу "Thanks a lot, this looks extremely helpful!" и задают разные вопросы и получают на них ответы.
    Но кто они такие по сравнению с гуру опеннета...
     

  • 1.20, Аноним (20), 16:21, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    В Rust меня отталкивает синтаксисом, но если его не учитывать, то плюсов при переходе можно набрать достаточно.

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

     
     
  • 2.22, Аноним (122), 16:26, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Синтаксис не проблема, тем более он не так сильно отличается от си. Плюс на том же лиспе люди как-то писали и выжили.
     
     
  • 3.115, Ванёк (?), 18:52, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Не выжили
     
     
  • 4.410, Аноньимъ (ok), 03:56, 24/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Выжили, родили сыновей, внуков и правнуков. И теперь передают правнукам искусство лиспа, оружие для более цивилизованного будущего века.
     
  • 3.212, Аноним (212), 23:58, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У lisp синтаксис элементарный, он весь на основе sexp, в отличии от мешанины в rust.
     
  • 3.409, Аноньимъ (ok), 03:54, 24/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Проще чем у лиспа синтаксиса уже быть не может.
     
  • 2.24, Rev (?), 16:27, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Просто не используйте дженерики и ссылки с временами жизни ;)
     
     
  • 3.35, Аноним (18), 16:41, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Просто не используйте раст.
     
     
  • 4.63, Аноним (8), 17:20, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А более нечего, если хочется скорости.
    C малофункционален, C++ легаси и перегружен, а Кристал, Зиг и прочие малопопулярны.
     
     
  • 5.78, Аноним (78), 17:29, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > C малофункционален

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

     
     
  • 6.80, Аноним (2), 17:33, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ветка же не связана с ядром, а абстрактна о языках.

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

     
     
  • 7.254, Michael Shigorin (ok), 09:18, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Да, на C можно сделать огромный проект, где в другом языке

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

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

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

     
  • 7.360, Аноним31 (?), 06:37, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну дада... Давайте тогда и на yoptascript дрова писать :) Удобно же, одна строчка.
     
  • 6.129, Анончик (?), 19:43, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >На С можно написать абсолютно любой код

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

     
  • 6.411, Аноньимъ (ok), 03:59, 24/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >На С можно написать абсолютно любой код.

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

     
  • 5.106, _kp (ok), 18:13, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > C малофункционален

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

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

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

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


     
  • 2.57, Аноним (76), 17:13, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    По началу есть такое чувство. Это примерно как с пробелами в питоне. Но синтаксис это лишь малая часть языка. Куда важнее сообщество вокруг, написанные библиотеки, тулинг и заложенные подходы. И надо признать что сам дизайн языка вокруг трейтов для почти всего(в том числе динамического диспатчинга) очень элегантен. После осознания этого все складывается и непривычными остаются только лайфтаймы. Но для них все остальные придуманные способы еще хуже.
     
     
  • 3.83, Аноним (2), 17:36, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Лайфтаймы в общем-то есть и в C/C++, но большинство погромистов на этих языках мелкие нюансы мало волнуют :)
     
  • 3.207, Аноним (207), 23:34, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Но в питоне не навязывают пробелы. Это в ниме и ямле навязывают.
     
  • 2.65, Аноним (8), 17:21, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Разбери немного, перестанет откладывает
    У меня тоже раньше подобная "проблема" была, но потом приходит понимание, что там всё логично, красиво и к месту
     
     
  • 3.213, Аноним (212), 00:00, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, там выбраны очень дурацкие символы и конструкции для выражения смысла.
     
     
  • 4.384, Аноним зеленый (?), 21:16, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Они не просто так "выбраны". Они были обсуждены сообществом - https://habr.com/ru/post/532660/
     
  • 2.82, НяшМяш (ok), 17:36, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    А что в нём вырвиглазного? Всё такое же как и везде, плюс пара своих специфических плюшек типа времени жизни. Как минимум куда приятнее современных плюсов, в которых реально непонятно что происходит.
     
     
  • 3.154, Аноним (149), 21:15, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    жабоскриптер   осуждает с++ и хвалит раст? Не удивлён
     
     
  • 4.189, НяшМяш (ok), 23:07, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Естественно, раст больше на жеес\теес похож, чем плюсы ). Тупо на нём легче писать.
     
     
  • 5.208, Аноним (208), 23:40, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Каким местом он на них похож?
     
     
  • 6.276, НяшМяш (ok), 13:07, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    code interface MyType myFunction void class MyClass implements MyTy... большой текст свёрнут, показать
     
     
  • 7.315, Аноноша (?), 16:12, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Штош:

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

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

     
     
  • 8.337, НяшМяш (ok), 18:34, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Да, сделал так специально для похожести Можно и без new Тут согласен, но в R... большой текст свёрнут, показать
     
     
  • 9.339, Аноноша (?), 19:18, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Где тут похожесть В js нельзя классы без new звать В rust вообще нет классов и... большой текст свёрнут, показать
     
  • 9.342, нах.. (?), 21:25, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А можно просто взять и обойтись без этой вашей ООПни ... текст свёрнут, показать
     
  • 2.408, Аноньимъ (ok), 03:53, 24/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Оно синтаксически сиподобное, или скорее сипипи подобное.
    Что конечно ужасно, но видимо время забыть этот жуткий пережиток прошлого навязанный корпорастами ещё не пришло.
     

     ....большая нить свёрнута, показать (31)

  • 1.21, йцукен (??), 16:25, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    х.м.  а такое

    .ok_or(Error::ENXIO)?

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

     
     
  • 2.25, Rev (?), 16:28, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Нет
     
  • 2.85, НяшМяш (ok), 17:37, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Панику может вызвать только явный unwrap без предварительной проверки.
     
  • 2.96, CGo_one_love (?), 17:56, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Панику зрительных нервов?
     

  • 1.26, Аноним (26), 16:29, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    А патч очищающий Linux от ржавчины уже есть?

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

     
     
  • 2.34, SystemD (?), 16:40, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Rust это язык будущего! Быстро извенись перед всеми на каленях, только так тебя простит великий Rust! Сейчас же извенись! Сейчас же!
     
     
  • 3.36, Аноним (26), 16:44, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Я и go, systemd, dbus, polkit+JS, JIT, ... так же в своей системе видеть не желаю! Та что можешь мне соснуть, стоя на коленях.
     
     
  • 4.41, Великая Rust (?), 16:51, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    SystemD это как Chromium, ты можешь его и не ставить, но будешь соcать раком за бортом прогресса!
     
     
  • 5.90, Аноним (90), 17:46, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    пох это ты, мы тебя узнали
     
  • 5.104, Аноним (104), 18:08, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > SystemD

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

     
  • 4.45, Аноним (45), 16:58, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Так переходи на вантуз. Разве что только JIT из всего списка останется.
     
     
  • 5.110, Аноним (104), 18:27, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У меня и GNU/Linux без этого списка работает.
     
  • 4.95, Аноним (370), 17:54, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Go вроде и ничего, но стандартная библиотека и сплайсы всё жедание осваивать его отбили. Переписал пару утилит дата-конвертеров с питона на го и больше не трогал
     
     
  • 5.111, Аноним (104), 18:31, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Go вроде и ничего

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

    https://gitweb.gentoo.org/repo/gentoo.git/tree/net-p2p/go-ipfs/go-ipfs-0.8.0.e

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

     
     
  • 6.114, Плюсовик (?), 18:43, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ужас! Даже добавить нечего.
     
  • 6.278, Аноним (278), 13:11, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    При чем тут Го? Не нравятся импорты, можно писать самому на чём угодно.
     
  • 5.216, Аноноша (?), 00:22, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > но стандартная библиотека всё жедание осваивать его отбили

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

     
  • 2.39, макпыф (ok), 16:48, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    пока, к счастью, не от чего очищать
     
  • 2.68, Аноним (8), 17:22, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Только ослы будут очищать a shit of C от прекрасного.
     
     
  • 3.98, CGo_one_love (?), 18:01, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Без Си ты бы даже не смог написать это сообщение. У тебя в смартфоне и компе всё провоняло, получается.
     
     
  • 4.145, Аноним (-), 21:01, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > Без Си ты бы даже не смог написать это сообщение.

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

     
     
  • 5.255, Michael Shigorin (ok), 09:22, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Деточка, слова firmware или там bootloader хоть что-то говорят?

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

     
     
  • 6.265, anonymous (??), 10:34, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    По поводу firmware можете посмотреть на oreboot, например.
     
  • 6.291, Аноним (-), 14:08, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >> Колибря
    > ... или там bootloader хоть что-то говорят?

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

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

     
     
  • 7.301, Совершенно другой аноним (?), 14:57, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А хоть Firmware-то на C пишут, или там может какие-то операционные системы?
     
     
  • 8.314, Аноним (-), 16:03, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вы можете поискать и кинуть ссылок на фирмварь на чистой сишкечке, совсем бе... текст свёрнут, показать
     
  • 8.390, yet another anonymous (?), 23:46, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    По-всякому бывает Хотя, называть их операционными системами не совсем коррект... текст свёрнут, показать
     
  • 7.303, Аноним (303), 15:02, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не обращайте внимания. Шигорин сильно не любит Rust, в силу того, что Rust ВНЕЗАПНО не так уж и безнадёжен, как хотелось бы ему пропагандировать, вот и приходится с ним сталкиваться в своих линуксах и при взаимодействии с Российскими процами, где через C-транспиляцию так просто не извертеться, а АСМ там настолько страшен, что разрабы сами предпочитают избегать его насколько возможно.
     
  • 5.277, Аноним (278), 13:09, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Это называется назло маме шапку не надену и отморожу уши. Вот и всё. Великовозрастные юноши как правило считают себя умнее своих родителей, и гордыня выше головы.
     
     
  • 6.284, Аноним (-), 13:46, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Это называется назло маме шапку не надену и отморожу уши. Вот и
    > всё. Великовозрастные юноши как правило считают себя умнее своих родителей, и
    > гордыня выше головы.

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


     
     
  • 7.297, Совершенно другой аноним (?), 14:46, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Есть https://lexborisov.github.io/myhtml, не знаю, есть ли на базе его браузеры. Но вот Вы, если данный сайт посещаете с Linux/BSD/Android, то явно пользуетесь ОС написанной на C, и наверное, не смогли-бы без неё написать своё ценное мнение.
     
     
  • 8.304, Аноним (-), 15:03, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Угу, и вот так - у вас все с Сразу бы ссылку на линкс дали, что ли Я кстат... большой текст свёрнут, показать
     
     
  • 9.305, Совершенно другой аноним (?), 15:11, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Т е Вы хотите сказать, что за прошедшие пол-года в современном интернете всё по... текст свёрнут, показать
     
     
  • 10.313, Аноним (-), 15:53, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Т е я хочу скзать где браузер, Карл Ну и о JS там было вдогонку Если вы ... большой текст свёрнут, показать
     
     
  • 11.323, Совершенно другой аноним (?), 17:10, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Извиняюсь за вопрос на вопрос, но где используемый ширнармассами браузер, на чё... большой текст свёрнут, показать
     
  • 5.279, Moomintroll (ok), 13:23, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Колибря, Редокс, современные браузеры на плюсах?

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

     
     
  • 6.285, Аноним (-), 13:47, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Колибря, Редокс, современные браузеры на плюсах?
    > А где можно увидеть "современные браузеры" на "Колибря, Редокс"?

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

     
     
  • 7.289, Moomintroll (ok), 14:02, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > А где можно увидеть "современные браузеры" на Си?

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

     
     
  • 8.294, Аноним (-), 14:13, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Т е по существу возразить нечего и ты сделал вид, что не заметил запятую в пере... текст свёрнут, показать
     
     
  • 9.299, Совершенно другой аноним (?), 14:55, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Есть на C https lexborisov github io myhtml А так - и на других языках нету,... текст свёрнут, показать
     
     
  • 10.320, Аноним (-), 16:57, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    0 Уровень познаний опеннета https www opennet ru opennews art shtml num 45... большой текст свёрнут, показать
     
     
  • 11.334, Совершенно другой аноним (?), 18:05, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Поясните, пожалуйста, чем он вдруг не подошел gt оверквотинг удален Что-же с ... большой текст свёрнут, показать
     

     ....большая нить свёрнута, показать (37)

  • 1.28, SystemD (?), 16:31, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Надо весь Linux переписать на Rust!
     
     
  • 2.31, ыы (?), 16:39, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +7 +/
    построчно!!!
     
  • 2.33, Тинус Лорвальдс (ok), 16:40, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Ну раз надо, значит делай. Или у тебя руки способны писать только комментарии в интернете?
     
     
  • 3.91, Аноним (90), 17:47, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >Или у тебя руки способны писать только комментарии в интернете?

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

     
  • 2.140, Аноним (140), 20:47, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А Rust надо переписать на Linux!
     
     
  • 3.221, Аноним (221), 01:29, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Не понятно, что разработчикам, продвигающим Rust, мешает форкнуть ядро и построчно переписать его. И вообще может кто-то из них сможет транслятор сделать из C в Rust?
     
     
  • 4.259, Аноним (259), 09:56, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это на данном этапе не нужно, у них же нет тысяч разработчиков для переписывания миллионов строк кода, а то кол-во "хакерских оптимизаций", которое позволил всунуть Си, никаким транслятором не переведешь в другие языки. Большинство ошибок в ядре в драйверах. Достаточно всунуть в ядро возможность писАть на относительно безопасном и быстром языке - и заинтересованные производители железок со временем сами захотят писАть на нем драйвера.
     
     
  • 5.282, Аноним (280), 13:36, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А кто производителей железок заставляет на C писать непременно с хакирскими трюками? Пусть пишут, если им нравится, в соотвествии с MISRA.
     
  • 4.266, anonymous (??), 10:37, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Внезапно работать всем вместе на одном проекте -- выгоднее, чем когда каждый пилит свой проект. Сотрудничество вместо конкуренции.
     
     
  • 5.288, user (??), 13:55, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Надо понимать какие цели у лидера проекта. Например, можно было бы вместе с немцами сотрудничать в годы ВОВ - это выгодно по вашему?
     

  • 1.30, Аноним (30), 16:38, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Nim > Rust
    Запомните этот твит!
     
     
  • 2.69, Аноним (8), 17:23, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Ним вообще зеро, даже без компилятора и никогда не выстрелит.
    Запомните этот твит!
     
     
  • 3.368, Аноним (30), 10:29, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Если речь идет о трансляции в машинный код, так для это Nim пользует компилятор C/C++.
    Зачем изобретать Nim'у велосипеды и привязка к конкретной платформе?
     
  • 2.97, Аноним (97), 17:57, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    2 опечатки в слове Zig
     
  • 2.290, Аноним (280), 14:08, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Как применить операцию сравнения к нечисловому множеству?
     
     
  • 3.367, Аноним (30), 10:24, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не очень понятен вопрос
    - Что подразумевается под "операцией сравнения"?
    - Что подразумевается под "нечисловое множество"?

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

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

     
     
  • 4.376, Аноним (376), 14:23, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Думаю он спрашивает про то, как применить сравнение для языков.
     
     
  • 5.381, Аноним (30), 17:38, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Думаю он спрашивает про то, как применить сравнение для языков.

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


     

  • 1.37, Аноним (37), 16:44, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Т.е. они взяли изначально нормально работающий и проверенный драйвер. Сделали замену сишных вызовав прекрасными растоструктурами и такие "во, смотрите, мы драйвер написали"

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

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

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

     
     
  • 2.56, Аноним (56), 17:11, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Т е они взяли и прочитали сообщения Грега с мейнтейнером GPIO https lore kerne... большой текст свёрнут, показать
     
  • 2.70, Аноним (8), 17:23, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А ты хоть так сможешь сделать?

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

     
     
  • 3.128, Аноним (37), 19:32, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Прикинь а. У меня нет проблем ни с памятью ни с логикой.
     
     
  • 4.131, Аноним (23), 19:45, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Что ты тогда на опеннете делаешь?
     
  • 4.150, Аноним (-), 21:09, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/


    > Прикинь а.

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

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

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

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


     
  • 2.86, Аноним (23), 17:39, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Эммм, новость мы читаем ж@пой?
    Это пример. Пример написания драйвера на расте. Для этого и взят простой драйвер, для этого и сделано построчное сравнение с сишным.
     
     
  • 3.123, деанон (?), 19:24, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ты понимаешь как пишется софт?! Проекция в чужой синтаксис не делает программу родной и показать оно не может ничего, кроме говнокодинга
     
     
  • 4.124, деанон (?), 19:26, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Что, кстати, многое говорит о квалификации этих программистов
     
     
  • 5.130, Аноним (23), 19:44, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А ты понимаешь, как пишутся модули ядра? В этом примере половина кода - привязка к ядерным api, что в растовском, что в сишном случае, а вторая половина простая как табуретка, опять же в обоих случаях.
     
     
  • 6.176, деанон (?), 22:18, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Понимаю, но, что тогда это должно продемонстрировать, что нужно писать на си?
     
     
  • 7.184, Аноним (23), 22:54, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это сделано
    > Для разработчиков, желающих познакомиться с созданием драйверов на Rust

    Не твое это.

     
     
  • 8.202, деанон (?), 23:24, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Офигенная аргументация, ага, так держать... текст свёрнут, показать
     

  • 1.40, Kroz (ok), 16:51, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    > подготовлено построчное сравнение, позволяющее понять в какие конструкции на Rust преобразован код на Си.

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

     
     
  • 2.44, Аноним (37), 16:57, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Зачем? На нём что-то толковое разве сделали? Чтобы не текло и безапастноне падало
     
     
  • 3.64, Аноним (76), 17:20, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    ну да, ну да. а в curl например его от нехерделать завезли видимо. и всякие хоть и хипстерские, но рвущие в бенчах ripgrep'ы и прочие cli-утилиты для всяких cloudflare и гугл
     
     
  • 4.118, Аноним (118), 18:55, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Рипгреп-то по функциональности простой греп догнал или всё также уровня хелловорлда? Специально под тесты-то заточить это одно, а дальше всё.
     
     
  • 5.152, Аноним (-), 21:12, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Рипгреп-то по функциональности простой греп догнал или всё также уровня хелловорлда?

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

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


     
  • 3.73, Аноним (8), 17:26, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –5 +/
    На C? Да в общем-то не особо. Всё так же течет и падает. Есть крупные проекты вроде Линукса, где титаническими усилиями заставляют его работать хоть как-то, но получается не всегда.
    В отличие от Раста, который не течет и не падает.
     
     
  • 4.116, Ванёк (?), 18:54, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Прежде чем писать, что раз подумай, а потом подумай ещё 1000 раз!
     
  • 4.127, Аноним (37), 19:31, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну да, у растоманов и с логикой смотрю плохо.
     
  • 4.177, Аноним (122), 22:23, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не, сишечка не падает. Просто бажина из-за переполнения буфера 15 лет живет в ядре и позволяет получить рут. А надежно и ничего не падает.
     
  • 4.293, Аноним (280), 14:11, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не течёт и не падает то, чего нет.
     
  • 3.292, Аноним (280), 14:09, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А на Rust что-то просто толковое сделали?
     

  • 1.47, Аноним Анонимович Анонимов (?), 17:00, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Полистал код драйвера. Я не знаю кому удобнее читать/писать на такой смеси крестов с явой и прочей эзотерикой.

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

     
     
  • 2.66, Аноним (66), 17:21, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –5 +/
    может лучше на грязном Си ?
     

  • 1.49, Аноним (49), 17:04, 20/07/2021 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –4 +/
     

     ....ответы скрыты (2)

  • 1.55, Аноним (55), 17:11, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +14 +/
    Конкретный код про выделение памяти с обработкой ошибки выделения на си занимает 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 раз". Нужна предсказуемость, пожалуйста.

     
     
  • 2.71, Аноним (76), 17:25, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тут код в основном про безопасную инициализацию, а не про выделение памяти. лямбды иногда пихают для ленивой инициализации, но это общий для многих языков паттерн
     
     
  • 3.79, Аноним (55), 17:31, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Код-то в основном про инициализацию, но именно этот неделимый на более мелкие куски блок кода, над результатом которого выполняется оператор ?, теоретически способен вернуть какую-нибудь информацию об ошибке при аллокации.
     
  • 2.87, НяшМяш (ok), 17:40, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Ну вообще вот это написано чисто из-за ядерной специфики.
     
     
  • 3.92, Аноним (55), 17:48, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Отлавливать ошибки аллокации было бы неплохо и в userspace-приложениях, тем более раз уж Rust пытается быть безопасным как в рекламе, а не безопасным от двух багов - use-after-free и double-free
     
     
  • 4.157, Ordu (ok), 21:19, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Отлавливать ошибки аллокации было бы неплохо и в userspace-приложениях, тем более раз
    > уж Rust пытается быть безопасным как в рекламе, а не безопасным
    > от двух багов - use-after-free и double-free

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

     
     
  • 5.229, Аноним (55), 03:37, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну например если бы программа или игрушка при вылете написала, что она вылетела из-за недостатка вот такого конкретного количества оперативной памяти, а не просто паникнула с кашей в консоль, это было бы очень полезно знать конечному пользователю. Сразу ясно, что тут нужно освободить или докупить памяти, а не ругаться на разработчиков со словами "ваша штука сама вылетает без какой-либо вменяемой информации" и удалять эту программную гадость, неспособную даже объяснить, что конкретно ей не понравилось, в чем ошибка.
     
     
  • 6.231, Ordu (ok), 04:05, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Такого количества это какого Программа выделяет себе хрена в ступе арену, чтобы... большой текст свёрнут, показать
     
     
  • 7.242, Аноним (55), 08:32, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    вышеописанная ошибка при выделении памяти для арены не теряет свою актуальность

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

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

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

     
     
  • 8.295, Ordu (ok), 14:20, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Возьми такой крейт с реализацией арены, который будет об этих ошибках сообщать ... текст свёрнут, показать
     
  • 7.258, Совершенно другой аноним (?), 09:52, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > неплохо было бы защитить страницы от свопирования (я не знаю, если честно, возможно ли это в linux без рутовских прав?)

    man mlock

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

     
  • 7.412, Аноньимъ (ok), 04:07, 24/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    В линуксе даже кеш фс не могут от свопа защитить...
     
     
  • 8.416, n00by (ok), 07:35, 24/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем Когда юзеры добровольно организуют своп в zRAM ... текст свёрнут, показать
     
     
  • 9.417, Аноньимъ (ok), 08:44, 24/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Тем более за этим Но да, одно изобретение линукса чудесатее другого ... текст свёрнут, показать
     
  • 5.256, Michael Shigorin (ok), 09:28, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Если когда они продерутся через всё это и дождутся NULL
    > в качестве результата malloc

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

     
  • 2.193, Аноним (193), 23:15, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –6 +/
    У Си с его malloc и проверкой на NULL (ага, NULL, а не null) есть маленькая проблемка. Веделенная память содержит "мусор", т.е. неизвестный набор байт и язык Си не проверит за программиста, не забыл ли тот корректно инициализировать все поля. Без такой инициализации в дальнейшем может прилететь.

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

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

     
     
  • 3.227, Аноним (55), 03:29, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ваша ссылка вывалила мне кучу рекламы и предложила купить какие-то курсы, а если... большой текст свёрнут, показать
     
  • 3.228, Аноним (228), 03:34, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    для склеротиков есть calloc
     
     
  • 4.232, Ordu (ok), 04:12, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    calloc не инициализирует, а обнуляет. Разницу объяснять надо?
     
     
  • 5.283, z (??), 13:44, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вообще-то по стандарту именно "The space is initialized to all bits zero". Реально же есть интересные нюансы https://vorpus.org/blog/why-does-calloc-exist/
     
  • 3.275, Аноним (278), 13:06, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    memset(ptr, 0, sizeof(...));
    это ясен пень, и такое забывать нельзя.
     
     
  • 4.287, z (??), 13:53, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    malloc + memset != calloc см. хороший разбор на линке выше.
     
     
  • 5.298, Совершенно другой аноним (?), 14:48, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    К сожалению там почти всё "заблюрено". Единственный плюс у calloc() относительно malloc(), это защита от переполнения при умножении числа элементов на размер элемента.
     
     
  • 6.300, z (??), 14:55, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Там еще разные скорости и разные внутренние политики. Позвольте еще раз привести https://vorpus.org/blog/why-does-calloc-exist/ - последний параграф как раз об этом.
     
  • 5.310, Аноним (278), 15:46, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В микроконтроллерах STM32 такого нет. Как и zeromem.
     
     
  • 6.312, Аноним (278), 15:47, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    calloc есть оказывается, попутал.
     

  • 1.58, Урри (ok), 17:14, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Для желающих поугорать:

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

     
     
  • 2.74, Аноним (8), 17:27, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –7 +/
    Спасибо, угораю с убогого оригинала
     
     
  • 3.84, CGo_one_love (?), 17:37, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Т.е. ты оценил его по факту написания на Rust, т.к. функционал то один и тот же! Придумали для выпедрёжа этот синтаксис, а не для решения задач? Просто субкультура, какими были панки, готы, эмо... где они сейчас. Очередная иллюзия нового и надежд на избавление от проблем.
     
     
  • 4.126, Аноним (37), 19:29, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Он не оценил. У него память раст сожрал и случилась растоистерика.
     
  • 3.125, Аноним (37), 19:29, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Действительно, после раста посмотришь на оригинал и ржать хочется насколько криво на расте всё получается.
     
  • 2.112, ng (ok), 18:35, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Для желающих поугорать:

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

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

    imho

     
  • 2.113, Онаним (?), 18:37, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Да пипец какой-то.
    Даже этот полухеллоуворлд на сях в разы более читабелен, сразу понятно, что делается, где и зачем, в отличие от.
     
     
  • 3.267, anonymous (??), 10:44, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Да, в rust уровень вхождения сильно выше. Там требуется больше думать. И это плохо. Но это, мне кажется, недостаточная причина для reject-а. Это думание не напрасно, а на повышение safety и надёжности кода.
     
  • 2.151, Аноним (151), 21:10, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Да, дичь как она есть.
    Через кровь пот и слезы к железу.
    Зачем полумеры?
    Берите и переписывайте все ядро на расте.
    И варитесь в своем уютном котле.
    Я лично в гробу видел поддерживать ядро написанное на двух языках и ломать себе мозг когда вот такое встретится.
    Это хуже чем С.
    Даже асм и то понятнее.
     
  • 2.170, Аноним (208), 22:03, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вот автор на С оставил автограф, а как же растоман? Боится ручки испачкать? Потом ведь за свю жизнь не отмоется.
     
  • 2.286, Жироватт (ok), 13:47, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    2 блока unsafe. Круто, чё
     

  • 1.77, CGo_one_love (?), 17:29, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Посмотрел сравнение. Синтаксис реально дичь. Я вижу в этом только желание выделиться, мол смотрите, сколько закорючек в одной строке делают магию (чем-то Perl напоминает, но у него ниша подходящая). Эти :: ? (()), где на Си простые человеческие строки - жесть. В таких конструкциях шансов больше накосячить уже в плане опечаток и невнимательности. Примерно как стих без рифмы, работает, но читается трудно. Даже JS лучше читается.
    Вот пример - Го, просто взяли и сделали легкий текст, который в то же время очень похож на Си, и даже легче, чем Си в плане синтаксиса, и возможностей при этом сделали больше, в т.ч. выход за пределы, сборщики, структуры с методами, и прочие паники, и без ООП. Даже без знания языка понятно, что в коде происходит. Но Го не подходит для системного уровня, почему нельзя сделать язык аналогичный для системного - а потому что уже есть Си.
     
     
  • 2.99, Аноним (140), 18:02, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Уже делают zig. Он как С только модный молодежный.
     
     
  • 3.171, Аноним (208), 22:04, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    В Россее могут запретить.
     
     
  • 4.192, Аноним (207), 23:14, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Та, что у нацистов, пишется по-другому.
     
     
  • 5.296, Аноним (280), 14:23, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Наши суды не интересует, как там оно у них пишется, звучит-то как у нацистов.
     
  • 2.148, proninyaroslav (ok), 21:06, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Так раст это идейный продолжитель C++, но никак не Си. Ни в плане абстракций, ни в плане синтаксиса. Мешанины в плюсах не меньше, чем в расте.
     
     
  • 3.173, Аноним (37), 22:10, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Меньше.
     
  • 3.205, Урри (ok), 23:31, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Меньше. С++ вполне логичный в плане синтаксиса и строгий. Раст же постоянно перестраивают, потому что то там то там что-то не вяжется.
     
     
  • 4.253, proninyaroslav (ok), 09:16, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Меньше. С++ вполне логичный в плане синтаксиса и строгий. Раст же постоянно
    > перестраивают, потому что то там то там что-то не вяжется.

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

     
  • 2.164, Аноним (208), 21:52, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Drew DeVault пилит подобный "секретный язык" https://drewdevault.com/2021/05/24/io_uring-finger-server.html
     
     
  • 3.262, Michael Shigorin (ok), 10:19, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > 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-replacement.html

     
     
  • 4.306, Аноним (303), 15:30, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > A language like C solves problems by writing more C code

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

     

  • 1.88, Аноним (88), 17:41, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Опять что-то переписали?
     
     
  • 2.89, Аноним (-), 17:44, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Опять что-то переписали?

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

     
  • 2.100, Аноним (140), 18:04, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Пытаются показать что могут, но до сих пор не могут внятно сказать зачем.
     

  • 1.102, user90 (?), 18:05, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Учебный проЭкт? Ну ладно, пусть будет, но в ядре-то он нахрен?))
     
     
  • 2.352, Аноним (352), 02:01, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Пусть учаться линуксята молодые.
     

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

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

     
     
  • 2.156, Аноним (-), 21:18, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Решать что Проблемы перевода очередного пересказа о расте ... большой текст свёрнут, показать
     
  • 2.172, Аноним (208), 22:06, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Хехехе. Мне нравится как мэйинтейнеры ядра одним ленивым взглядом находят труднорешаемые проблемы для хипстеров.
     

  • 1.105, Аноним (105), 18:09, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Zig модный молодёжный, простой приятный, великий китайский C заменитель язык Xi кнопка УДАР!
     
  • 1.120, Ванёк (?), 19:03, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Опять занимаются велосипедостроением вместо полезных дел
     
     
  • 2.132, Аноним (23), 19:49, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Полезные дела для тебя оставили.
     

  • 1.137, Аноним (137), 20:36, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >> Особенностью драйвера является то, что его реализация практически построчно повторяет имеющийся драйвер GPIO на языке Си.

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

     
     
  • 2.217, псевдонимус (?), 00:30, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Именно!

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

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

     

  • 1.141, Аноним (140), 20:48, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Драйвера и на джаваскрипт можно писать. Давайте покажите класс что вы можете.
     
     
  • 2.210, Аноним (208), 23:48, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну зачем ты так сразу? Альтернативно одаренные трансгендерные кодеры еще не отошли от проблемы в leftpad (помним (с)), а ты сразу драйвер.
     
     
  • 3.230, Аноним (230), 03:47, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Альтернативно одаренные той проблемы даже не заметили. В зависимости же проблема, значит - не их.
     

  • 1.159, Аноним (208), 21:28, 20/07/2021 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

  • 1.175, Dzen Python (ok), 22:16, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Мне одному это очень сильно напоминает работу по кодингу от какой-нибудь девочки-зубрилки курсе на 2-3м любого ИТ-вуза нашей необъятной?

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

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

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

     
     
  • 2.179, Аноним (122), 22:39, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Причина простая - показать си разрабам ядра как это выглядело бы на rust - такой себе розеттский камень. И они (в отличие от оппенетовских диванных кодеров) этим остались довольны. Можно посмотреть дальнейшую переписку в рассылке - там задают вопросы, обсуждают почему и как.
    Если его переписать не транслирую (напр. поменять структуры данных где это можно) - то им будет очень сложно понять, потому что им этот язык вообще не знаком. Там нет каких-то зубодробительных фишек типа, только минимум чтобы оно работало точно так же. И этого уже достаточно.
     
  • 2.187, Аноним (207), 23:05, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >"почему здесь заюзан алгоритм Маршалла-Фуллера вместо Клефа-Брайта?".

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

     
  • 2.195, Аноним (-), 23:19, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Не разумнее на основе этого двигла сделать (вырастить?) какой-нибудь Биосовместимый
    > Ветропускающий Двигатель на горохе? Который делает ровно то же, но показывает
    > преимущества органики перед металлом?

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


     
  • 2.211, Аноним (208), 23:53, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Поясняю: у каждого в группе она была - девушко, хорошистка,

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

     
     
  • 3.413, Аноньимъ (ok), 04:20, 24/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А потом пацаны одевают на себя пушистые костюмы с хвостмками и ушками и едут на фурфест.
     
     
  • 4.424, Аноноша (?), 21:52, 25/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А потом пацаны одевают на себя пушистые костюмы с хвостмками и ушками
    > и едут на фурфест.

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

     
     
  • 5.426, Аноньимъ (ok), 22:24, 25/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну к чему это притворство. Я про С++ пацанов.
    Про растенианцев ничего не знаю, в близи не видел. А про кресты все давно знают что там к чему.
     

  • 1.183, Аноним (207), 22:51, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Поигравшись немного с растом я пришёл к следующему выводу 1 Раст - сырой неста... большой текст свёрнут, показать
     
     
  • 2.188, Аноним (122), 23:07, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну, ты из 6 пунктов целых 4 посвятил "абсолютно необходимым примитивам", но не назвал ни одного... Или примитивы твои слишком известны, чтобы ты их называл?)
     
  • 2.196, Аноним (193), 23:19, 20/07/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    а ты точно с растом поигрался?)
     
     
  • 3.215, Аноним (212), 00:21, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а ты точно читать умеешь?
     
  • 2.264, Michael Shigorin (ok), 10:30, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Спасибо, занятно -- и полностью бьётся с упомянутой в 262 статьёй, вот её заклю... большой текст свёрнут, показать
     
     
  • 3.269, Аноним (269), 11:07, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Ну а чего только выводы цитировать? В статье есть более интересные моменты, напр:
    "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")

     
     
  • 4.391, yet another anonymous (?), 00:05, 23/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Для автора статьи портабилити, неуменее работать с карго

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

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

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

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

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

     
     
  • 5.402, Аноним (402), 19:47, 23/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет никакой засады. Обычный make и rustc спасет отца русской демократии. Правда будут такие портянки Makefile как и для си.
    Плюс сам карго можно локально развернуть - это совсем не сложно. Просто читайте маны https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html и все будет свое локальное.

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

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

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

     
     
  • 6.403, yet another anonymous (?), 21:52, 23/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вы уж как-то аккуратней мемы с такой коннотацией пользуйте, если не хотите про м... большой текст свёрнут, показать
     
  • 2.382, freecoder (?), 20:56, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот читаю ваш отзыв и офигеваю, как же я ухитряюсь на стабильном расте уже 3 года писать в прод и не испытывать проблем? Мистика какая-то..
     

  • 1.214, псевдонимус (?), 00:20, 21/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    >построчно повторяющий

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

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

     
     
  • 2.225, Аноним (-), 02:30, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    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.
    >>>построчно повторяющий
    > И после этого кто-то удивляется травле и глумлением над нарко..оастоманами.

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

     

  • 1.219, Аноним (218), 01:17, 21/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Линус ещё 2 недели назад написал:
    "At least the argument is that Rust _fixes_ some of the C safety
    issues. C++ would not."

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

     
     
  • 2.316, Аноноша (?), 16:26, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Можно почитать рассылку приведенную в посте и увидеть реальные вопросы не в пользу раста. Я пока не вижу восторженных отзывов.
     
     
  • 3.340, Аноним (218), 19:18, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Там предметный технический разговор профессионалов, а тут только байт от неучей.
     
     
  • 4.369, Аноним (-), 11:01, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Годный байт от неучей. Раст - не нужен, Чистый Си - вечен.
     

  • 1.234, Аноним (234), 04:18, 21/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Как можно потом искать ошибки в абсолютно нечитаемой лапше из закорючек? Раст не должен восприниматься как язык, позволяющий писать корректный код
     
     
  • 2.243, OnTheEdge (??), 08:32, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем их искать? Можно их оставить ведь это так удобно что при обращении к разыменованному указателю приложение не падает в сегфолт, а делает ничего. А то что указатель это может быть логической ошибкой решительно ни одного хрустика не интересует.
     

  • 1.261, Аноним (261), 10:17, 21/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Стиль написания жесть..

    >>

      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() отпустят. или в какой-то из функций внутри или по выходу..

     
     
  • 2.317, Аноноша (?), 16:28, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Предположу, что по выходу, ибо _guard никуда не передается.
     
  • 2.346, Ordu (ok), 00:27, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    _guard начинается с подчёркивания, что является заявлением компилятору, что пере... большой текст свёрнут, показать
     
     
  • 3.349, Аноним (347), 01:14, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Какая прекрасная логичность и целостность языка: для указания, что переменная изменятся, надо добавить отдельное слово "мут", а что она не используется - к имени пририсовать подчеркивание.

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

     
     
  • 4.355, Ordu (ok), 02:12, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Угу Очень удобно Подобные штуки часто встречаются в языках с паттерн-матчингом... большой текст свёрнут, показать
     
     
  • 5.385, freecoder (?), 21:18, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то _ и _y - это принципиально разные вещи. Просто подчеркивание - это вообще не имя, а служебное слово языка, которое в паттерне обозначает игнорирование. Это важно понимать, так как в этом случае никакого связывания вообще не происходит, в отличии от варианта _y, где используется уже действительно имя и оно связывается со значением.
     
     
  • 6.387, Ordu (ok), 21:40, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ты говоришь, что это принципиально разные вещи, в чём принципиальность разницы... большой текст свёрнут, показать
     
     
  • 7.421, freecoder (?), 18:24, 25/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Ты говоришь, что это принципиально разные вещи, в чём "принципиальность" разницы?
    > Связывание происходит в обоих случаях, только в первом с безымянной переменной, во
    > второй с переменной имеющей имя. В любом случае значение будет существовать
    > до выхода переменной из области видимости.

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

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

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

     
     
  • 8.422, Ordu (ok), 18:59, 25/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Хм Да, действительно ... текст свёрнут, показать
     
  • 5.398, n00by (ok), 07:23, 23/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > вроде, я не только в расте видел использование значка _ в
    > смысле "п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



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

     
  • 5.414, Аноньимъ (ok), 04:31, 24/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Это ещё в лиспе было в бородатые года когда сишка была бредовой фантазией в головах корпорастов.
     
  • 4.358, Аноним (-), 03:27, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    http www cse unsw edu au billw dictionaries prolog Какой прекрасный парад не... большой текст свёрнут, показать
     
     
  • 5.365, Совершенно другой аноним (?), 09:37, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    как я понимаю претензия была не к переменной "_", а к тому, что к префиксу "_" привязали какой-то функционал/ограничение. Правда я не понял, это так на уровне языка потребовали (в каких-нибудь официальных документах), и я уже не имею права называть свои переменные с символом подчёркивания в начале, или это такая негласная, но широко распространённая договорённость.
     
     
  • 6.386, freecoder (?), 21:23, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Неиспользуемая переменная - это ворнинг компилятора. Несколько раз меня спасал от досадных логических ошибок.
     
  • 5.366, Совершенно другой аноним (?), 09:57, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Впрочем, перечитал Ordu - если действительно компилятор на это подчёркивание смотрит, решение довольно странное, более логично было-бы его подкрашивать через ключевое слово, имхо.
     
     
  • 6.378, Ordu (ok), 14:36, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это могло бы быть логичным в C или в C Поэтому в них есть __attribute__ unus... большой текст свёрнут, показать
     
  • 5.374, Ordu (ok), 13:58, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > http://www.cse.unsw.edu.au/~billw/dictionaries/prolog/

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

     
     
  • 6.377, Аноним (377), 14:28, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >> 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.

     

     ....большая нить свёрнута, показать (17)

  • 1.268, lindevel (?), 10:58, 21/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    350 строчный GPIO драйвер, нарошно искали максимально простой драйвер, вместо того, чтоб написать что-то практичное
    Даже этот драйвер запороли, например "#ifdef CONFIG_PM" просто выпилили, без какой либо замены на раст код
    А это что такое?
                        }
                    }
                }
            }
        }
    }
    6 закрывающих скобок подряд
    Еще глянул html файл, синий текст на черном фоне... очень удобно читать
    А в html коде "<!-- HTML generated using hilite.me -->", что как бы намекает, что растоман не смог даже простейший html написать ручками
     
  • 1.271, Аноним (271), 11:22, 21/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Смузихлебы уже все Unix утилиты (ls, du, etc) на раст переписали, из полезного только ripgrep и то преимущества спорны, зато менее функционален по сравнению с grep. Теперь будут также бесполезно драйверы переписывать. Напомню, свою ос растеры не осилили, течёт как плотина весной.
     
     
  • 2.318, Аноноша (?), 16:31, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    fuchsia? Правда пока в дикой природе не встретишь.
     
     
  • 3.418, protonesso (?), 14:02, 24/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ядро всё ещё на C++
     
     
  • 4.423, Аноноша (?), 21:51, 25/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Ядро всё ещё на C++

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

     

  • 1.321, Аноним (321), 17:02, 21/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Отцы, ну вы блин развели срач …
    Может пусть Торвальдс решит, является ли переписанный код драйвера полезным или нет
     
     
  • 2.325, Урри (ok), 17:34, 21/07/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А Торвальдс - господь бог, что ли?

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

     
     
  • 3.395, СССР (?), 06:54, 23/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    вы своей комьюнити перепишите линукс на раст и будет вам счатье, и пихайте в него хоть что, ок? а продукт и человека который этому продукту жизнь посвятил, не нужно затрагивать , зопли еще не высохли у тебя под носом. комюнити покемонов.
     

  • 1.351, Аноним (351), 01:54, 22/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Rust для ядра Linux, бесполезен и не решает реальных задач
    > Особенностью драйвера является то, что его реализация практически построчно повторяет имеющийся драйвер GPIO на языке Си

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

     
     
  • 2.353, Аноним (352), 02:02, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ошиблись в слове безопастность
     
     
  • 3.356, Аноним (351), 02:51, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да какая там в пень безопасность, один к одному конвертнули сишный код и в unsafe все обернули.
     
  • 2.392, gogo (?), 02:51, 23/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Именно. Линус говорил, что мол ничего полезного не написано. А они не новое написали, а ПЕРЕписали.
     

  • 1.354, Аноним (352), 02:04, 22/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А что там с Radix его совсем забросили или будут что-то доделывать?
     
     
  • 2.371, Аноним (-), 11:09, 22/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не зннаю.
     

  • 1.388, Аноним (388), 21:53, 22/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    от ваших растов, тошнит уже даже больше чем от опеннета.
     
  • 1.393, Растофиля (?), 02:55, 23/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    RUST безоп-а-а-а-сный, ко-ко-ко!!1!


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

     
  • 1.394, СССР (?), 06:50, 23/07/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    ну преобразуйте на java, преобразуйте на pascal? питон, и что? уже противно читать про про всякое дерьмо позволяющее улучшить код при помощи языка. может программисты начнут хоть немного втыкать что они пишут?
     
     
  • 2.399, Ordu (ok), 15:41, 23/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > может программисты начнут хоть немного втыкать что они пишут?

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

     
     
  • 3.405, Аноним (405), 22:56, 23/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Программированию скоро уже век исполнится.

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

     
     
  • 4.406, Аноним (405), 22:57, 23/07/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Но, как показала практика, древние программисты были умнее современных растаманов.
     
  • 3.419, СССР (?), 23:50, 24/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    они есть, просто от той масса новых, которая зашла в отрасль, не требуется разрабатывать структуры данных, оптимизировать. Требуется создавать контент либо решать бизнес-логику котораю уже завтра изменится и потребует переписки уже кода. А сейчас эта масса быдлокодеров считает себя как класс, заявляет свои права на переписку частей ядра (как пример) на модный язык.
     
     
  • 4.420, Ordu (ok), 13:56, 25/07/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > они есть, просто от той масса новых, которая зашла в отрасль, не
    > требуется разрабатывать структуры данных, оптимизировать. Требуется создавать контент
    > либо решать бизнес-логику котораю уже завтра изменится и потребует переписки уже
    > кода. А сейчас эта масса быдлокодеров считает себя как класс, заявляет
    > свои права на переписку частей ядра (как пример) на модный язык.

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

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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