|
|
|
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 +/– |
Михаил, вы такими вопросами разрушаете радужный мир розовых пони растоманов! Они привыкли, что за них Гниль думает, самим нынче думать не в моде, некогда...
| |
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.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++);
| |
|
|
9.328, Урри (ok), 17:37, 21/07/2021 [^] [^^] [^^^] [ответить] | +/– | Да Например, можно глянуть http mim update uu se manuals layered pdp11c3 pdf ... текст свёрнут, показать | |
|
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 [^] [^^] [^^^] [ответить] | +/– | А в целом, придирка к неопределенному порядку вычислений выражений сама по себе ... текст свёрнут, показать | |
|
|
12.373, Кир (?), 13:47, 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. Я где-то ошибаюсь?
| |
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х это уже давно делают.
| |
|
|
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 +/– | Растоманчик не видит разницу между конкретной сторонней библиотекой и всеми друг... текст свёрнут, показать | |
|
|
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 года назад было просто местные экспертусы - не умеют в разра... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
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, он всего лишь ловил известные на тот момент ядрёные руткиты для Виндос (включая недетектируемые альтернативами). Написан как раз на "другом языке", на котором тогда нельзя было писать драйвера, да ещё и с использованием стандартной библиотеки, которая в ядре не работала. И Билл Гейтса никто джва года не спрашивал.
| |
|
|
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 +/– |
Посмотрел бы я на тех людей, которые умеют писать драйверы на Си, но при этом хотят писать драйверы на Расте.
| |
|
|
|
|
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 лет не научились писать на С++.
| |
|
|
7.19, Аноним (15), 16:13, 20/07/2021 [^] [^^] [^^^] [ответить]
| +2 +/– |
Думаю да ...
но даже там можно писать хорошо, так что проблема скорее всего в руках и голове )
| |
|
8.27, Rev (?), 16:30, 20/07/2021 [^] [^^] [^^^] [ответить] | +5 +/– | Писать хорошо можно на чём угодно, только статистика говорит о том, что никто на... текст свёрнут, показать | |
|
9.347, Аноним (347), 00:47, 22/07/2021 [^] [^^] [^^^] [ответить] | –2 +/– | Компилятор должен компилировать то, что дадут А анализировать должен анализатор... текст свёрнут, показать | |
|
|
7.59, Аноним (2), 17:16, 20/07/2021 [^] [^^] [^^^] [ответить]
| +2 +/– |
C++17 в среднем.
Да даже в C++20 отовсюду видны уши C, нет модулей (стабильно во всех компиляторах), нет сети в стл, нет дефолт пакетного менеджера, нет дефолт системы сборки (cmake лучший, но синтаксис...), нет нормальной де/сериализации структур/классов без костылей, нет дефолт стайл гайдов (каждый лепит как придумал), да много чего нет.
Морально устаревшее нечто с 100% unsafe кодом, тонной UB, серией крэшей, которое уже ничего не спасет.
Не говорю, что в Расте прям всё есть, но с вышеперечисленным всё ок. А это уже львиная для воркфлоу.
И падал у меня ровно один раз. Когда неправильно из C данные передал :)
| |
|
8.186, Урри (ok), 23:00, 20/07/2021 [^] [^^] [^^^] [ответить] | +1 +/– | Какой отбордый бред Смузихлеб, это все десятки лет есть в библиотеках В мире е... большой текст свёрнут, показать | |
|
|
|
|
|
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.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 [^] [^^] [^^^] [ответить]
| +/– |
Тот редкий случай, когда Шигорин авторитетно заявляет и прав.
| |
|
|
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 [^] [^^] [^^^] [ответить] | +/– | А я для встраиваемых устройств пишу А тонны готовых работающих библиотек на си,... большой текст свёрнут, показать | |
|
|
|
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 +/– |
Довольно наглядно сравнивать, почему синтаксис Растп делает код приятнее. Думаю, это основная цель.
| |
|
|
|
5.94, CGo_one_love (?), 17:53, 20/07/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
Так женись на нём. Наверно заместили естественный объект красоты и малой ширины на искусственный.
| |
5.143, danonimous (?), 20:54, 20/07/2021 [^] [^^] [^^^] [ответить]
| +4 +/– |
Они вероломно использовали одну хитрость, чтобы код на rust занимал меньше строк - не переносили скобки на новую строку :)
| |
|
6.370, Аноним (370), 11:02, 22/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Вот чем go не зашёл - требование открывающую скобку фигачить в конце строки и никак иначе.
| |
|
|
|
|
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 будет теперь менее стабилен.
| |
|
|
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 с иными целями посчитать за что-то мегаважное и до* на пустом месте
| |
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 +/– |
Синтаксис не проблема, тем более он не так сильно отличается от си. Плюс на том же лиспе люди как-то писали и выжили.
| |
|
|
4.410, Аноньимъ (ok), 03:56, 24/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Выжили, родили сыновей, внуков и правнуков. И теперь передают правнукам искусство лиспа, оружие для более цивилизованного будущего века.
| |
|
3.212, Аноним (212), 23:58, 20/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
У lisp синтаксис элементарный, он весь на основе sexp, в отличии от мешанины в rust.
| |
|
2.24, Rev (?), 16:27, 20/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Просто не используйте дженерики и ссылки с временами жизни ;)
| |
|
|
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 +/– |
>На С можно написать абсолютно любой код
Громкое заявление, покажи верификатор.
| |
|
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 [^] [^^] [^^^] [ответить]
| +/– |
Нет, там выбраны очень дурацкие символы и конструкции для выражения смысла.
| |
|
2.82, НяшМяш (ok), 17:36, 20/07/2021 [^] [^^] [^^^] [ответить]
| –4 +/– |
А что в нём вырвиглазного? Всё такое же как и везде, плюс пара своих специфических плюшек типа времени жизни. Как минимум куда приятнее современных плюсов, в которых реально непонятно что происходит.
| |
|
|
4.189, НяшМяш (ok), 23:07, 20/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Естественно, раст больше на жеес\теес похож, чем плюсы ). Тупо на нём легче писать.
| |
|
|
|
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 вообще нет классов и... большой текст свёрнут, показать | |
|
|
|
|
|
|
|
2.408, Аноньимъ (ok), 03:53, 24/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Оно синтаксически сиподобное, или скорее сипипи подобное.
Что конечно ужасно, но видимо время забыть этот жуткий пережиток прошлого навязанный корпорастами ещё не пришло.
| |
|
|
2.85, НяшМяш (ok), 17:37, 20/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Панику может вызвать только явный unwrap без предварительной проверки.
| |
|
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ать раком за бортом прогресса!
| |
4.45, Аноним (45), 16:58, 20/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Так переходи на вантуз. Разве что только JIT из всего списка останется.
| |
4.95, Аноним (370), 17:54, 20/07/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
Go вроде и ничего, но стандартная библиотека и сплайсы всё жедание осваивать его отбили. Переписал пару утилит дата-конвертеров с питона на го и больше не трогал
| |
|
|
6.278, Аноним (278), 13:11, 21/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
При чем тут Го? Не нравятся импорты, можно писать самому на чём угодно.
| |
|
5.216, Аноноша (?), 00:22, 21/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
> но стандартная библиотека всё жедание осваивать его отбили
Что с ней не так?
| |
|
|
|
|
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.291, Аноним (-), 14:08, 21/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
>> Колибря
> ... или там bootloader хоть что-то говорят?
Похоже, что мне - больше чем вам, "дяденька". Работающих агрузчиков для x86 на чистом асме я видел (и писал). А вот наоборот, на хваленой "чистой сишечке", что-то туговато с ними.
Так что кто тут занимается перепевом басни
> PS: очередная перепевка басни "Свинья и Дуб", ага.
еще большой вопрос.
| |
|
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 интернете.
| |
|
|
8.304, Аноним (-), 15:03, 21/07/2021 [^] [^^] [^^^] [ответить] | +/– | Угу, и вот так - у вас все с Сразу бы ссылку на линкс дали, что ли Я кстат... большой текст свёрнут, показать | |
|
|
|
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 +/– | Т е по существу возразить нечего и ты сделал вид, что не заметил запятую в пере... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
|
3.91, Аноним (90), 17:47, 20/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
>Или у тебя руки способны писать только комментарии в интернете?
На некоторых грязных сайтах есть видео отрицающее это
| |
|
|
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 +/– |
Надо понимать какие цели у лидера проекта. Например, можно было бы вместе с немцами сотрудничать в годы ВОВ - это выгодно по вашему?
| |
|
|
|
|
|
2.69, Аноним (8), 17:23, 20/07/2021 [^] [^^] [^^^] [ответить]
| +4 +/– |
Ним вообще зеро, даже без компилятора и никогда не выстрелит.
Запомните этот твит!
| |
|
3.368, Аноним (30), 10:29, 22/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Если речь идет о трансляции в машинный код, так для это Nim пользует компилятор C/C++.
Зачем изобретать Nim'у велосипеды и привязка к конкретной платформе?
| |
|
|
|
|
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 +/– |
А ты хоть так сможешь сделать?
Очевидно, что там иные цели, а не просто сделать драйвер)
| |
|
|
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 +/– |
Ты понимаешь как пишется софт?! Проекция в чужой синтаксис не делает программу родной и показать оно не может ничего, кроме говнокодинга
| |
|
|
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
Не твое это.
| |
|
|
|
|
|
|
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.177, Аноним (122), 22:23, 20/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Не, сишечка не падает. Просто бажина из-за переполнения буфера 15 лет живет в ядре и позволяет получить рут. А надежно и ничего не падает.
| |
|
|
|
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 [^] [^^] [^^^] [ответить]
| +/– |
Код-то в основном про инициализацию, но именно этот неделимый на более мелкие куски блок кода, над результатом которого выполняется оператор ?, теоретически способен вернуть какую-нибудь информацию об ошибке при аллокации.
| |
|
|
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.
| |
|
|
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 +/– | Ваша ссылка вывалила мне кучу рекламы и предложила купить какие-то курсы, а если... большой текст свёрнут, показать | |
|
4.232, Ordu (ok), 04:12, 21/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
calloc не инициализирует, а обнуляет. Разницу объяснять надо?
| |
|
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(), это защита от переполнения при умножении числа элементов на размер элемента.
| |
|
|
|
|
|
|
3.84, CGo_one_love (?), 17:37, 20/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Т.е. ты оценил его по факту написания на Rust, т.к. функционал то один и тот же! Придумали для выпедрёжа этот синтаксис, а не для решения задач? Просто субкультура, какими были панки, готы, эмо... где они сейчас. Очередная иллюзия нового и надежд на избавление от проблем.
| |
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 [^] [^^] [^^^] [ответить]
| +/– |
Вот автор на С оставил автограф, а как же растоман? Боится ручки испачкать? Потом ведь за свю жизнь не отмоется.
| |
|
1.77, CGo_one_love (?), 17:29, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Посмотрел сравнение. Синтаксис реально дичь. Я вижу в этом только желание выделиться, мол смотрите, сколько закорючек в одной строке делают магию (чем-то Perl напоминает, но у него ниша подходящая). Эти :: ? (()), где на Си простые человеческие строки - жесть. В таких конструкциях шансов больше накосячить уже в плане опечаток и невнимательности. Примерно как стих без рифмы, работает, но читается трудно. Даже JS лучше читается.
Вот пример - Го, просто взяли и сделали легкий текст, который в то же время очень похож на Си, и даже легче, чем Си в плане синтаксиса, и возможностей при этом сделали больше, в т.ч. выход за пределы, сборщики, структуры с методами, и прочие паники, и без ООП. Даже без знания языка понятно, что в коде происходит. Но Го не подходит для системного уровня, почему нельзя сделать язык аналогичный для системного - а потому что уже есть Си.
| |
|
|
|
|
5.296, Аноним (280), 14:23, 21/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Наши суды не интересует, как там оно у них пишется, звучит-то как у нацистов.
| |
|
|
|
2.148, proninyaroslav (ok), 21:06, 20/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Так раст это идейный продолжитель C++, но никак не Си. Ни в плане абстракций, ни в плане синтаксиса. Мешанины в плюсах не меньше, чем в расте.
| |
|
3.205, Урри (ok), 23:31, 20/07/2021 [^] [^^] [^^^] [ответить]
| –2 +/– |
Меньше. С++ вполне логичный в плане синтаксиса и строгий. Раст же постоянно перестраивают, потому что то там то там что-то не вяжется.
| |
|
4.253, proninyaroslav (ok), 09:16, 21/07/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Меньше. С++ вполне логичный в плане синтаксиса и строгий. Раст же постоянно
> перестраивают, потому что то там то там что-то не вяжется.
Кхм, но ведь синтаксически и семантически несовместимых версий раста только две - 2015 и 2018 версии.
| |
|
|
|
|
4.306, Аноним (303), 15:30, 21/07/2021 [^] [^^] [^^^] [ответить]
| +3 +/– |
> A language like C solves problems by writing more C code
То есть он признаёт, что для решения задач на C надо написать тонну бойлерплейта, и при этом C всё ещё единственный самый лучший незаменимый язык? Шигорин, ты...
| |
|
|
|
|
2.89, Аноним (-), 17:44, 20/07/2021 [^] [^^] [^^^] [ответить]
| –3 +/– |
> Опять что-то переписали?
Опять устроили в комментах перепись читающих заголовки.
| |
2.100, Аноним (140), 18:04, 20/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Пытаются показать что могут, но до сих пор не могут внятно сказать зачем.
| |
|
1.103, Аноним (103), 18:06, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
https://www.opennet.dev/opennews/art.shtml?num=54970
> Ещё одной проблемой стали попытки использования вычислений с плавающей запятой или 128-битными типами, что не является допустимым для таких окружений, как ядро Linux. Это оказалось более серьёзной проблемой, так как в данный момент базовая (core) библиотека Rust неделима и представляет собой один большой blob - в ней нет возможности запросить только некоторые из возможностей, предотвратив использование той или иной проблемной функциональности. Решение проблемы может потребовать внесения изменений в компиляторе rust и библиотеки, при том, что на данный момент у команды ещё нет стратегии, как реализовать модульность библиотек языка.
куда интересней как они вот это будут решать
| |
|
2.172, Аноним (208), 22:06, 20/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Хехехе. Мне нравится как мэйинтейнеры ядра одним ленивым взглядом находят труднорешаемые проблемы для хипстеров.
| |
|
1.105, Аноним (105), 18:09, 20/07/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Zig модный молодёжный, простой приятный, великий китайский C заменитель язык Xi кнопка УДАР!
| |
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.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 посвятил "абсолютно необходимым примитивам", но не назвал ни одного... Или примитивы твои слишком известны, чтобы ты их называл?)
| |
|
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 дело. Просто очередной выход за границы буфера, дело-то житейское.
| |
|
|
|
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 [^] [^^] [^^^] [ответить]
| +/– |
Там предметный технический разговор профессионалов, а тут только байт от неучей.
| |
|
|
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.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 - то не скомпилируется.
| |
|
|
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... большой текст свёрнут, показать | |
|
|
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. | |
|
|
|
|
|
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. Теперь будут также бесполезно драйверы переписывать. Напомню, свою ос растеры не осилили, течёт как плотина весной.
| |
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 на языке Си
Они решили наглядно продемонстрировать бесполезность?
| |
|
|
3.356, Аноним (351), 02:51, 22/07/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Да какая там в пень безопасность, один к одному конвертнули сишный код и в unsafe все обернули.
| |
|
2.392, gogo (?), 02:51, 23/07/2021 [^] [^^] [^^^] [ответить]
| +/– |
Именно. Линус говорил, что мол ничего полезного не написано. А они не новое написали, а ПЕРЕписали.
| |
|
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 [^] [^^] [^^^] [ответить]
| +/– |
> они есть, просто от той масса новых, которая зашла в отрасль, не
> требуется разрабатывать структуры данных, оптимизировать. Требуется создавать контент
> либо решать бизнес-логику котораю уже завтра изменится и потребует переписки уже
> кода. А сейчас эта масса быдлокодеров считает себя как класс, заявляет
> свои права на переписку частей ядра (как пример) на модный язык.
Какая у тебя замечательно простая картинка мира. Хорошо с такой жить, мозги вообще напрягать не надо.
| |
|
|
|
|