The OpenNET Project / Index page

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



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

Оглавление

Шестая версия патчей для ядра Linux с поддержкой языка Rust , opennews (ok), 08-Май-22, (0) [смотреть все]

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


23. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  –4 +/
Сообщение от barmaley (??), 08-Май-22, 11:55 
Интересно зачем вообще нужен раст? Для низкоуровневого уже есть Гоу который внушает больше доверия чем сомнительная поделка от неизвестно кого
Ответить | Правка | Наверх | Cообщить модератору

26. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +3 +/
Сообщение от Аноним (17), 08-Май-22, 12:03 
В rust автоматическое управление памятью без garbage collector и его больших накладных расходов. Этим он принципиально отличается от go
Ответить | Правка | Наверх | Cообщить модератору

36. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от bOOster (ok), 08-Май-22, 12:21 
> В rust автоматическое управление памятью без garbage collector и его больших накладных
> расходов. Этим он принципиально отличается от go

Повторяем еще раз это есть и в C++ в умных указателях.

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

39. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Аноним (40), 08-Май-22, 12:27 
Тогда Rust это тот же Groovy для Java, когда уже есть Java. А Go это такой же Kotlin, но от очковых.
Ответить | Правка | Наверх | Cообщить модератору

53. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  –1 +/
Сообщение от bOOster (ok), 08-Май-22, 12:53 
> Тогда Rust это тот же Groovy для Java, когда уже есть Java.
> А Go это такой же Kotlin, но от очковых.

Нет, потому что синтаксис языка Rust - это полное нечитаемое гуано.

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

59. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Аноним (40), 08-Май-22, 13:05 
Да я не про синтаксис. Groovy не изобрели бы зная про другой язык. Это уже не ради чего-тио нужного создается, а чтобы показать новый неполный набор языка высокого уровня в более низком на замену Си. Hare хотя бы шансы имеет, но сдается мне системный софт надо писать на раст только до тех пор пока на Си не будет качественно переписаны драйвера. Штеуд вот втащил кучу денег в разработку драйверов под линукс, но не у всех есть такая возможность. Так что раст подойдет для прототипирования, а не как серебряная пуля. Языки высокого уровня куда сложнее нечитаемого раста.
Ответить | Правка | Наверх | Cообщить модератору

117. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Аноним (4), 08-Май-22, 15:32 
> Повторяем еще раз это есть и в C++ в умных указателях.

Не включены по умолчанию и всё равно полно возможностей получить UB по памяти

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

269. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Аноним (267), 09-Май-22, 10:44 
Хуже С++ нет ничего. Уродливое поделие робкого датчанина.
Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

270. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Аноним (267), 09-Май-22, 10:50 
Давай, умник, расскажи мне про эффективность алокаторов.
Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

358. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Аноним (356), 10-Май-22, 09:59 
> Давай, умник, расскажи мне про эффективность алокаторов.

Самый эффективный аллокатор - это его отсутствие. А попробуй ка оспорь! :)

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

409. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от ммнюмнюмус (?), 14-Май-22, 23:33 
gcc alloca. Как говорят сами доки - _иногда_  позволяет повысить производительность (я не пробовал, поэтому более точных аргументов нет).
Ответить | Правка | Наверх | Cообщить модератору

423. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от n00by (ok), 16-Май-22, 11:49 
alloca() - это одна машинная команда, меняет регистр стека.
Менеджер кучи хранит списки свободных блоков, где выполняет поиск, это занимает некоторое время.
Если в выделенный буфер читается файл (долгая операция), то выигрыша нет.
Ответить | Правка | Наверх | Cообщить модератору

75. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Бывалый смузихлёб (?), 08-Май-22, 13:59 
> вариант библиотеки alloc, избавленный от возможных генераций состояния "panic" при возникновении ошибок

Хорошее управление памятью. И отсутствие накладных расходов интересное

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

80. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Аноним (17), 08-Май-22, 14:12 
Если бы ты хоть раз в жизни написал что-то сложнее hello world, то знал бы, что операция выделения памяти всегда может завершится с ошибкой. Это зависит не от языка, не от программиста, а от состояния компьютера и операционной системы.

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

85. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  –1 +/
Сообщение от Аноним (-), 08-Май-22, 14:36 
>> panic
> ошибка

Как всегда, подмена понятий.

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

94. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +1 +/
Сообщение от bOOster (ok), 08-Май-22, 14:52 
>>> panic
>> ошибка
> Как всегда, подмена понятий.

Молодец, подтвердил что никогда не писал ничего круче Hello World.

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

109. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +1 +/
Сообщение от Аноним (-), 08-Май-22, 15:17 
>>> panic
>> ошибка
> Как всегда, подмена понятий.

Как всегда, вопиющее невежество.


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

152. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от НяшМяш (ok), 08-Май-22, 16:57 
> Как всегда, подмена понятий.

