Size: a a a

2021 April 15

AI

Alex Ilizarov in rust_offtopic
Вот ты и халтишь дальнейшее исполнкние
источник

EG

Emmanuel Goldstein in rust_offtopic
У тебя половина корлибы паникует
источник

AI

Alex Ilizarov in rust_offtopic
В драйверах как раз только checked и должен быть
источник

EG

Emmanuel Goldstein in rust_offtopic
У тебя есть неявный эффект «паника», которым покрашена половина функций и который внезапно убивает всю программу
источник

AI

Alex Ilizarov in rust_offtopic
Если драйвер гонится за стабильностью
источник

EG

Emmanuel Goldstein in rust_offtopic
Опционально не вызывая деструкторов
источник

EG

Emmanuel Goldstein in rust_offtopic
Это говнище
источник

TK

Traveller Kolsky in rust_offtopic
А если кто криво напишет драйвер, система ляжет, а Линус против
источник

EG

Emmanuel Goldstein in rust_offtopic
Паникующие/не паникующие функции цветные
источник

AS

Aleksey Sidorov in rust_offtopic
Но так понимаю, что эти checked не юзают какие особенности ассемблера типа флага переполнения, то они явно медленнее unchecked, или нет?
источник

AI

Alex Ilizarov in rust_offtopic
Паники нужны, просто сильно реже чем юзаются
источник

EG

Emmanuel Goldstein in rust_offtopic
Дефолт это не «unchecked», а .checked().unwrap()
источник

SP

Stanislav Popov in rust_offtopic
а мне норм
источник

AS

Aleksey Sidorov in rust_offtopic
Но кстати тогда уж философский вопрос, а что плохого в unwind в ядре? Ну паникнул драйвер, поймал панику через catch_unwind, пошел дальше
источник

EG

Emmanuel Goldstein in rust_offtopic
Здесь дизайнеры раста пошли с какой-то обратной стороны
источник

EG

Emmanuel Goldstein in rust_offtopic
Безопасный (в бытовом смысле) способ сделать что-то сложный и неудобный (.get(), .add_checked()), а способ, который убивает тебе всю программу на не тех данных — простой и эргономичный ([], +)
источник

TK

Traveller Kolsky in rust_offtopic
Короче, я предлагаю заменить panicking на interruptible
источник

EG

Emmanuel Goldstein in rust_offtopic
И было бы полбеды, если бы паника была явным эффектом
источник

EG

Emmanuel Goldstein in rust_offtopic
Но нет
Ты не можешь узнать из сигнатуры функции, что она паникует
источник

AS

Aleksey Sidorov in rust_offtopic
хм... интересно, а если все операторы сделать поверх Result<T, E>, тогда можно было бы уже результат всех операций в конце проверять на ошибочность.
источник