The OpenNET Project / Index page

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



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

Оглавление

Релиз языка программирования Rust 2021 (1.56) , opennews (??), 21-Окт-21, (0) [смотреть все]

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


85. "Релиз языка программирования Rust 2021 (1.56) "  +/
Сообщение от Аноним (85), 22-Окт-21, 09:48 
Зато защищает от выход за границы буфера при условии сборки непродакшн версии бинарника. Это ли не безопасность? (нет)
Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

91. "Релиз языка программирования Rust 2021 (1.56) "  –2 +/
Сообщение от Аноним (91), 22-Окт-21, 09:57 
Однажды падение FF показало, что в раст-коде растаманы ошиблись с ручной (!) проверкой индекса массива...
Ответить | Правка | Наверх | Cообщить модератору

104. "Релиз языка программирования Rust 2021 (1.56) "  +/
Сообщение от НяшМяш (ok), 22-Окт-21, 11:02 
Когда у тебя смешанный код на нескольких япах и тебе надо сплошными ансейфами обмазываться - это не удивительно.
Ответить | Правка | Наверх | Cообщить модератору

161. "Релиз языка программирования Rust 2021 (1.56) "  –2 +/
Сообщение от Урри (ok), 22-Окт-21, 13:55 
точнее когда твой суперязык не умеет того, ради чего используется и приходится обмазываться ансейфами и другим кодом.
Ответить | Правка | Наверх | Cообщить модератору

274. "Релиз языка программирования Rust 2021 (1.56) "  +/
Сообщение от ъ (?), 23-Окт-21, 23:03 
> точнее когда твой суперязык не умеет того, ради чего используется

гы-гы, они вроде и не пытаются раст до конца сделать

Я эту санта-барбару с выходом за границу пропустил -- где почитать?


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

277. "Релиз языка программирования Rust 2021 (1.56) "  +/
Сообщение от freecoderemail (ok), 24-Окт-21, 02:58 
ансейф - это тоже раст
Ответить | Правка | К родителю #161 | Наверх | Cообщить модератору

275. "Релиз языка программирования Rust 2021 (1.56) "  +/
Сообщение от ъ (?), 23-Окт-21, 23:06 
> Когда у тебя смешанный код на нескольких япах и тебе надо сплошными
> ансейфами обмазываться - это не удивительно.

а разве раст для какой-то другой ситуации проектировался?

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

95. "Релиз языка программирования Rust 2021 (1.56) "  +1 +/
Сообщение от Аноним (95), 22-Окт-21, 10:23 
Ты хоть сам понял что ты написал? (да)
Ответить | Правка | К родителю #85 | Наверх | Cообщить модератору

108. "Релиз языка программирования Rust 2021 (1.56) "  +1 +/
Сообщение от еуые (?), 22-Окт-21, 11:20 
> Зато защищает от выход за границы буфера при условии сборки непродакшн версии бинарника. Это ли не безопасность?

Выход за пределы буфера проверяется и в release.
Вы перепутали с проверкой арифметические операций.
Но вообще это все просто настройки "release" по умолчанию.
Их можно парой строчек поменять.

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

238. "Релиз языка программирования Rust 2021 (1.56) "  +/
Сообщение от Аноним (238), 22-Окт-21, 22:54 
В реальных программах лучше просто запретить clippy::integer_arithmetic: https://rust-lang.github.io/rust-clippy/master/#integer_arit...

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

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

276. "Релиз языка программирования Rust 2021 (1.56) "  +/
Сообщение от ъ (?), 23-Окт-21, 23:09 
> Потому что паника от численного
> переполнения не сильно лучше, чем неправильно посчитанный результат.

а это все потому что исключения не нужны

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

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

289. "Релиз языка программирования Rust 2021 (1.56) "  +/
Сообщение от Аноним (-), 24-Окт-21, 12:20 
>> Потому что паника от численного переполнения не сильно лучше, чем неправильно посчитанный результат.
>> pub const fn checked_add(self, rhs: u32) -> Option<u32>
>> Checked integer addition. Computes self + rhs, returning None if overflow occurred.
> а это все потому что исключения не нужны
> а исключения не нужны потому что проектировщики раста так сказали, а кто не согласен, тот ...

Да-да, это все потому что питонистов и прочих жабаскрипторов забыли спросить "как правильно".

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

