Size: a a a

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

2020 April 17

G

Gymmasssorla in Rust — русскоговорящее сообществo
egoarka
короче, чтобы победить рекурсию, надо юзать bfs или dfs итеративный

https://depth-first.com/articles/2020/02/03/graphs-in-rust-an-introduction-to-petgraph/
+
источник

G

Gymmasssorla in Rust — русскоговорящее сообществo
Это вам не Haskell, чтобы рекурсивно писать
источник

e

egoarka in Rust — русскоговорящее сообществo
я кста не думал, что rust так рекурсию нагибает
даже в скале получше с этим
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Проблема не в рекурсии а в трейт-солвере
источник

AL

Andrey @ozkriff Lesnikov in Rust — русскоговорящее сообществo
источник

K

Kitsu in Rust — русскоговорящее сообществo
Kitsu
на большом проекте паникнул, хех :)
Автор весьма шустро подправил два зарепорченных бага, так что я наконец смог собрать билд своего рабочего проекта: ~70 kloc, ~400 зависимых крейтов (количество Compiling в логе).
Могу сказать весьма впечатляюще, обычный <s>порошок</s> бэк:

cargo b  1275.97s user 81.52s system 1228% cpu 1:50.48 total
cargo b --release  3819.65s user 61.81s system 1523% cpu 4:14.80 total


rustc_codegen_cranelift:

$cg_clif_dir/cargo.sh build  816.68s user 91.97s system 1093% cpu 1:23.08 total
$cg_clif_dir/cargo.sh build --release  1899.30s user 71.95s system 1355% cpu 2:25.38 total


Т.е. кажется для той же сиайки вполне себе удачное применение, правда все еще не собираются некоторые зависимости (для тестов).
источник

lp

lil pep in Rust — русскоговорящее сообществo
оч хорошо
источник

lp

lil pep in Rust — русскоговорящее сообществo
вот теперь интересно бы узнать на сколько просядет debug билд против того же у LLVM
источник

lp

lil pep in Rust — русскоговорящее сообществo
по производительности тоесть
источник

МЛ

Михаил Лёсин in Rust — русскоговорящее сообществo
egoarka
короче, чтобы победить рекурсию, надо юзать bfs или dfs итеративный

https://depth-first.com/articles/2020/02/03/graphs-in-rust-an-introduction-to-petgraph/
спасибо, гляну!
источник

BD

Berkus Decker in Rust — русскоговорящее сообществo
dark pit
более-менее прояснилось.  lib.rs и некоторые файлы видит, а остальные нет.

reqwest использует странные макросы для условной компиляции:

if_hyper! {
   ...
   #[cfg(feature = "blocking")]
   pub mod blocking;
   ...
}
[x] experimental macro expansion?
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
а почему в Bytes/BytesMut все методы паникуют и нет вариантов с Result? Было б приятнее писать .get_u32()? а не check_length(buf, 4)?; .get_u32().
источник

Э

Эрик in Rust — русскоговорящее сообществo
Oleg Andreev
а почему в Bytes/BytesMut все методы паникуют и нет вариантов с Result? Было б приятнее писать .get_u32()? а не check_length(buf, 4)?; .get_u32().
Это где такое?
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
bytes crate
источник

OA

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

Э

Эрик in Rust — русскоговорящее сообществo
Ну, что поделать. Там эта штука не только для слайсов сделана, поэтому не может эффективно узнать длину. Наверное, можно было бы возвращать Option<>, но не возвращает.
источник

Э

Эрик in Rust — русскоговорящее сообществo
А зачем тебе вообще эта фигня? Байты же читать и так проще простого.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Стоп, там же remaining есть. Тогда не знаю, почему паника. Автор крейта не может в нормальный API?
источник

Э

Эрик in Rust — русскоговорящее сообществo
Вообще, я не могу представить ничего кроме &[u8], что могло бы хоть как-то работать с bytes и remaining. Эти две функции сразу вырубают любую возможность использовать куски памяти вместо слайса. То есть, ты посмотри на bytes:
fn bytes(&self) -> &[u8]
Он должен возвращать сраную ссылку! Не Cow, не вектор, а ссылку. Что кроме куска непрервной памяти может вернуть ссылку на непрерывный кусок памяти? Да ничего!
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
ну он же задумывался для того чтоб спрятать лайфтаймы за Rc, иначе пиздецъ
источник