Size: a a a

Rust — русскоговорящее сообществo

2020 April 09

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
А, ещё хуже.
В дропе происходит паника, её ловит враппер из другой библиотеки и делает std::process::abort()
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Который, в свою очередь, бросает SIGILL
источник

H

Hadji in Rust — русскоговорящее сообществo
Berkus Decker
меня свифт бы вполне устроил - он прост почти как питон, но при этом гораздо суровее типизирован и быстрее на порядки
Да, я думаю, и меня устроит) Лишь бы допилили до вменяемого состояния
источник

BD

Berkus Decker in Rust — русскоговорящее сообществo
Hadji
Да, я думаю, и меня устроит) Лишь бы допилили до вменяемого состояния
жду апдейтов от гугла, да
источник

M

Marat in Rust — русскоговорящее сообществo
Berkus Decker
жду апдейтов от гугла, да
скорее go притащат в свои апдейты, все-таки под язык под их контролем
источник

H

Hadji in Rust — русскоговорящее сообществo
Marat
скорее go притащат в свои апдейты, все-таки под язык под их контролем
Да не. Они ж сами в своем диздоке пишут, почему не взяли Го
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Emmanuel Goldstein
А, ещё хуже.
В дропе происходит паника, её ловит враппер из другой библиотеки и делает std::process::abort()
Если в дропе происходит паника, то рантайм раста сразу абортится. До никаких бибилиотек дело доходить не должно.
https://github.com/rust-lang/rust/blob/master/src/libstd/panicking.rs#L490
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Даже так.
Получить бы ещё бэктрейс этой паники
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
А, я не прав. Нужно три паники подряд. Или я запутался сам.
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Emmanuel Goldstein
Даже так.
Получить бы ещё бэктрейс этой паники
Попробуй запустить под отладчиком, сделав
break rust_panic_with_hook
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Mikail Bagishov
Попробуй запустить под отладчиком, сделав
break rust_panic_with_hook
О, спасибо
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Итак, у меня паникует вот эта функция.
pub fn pop_node(&mut self) -> Link<T> {
   self.length -= 1;
   replace_with_or_abort_and_return(&mut self.head, move |head| {
       (head.clone(), head.map(|node| node.next.clone()).flatten())
   })
}
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Мб переполнение?
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Бесконечная рекурсия? Казалось бы, тогда бы и стек был побольше
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
И panic у меня непосредственно после pop_node
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Не, я про то что ты первой строкой один вычитаешь. Если там уже был 0, то произойдет переполнение
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Хм
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Подожди, переполнение usize вниз это паника?
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Насколько я помню, любые переполнения паникуют в дебаге.
источник