291. "Релиз языка программирования Rust 2021 (1.56) "  +/
Сообщение от AA_suited (ok), 24-Окт-21, 19:07 
>> а это все потому что исключения не нужны
>> а исключения не нужны потому что проектировщики раста так сказали, а кто не согласен, тот ...
> Да-да, это все потому что питонистов и прочих жабаскрипторов забыли спросить "как правильно".

А о существовании ещё и плюсистов, шарпистов, и явистов ты просто не знаешь, или сознательно умалчиваешь?

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

300. "Релиз языка программирования Rust 2021 (1.56) "  +/
Сообщение от Аноним (-), 24-Окт-21, 20:48 
>>> а это все потому что исключения не нужны
>>> а исключения не нужны потому что проектировщики раста так сказали, а кто не согласен, тот ...
>> Да-да, это все потому что питонистов и прочих жабаскрипторов забыли спросить "как правильно".
> А о существовании ещё и плюсистов, шарпистов, и явистов ты просто не знаешь, или сознательно умалчиваешь?

А по теме что-то будет или как обычно - сплошное балабольство?

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

311. "Релиз языка программирования Rust 2021 (1.56) "  +/
Сообщение от AA_suited (ok), 25-Окт-21, 18:36 
> А по теме что-то будет или как обычно - сплошное балабольство?

Протри глаза, или сходи к окулисту, и узри что я сказал по теме.

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

315. "Релиз языка программирования Rust 2021 (1.56) "  +1 +/
Сообщение от Аноним (-), 25-Окт-21, 20:27 
>> А по теме что-то будет или как обычно - сплошное балабольство?
> Протри глаза, или сходи к окулисту, и узри что я сказал по теме.

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

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

318. "Релиз языка программирования Rust 2021 (1.56) "  +/
Сообщение от AA_suited (ok), 26-Окт-21, 03:07 
> и так же скромно пропустив тему "почему исключения лучше явной
> обработки ошибок (и паники в случае забивания на обработку)".

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

И примером как раз является случай, когда надо сложить (а ещё возможно и умножить) много чисел. А в случае переполнения кинуть эксепшен и перескочить на другую ветвь кода, где вычисления пойдут, допустим, с двойной точностью. Затем с четверной. Затем, допустим, с восьмерной, а затем и с неограниченной.

4 исключения на 1 000 000 000 чисел -- это же не такой большой оверхед, правда?  

И ещё один важный момент. Не знаю как щас у х86, но исключение по переполнению целых чисел можно кидать асинхронно на уровне процессора, а не тупо синхронно проверять флаг после каждого сложения. Итаниум кажется так делает, подозреваю что и х86.

Кстати... что по-твоему компилятору легче эффективно векторизовать в 1024-битные (ладно, пока что 512-битные) регистры: код с checked_add или экспешенами?

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

320. "Релиз языка программирования Rust 2021 (1.56) "  +/
Сообщение от Аноним (-), 26-Окт-21, 04:22 
> 4 исключения на 1 000 000 000 чисел -- это же не такой большой оверхед, правда?
> И ещё один важный момент. Не знаю как щас у х86, но
> исключение по переполнению целых чисел можно кидать асинхронно на уровне процессора,
> а не тупо синхронно проверять флаг после каждого сложения. Итаниум кажется
> так делает, подозреваю что и х86.

INTO в режиме x86-64 "invalid", замены - нема. Так что "4 исключения на 1 000 000 000 проверок".

Ну и других факторов (анализ кода/code-flow/верификация) из-за которых отказываются от ислючений, хватает - "гладко было на бумаге, но ...".

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

321. "Релиз языка программирования Rust 2021 (1.56) "  –1 +/
Сообщение от AA_suited (ok), 26-Окт-21, 05:18 
> INTO в режиме x86-64 "invalid", замены - нема.

чё, правда что ли?

> Так что "4 исключения  на 1 000 000 000 проверок".

Да, по прежнему 4, даже если и invalid.

> Ну и других факторов (анализ кода/code-flow/верификация) из-за которых отказываются от
> ислючений, хватает - "гладко было на бумаге, но ...".

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

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

319. "Релиз языка программирования Rust 2021 (1.56) "  +/
Сообщение от AA_suited (ok), 26-Окт-21, 03:10 
> плюсистов (которые обычно как раз и
> представляют себе все "прелести" и оверхед исключений в системном программинге)

Это кривой дизайн с++, а не исключений вообще.

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

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

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




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

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