Лучше уж паника, чем профессиональный сишник, который забыл проверить успешность malloc.

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

158. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Аноним (-), 08-Май-22, 17:31 
> паника
> профессиональный сишник

Всё разложил по понятиям.

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

166. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Аноним (-), 08-Май-22, 18:17 
>> Как всегда, подмена понятий.
> Лучше уж паника, чем профессиональный сишник, который забыл проверить успешность malloc.

Где ты тут проф. сишников увидел?
Местные "знатоки" сишечку разве что в универе пару раз нюхали - а так питончик, ЖС и проч.
Иначе были бы в курсе, что такое аллокатор и не пытались бы с умным видом "критиковать" прикручивание кастомного для ядра (который, внезапно, точно так же сделали и для сишечки), как будто для этого нужно было "опять переписать раст", а не что-то типа


extern crate jemallocator;
use jemallocator::Jemalloc;

#[global_allocator]
static GLOBAL: Jemalloc = Jemalloc;

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


Trait std::alloc::GlobalAlloc
...
unsafe fn alloc(&self, layout: Layout) -> *mut u8
Allocate memory as described by the given layout.

Returns a pointer to newly-allocated memory, or null to indicate allocation failure.


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

174. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Аноним (174), 08-Май-22, 18:40 
> тупо вставка "abort"

Ты забыл - "неявная". Самое то для системного языка.

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

179. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Аноним (-), 08-Май-22, 18:55 
>> тупо вставка "abort"

...
>> Result<T, E> is the type used for returning and propagating errors. It is an enum with the variants, Ok(T), representing success and containing a value, and Err(E)
>> pub fn unwrap(self) -> T
>> Returns the contained Ok value, consuming the self value.
>> Panics if the value is an Err, with a panic message provided by the Err’s value.
>> Because this function may panic, its use is generally discouraged. Instead, prefer to use pattern matching and handle the Err case explicitly, or call unwrap_or, unwrap_or_else, or unwrap_or_default.
> Ты забыл - "неявная". Самое то для системного языка.

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



#[stable(feature = "rust1", since = "1.0.0")]
    pub fn unwrap(self) -> T
    where
        E: fmt::Debug,
    {
        match self {
            Ok(t) => t,
            Err(e) => unwrap_failed("called `Result::unwrap()` on an `Err` value", &e),
        }
    }

fn unwrap_failed(msg: &str, error: &dyn fmt::Debug) -> ! {
    panic!("{}: {:?}", msg, error)
}


Неявность прям "изо всех щелей", ага.
Ответить | Правка | Наверх | Cообщить модератору

185. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  –2 +/
Сообщение от Аноним (-), 08-Май-22, 19:09 
Паника кидается только из unwrap.
Ответить | Правка | Наверх | Cообщить модератору

414. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Аноним (-), 15-Май-22, 01:00 
> Паника кидается только из unwrap.

А теперь попробуй повторить выделение памяти и продолжить работать корректно с такой обработкой ощибок.

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

420. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Аноним (420), 15-Май-22, 10:43 
>> unsafe fn alloc(&self, layout: Layout) -> *mut u8
>> Allocate memory as described by the given layout.
>> Returns a pointer to newly-allocated memory, or null to indicate allocation failure.
> А теперь попробуй повторить выделение памяти и продолжить работать корректно с такой обработкой ощибок.

А теперь попробуй вместо фантазий "как оно там на самом деле" иногда читать ветку обсуждения.


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

250. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от wyry (?), 09-Май-22, 02:31 
>> Как всегда, подмена понятий.
> Лучше уж паника, чем профессиональный сишник, который забыл проверить успешность malloc.

Открою тайну, но профессиональные не пользуются malloc на каждом углу и относятся к выделению/освобождению памяти со всей ответственностью и ГОРАЗДО большей, чем разработчики на других языках. Само предложение "профессиональный сишник, который забыл проверить успешность malloc" - это нонсенс. И вообще во множестве проектов на C, если количество памяти (условно) "бесконечно" (а для C даже 512 мб - это ДОХРЕНА), то вся бизнес логика просто крутится в своей закрытой песочнице (часто не превышающей и 8 мб), тем более что она часто в любом случае нужна, чтобы в будущем было проще распараллелить вычисления не опасаясь за целостность данных. То есть проект может заведомо выделить из системы минимально необходимое количество памяти и освободить её непосредственно перед завершением, в то время как user-данные будут детерминированным образом обрабатываться и освобождаться и они уже могут занимать хоть гигабайты и ситуацию, когда память не выделилась потребуется написать только один раз. Проще говоря: профессиональные Сишники УМЕЮТ работать с памятью.
Определённые трудности могут быть, когда в железе скажем 1 мб памяти, но и в этом случае C тем более гораздо продуктивнее Rust будет её расходовать.

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

251. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от НяшМяш (ok), 09-Май-22, 03:06 
> То есть проект может заведомо выделить из системы минимально необходимое количество памяти и освободить её непосредственно перед завершением

Называется arena allocator, можно написать на любом языке, в котором можно явно выделить память. Кто-нибудь, сообщите сишникам, что 21 век уже наступил.

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

256. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Профессиональный сишник (?), 09-Май-22, 08:02 
Ну один-то раз надо проверить память, или я не так понял? И как раз в этом случае памяти будет выделяться довольно много, так что чекнуть надо 100%, ведь так? А что если паника в данном случае, или недостаток памяти?
А вы, как обычно заведено на этом сайте, не улавливаете жирную иронию. Да что ж это такое-то!
Ответить | Правка | К родителю #250 | Наверх | Cообщить модератору

321. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Аноним (321), 09-Май-22, 19:32 
Есть ещё более страшная тайна: 512 байт уже дохрена и malloc нету в принципе. Но и линукса там тоже нету, к счастью.
Ответить | Правка | К родителю #250 | Наверх | Cообщить модератору

359. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  –1 +/
Сообщение от Аноним (356), 10-Май-22, 10:01 
> Лучше уж паника, чем профессиональный сишник, который забыл проверить успешность malloc.

Особенно в линукскернеле, который при этом жестоко сдохнет при нехватке памяти в системе. Что совершенно не нашло понимания Торвальдса. Если вы win95 хотели, с падениями пару раз в день, она так то уже 27 лет доступна.

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

372. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Аноним (-), 10-Май-22, 12:10 
>> Лучше уж паника, чем профессиональный сишник, который забыл проверить успешность malloc.
> Особенно в линукскернеле, который при этом жестоко сдохнет при нехватке памяти в системе.
> линукскернеле
>> malloc

О, очередного "спеца" подвезли.

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

415. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  –1 +/
Сообщение от Аноним (-), 15-Май-22, 01:02 
> О, очередного "спеца" подвезли.

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

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

421. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Аноним (420), 15-Май-22, 10:47 
>> О, очередного "спеца" подвезли.
> Спецов было минимум 2, а у кернела таки есть свои аналоги этого
> самого. Называются чуть иначе, но идея та же самая - и в конце концов памяти может и не хватить. А хотя-бы и внутри ядра.

И че? Че сказать-то хотел? Ветку не читал, сразу начал генерировать "ценное мнение"?
>> вариант библиотеки alloc, избавленный от возможных генераций состояния "panic" при возникновении ошибок
> Хорошее управление памятью. И отсутствие накладных расходов интересное
> ...

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

180. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +1 +/
Сообщение от Смузихлёб (ok), 08-Май-22, 18:56 
> Хорошее управление памятью.

Это как?

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

263. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +1 +/
Сообщение от Аноним (-), 09-Май-22, 09:36 
Как в расте.
Ответить | Правка | Наверх | Cообщить модератору

37. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +4 +/
Сообщение от Аноним (40), 08-Май-22, 12:24 
Го это ничем непримечательная поделка. Ты иди сравни быстродействие языков. Потом глянь на микроконтроллеры, хоть те же "умные" часы с несколькими мегабайтами памяти. Потом как бизнес подумай а нахрена ставить в часы гигабайты памяти вместо батарейки. Так вот там памяти как в старых роутерах, а ведь надо еще интерфейс отображать.
Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

73. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  –1 +/
Сообщение от Бывалый смузихлёб (?), 08-Май-22, 13:54 
Ну как раз под мк поддержки раста практически и нет
Там, как ни странно, очень даже любят сишку
Да и зачем там раст, если всё ключевое там всё равно на сях
Ответить | Правка | Наверх | Cообщить модератору

108. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  –2 +/
Сообщение от Andrewpotam (?), 08-Май-22, 15:16 
С - метрвый язык как ни крути. Пока мертвечину еще не закопали к сожалению.
Ответить | Правка | Наверх | Cообщить модератору

147. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от nvidiaamd (?), 08-Май-22, 16:51 
Пруфы будут или как всегда?
Ответить | Правка | Наверх | Cообщить модератору

163. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от wyry (?), 08-Май-22, 18:11 
Ага, все библиотеки по сей день пишут на чистом C (которые кстати легко адаптируются и под Rust при желании), мёртвый язык. Я уж молчу о нишевых решениях.
Ответить | Правка | К родителю #108 | Наверх | Cообщить модератору

153. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от НяшМяш (ok), 08-Май-22, 17:00 
> низкоуровневого уже есть Гоу

Настолько низкоуровневого, что в нём даже нельзя однозначно понять, когда string(bytes) скопирует байты, а когда нет? А замечательные nil это вообще песня. Или, например, нельзя дважды вызывать close(channel), а то будет паника. Никогда не думал что такое скажу, но даже JS лучше гошки.

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

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

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




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

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