The OpenNET Project / Index page

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



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

Оглавление

Поддержка Rust для ядра Linux столкнулась с критикой Торвальдса, opennews (ok), 15-Апр-21, (0) [смотреть все]

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


257. "Поддержка Rust для ядра Linux столкнулась с критикой Торваль..."  +1 +/
Сообщение от Аноним (257), 15-Апр-21, 14:26 
Так у них тогда клон C получится
Ответить | Правка | Наверх | Cообщить модератору

271. "Поддержка Rust для ядра Linux столкнулась с критикой Торваль..."  +/
Сообщение от uis (ok), 15-Апр-21, 14:46 
Поправка: клон C++. Который уже отклонили.
Ответить | Правка | Наверх | Cообщить модератору

285. "Поддержка Rust для ядра Linux столкнулась с критикой Торваль..."  +3 +/
Сообщение от Аноним (158), 15-Апр-21, 15:07 
C++ из Раста не получится.
Ответить | Правка | Наверх | Cообщить модератору

440. "Поддержка Rust для ядра Linux столкнулась с критикой Торваль..."  +/
Сообщение от Noname (??), 16-Апр-21, 16:39 
Из говна конфету не склепать
Ответить | Правка | Наверх | Cообщить модератору

287. "Поддержка Rust для ядра Linux столкнулась с критикой Торваль..."  –1 +/
Сообщение от Аноним (-), 15-Апр-21, 15:10 
> Так у них тогда клон C получится

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


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

469. "Поддержка Rust для ядра Linux столкнулась с критикой Торваль..."  +/
Сообщение от Аноним (466), 17-Апр-21, 07:35 
> Не получится - для этого им придется убрать макросы, оставив на них
> лишь жалкую пародию. Ну и прибить всякие матчинги, отслеживание времени жизни,
> владение ...

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

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

521. "Поддержка Rust для ядра Linux столкнулась с критикой Торваль..."  +/
Сообщение от Аноним (-), 17-Апр-21, 19:36 
> Покажи как на хрустовых макросах сделать проверку что вон та переменная отдаваемая макросу всегда в диапазоне от 1 до 10 и никак иначе?
> Вроде простая штука.

https://docs.rs/rangetype/0.1.1/rangetype/macro.range.html


/// Create a RangeType and employ static checks on its value.
#[macro_export]
macro_rules! range {
    ($val:expr, $range:expr) => {
        {
            const_assert!($val >= $range.start && $val <= $range.end);
            RangeType::new($val, $range)
        }
    }
}

Если ты решил оспорить тот факт, что нашлепка сбоку в виде тупого text replacement никак не может тягаться с системой, являющейся частью ЯП и имеющей доступ к AST/токенам, то у меня для тебя плохие новости отностительно твоей "квалификации" ...


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

532. "Поддержка Rust для ядра Linux столкнулась с критикой Торваль..."  –1 +/
Сообщение от Аноним (-), 17-Апр-21, 21:51 
Хм, в таком виде это и сишники с compile time assert могут. А без этого ассерта сломать билд макросами сможете? Системщина - о том чтобы уметь черную магию самому, а не полагаться на черные ящики от богов. На сишном препроцессоре можно сделать какой-никакой аналог static assert самому. Проверено .. тусовочкой Торвальдса, внезапно.

> Если ты решил оспорить тот факт, что нашлепка сбоку в виде тупого
> text replacement никак не может тягаться с системой, являющейся частью ЯП

А таки тот text replacement на самом деле - "почти тюринг полный". И вон те господа запилили на нем, внезапно, range check - без требования поддержки static assert канпилером. Вот это суровые системщики, а не мягкотелые вебмакаки - они те кто и реализует любые потребные иллюзии, по мере надобности.

> и имеющей доступ к AST/токенам, то у меня для тебя плохие
> новости отностительно твоей "квалификации" ...

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

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

536. "Поддержка Rust для ядра Linux столкнулась с критикой Торваль..."  +/
Сообщение от Аноним (536), 17-Апр-21, 22:50 
> Хм, в таком виде это и сишники с compile time assert могут.
> А без этого ассерта сломать билд макросами сможете? Системщина - о
> том чтобы уметь черную магию самому, а не полагаться на черные
> ящики от богов. На сишном препроцессоре можно сделать какой-никакой аналог static
> assert самому. Проверено .. тусовочкой Торвальдса, внезапно.

Сколько пафоса о черной магии и ящиках ...
а ничего, что const_assert! - и есть макрос (на что намекает "!")?
https://docs.rs/static_assertions/0.2.5/src/static_assertion...

 Constant expressions can be ensured to have certain properties via this
/// macro If the expression evaluates to `false`, the file will fail to compile.
/// This is synonymous to [`static_assert` in C++][static_assert].
...
#[macro_export]
macro_rules! const_assert {

Плюсанутый static_assert на стеро^W макросах.
Да, "так тоже можно было".
Довольно наглядная демонстрация разницы между полноценными макросами и препроцессорной текстозаменялкой получилась.

> А таки тот text replacement на самом деле - "почти тюринг полный". И вон те господа запилили на нем, внезапно, range check - без требования поддержки static assert канпилером. Вот это суровые системщики, а не мягкотелые вебмакаки - они те кто и реализует любые потребные иллюзии, по мере надобности.

Пафос начинает зашкаливать - при околонулевой конкретике и отношению к теме.

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


>> и имеющей доступ к AST/токенам, то у меня для тебя плохие
>> новости отностительно твоей "квалификации" ...
> С точки зрения квалификации - мне не нравятся черные ящики от богов,
> которые я не могу заимплементить сам. Предпочитаю знать как делать черную
> магию самого жесткого разлива самому, не уповая на "более высокоразвитых" которым

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

Что особенно иронично - мощная макросная система позволяет действовать где-то на уровне комилера при "жонглировании AST", что как раз _уменьшает_ "черноящиковость" и "магию" компилятора, т.к. позволяет многие фичи довешивать в виде макросов.

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

607. "Поддержка Rust для ядра Linux столкнулась с критикой Торваль..."  +/
Сообщение от freecoder_xx (?), 02-Май-21, 22:36 

macro_rules! const_assert {
    ($x:expr $(,)?) => {
        const _: [(); 0 - !{ const ASSERT: bool = $x; ASSERT } as usize] = [];
    };
}

Вот и вся реализация.
Ответить | Правка | К родителю #532 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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