Size: a a a

2020 August 06

D

Denis in Rust Async
Mikail Bagishov
Просто компилятор глуповат
угу, я правда обычно такое решаю разделением async-контекстов
источник

A

Apachee in Rust Async
Mikail Bagishov
Просто компилятор глуповат
а что звучит как issue rust-lang/rust
источник

MB

Mikail Bagishov in Rust Async
Apachee
а что звучит как issue rust-lang/rust
по-моему уже давно заведена.
источник

MB

Mikail Bagishov in Rust Async
Наверняка там есть какие-то объективные затыки.
источник

MB

Mikail Bagishov in Rust Async
Например в общем случае компилятор не имеет право переместить вызов деструктора из конца функции/блока до точки последнего использования
источник

D

Denis in Rust Async
в общем надо явно ограничивать скоуп жизни гарда, чтобы чудо точно произошло )
источник

A

Apachee in Rust Async
странно, что drop вообще никакой эффект не оказал тут
источник

D

Denis in Rust Async
да просто генераторы на коленке сделаны
источник

D

Denis in Rust Async
источник

MB

Mikail Bagishov in Rust Async
так с размером вроде еще сложнее.
Чтобы находить ненужные переменные, нужен MIR. Чтобы построить MIR, нужно вывести типы. А при вычислении типов могут всплыть (ну может не сейчас а в будущем) вещи типа [u8; std::mem::size_of::<T>()].
источник

D

Denis in Rust Async
ну дык оно и не Send, потому что переменная уже не нужна, но попала в поле генератора, разве нет?
источник

A

Apachee in Rust Async
Apachee
А что случится, если Future начнет поллиться, а во время полла будет вызов Waker'а, хотя Future с большой вероятностью вернет Poll::Ready?
хм, а ведь это может случиться в примере токио
источник

A

Apachee in Rust Async
Apachee
хм, а ведь это может случиться в примере токио
финальная версия Delay с when равным текущему времени сразу вернет Poll::Ready(...), хотя будет запущен поток, который вызовет Wake еще раз
источник
2020 August 08

G

George in Rust Async
Объясните пожалуйста текущее состояние асинронных райнтаймов вкратце
Из того что мне удалось понять по сообщеиям в трёх чатах: async_std фигня какая-то и в tokio всё лучше, а smol вообще мем какой-то непонятый для меня
источник

K

Kitsu in Rust Async
George
Объясните пожалуйста текущее состояние асинронных райнтаймов вкратце
Из того что мне удалось понять по сообщеиям в трёх чатах: async_std фигня какая-то и в tokio всё лучше, а smol вообще мем какой-то непонятый для меня
юзай токио и будешь счастлив
источник

G

George in Rust Async
Я сейчас пишу на токио, но интересно узнать об альтернативах, ибо недавно я тут читал, что асинхронный раст далеко не "runtime-agnostic" и надо думать подо что делать
источник

С

Сергей in Rust Async
Они все норм, просто async-std ворвался в тихое болото с одним только токио и разворошил немного. В нём из проблем пока только то, что они не боятся сломать обратную совместимость в патч версиях, хоть и не должны. Ну и в целом в качестве разработки немношк есть сомнения. smol - сам по себе, он чисто рантайм, а не комбайны, как токио и async-std. async-std вообще в последней версии переходит на smol
источник

G

George in Rust Async
Сергей
Они все норм, просто async-std ворвался в тихое болото с одним только токио и разворошил немного. В нём из проблем пока только то, что они не боятся сломать обратную совместимость в патч версиях, хоть и не должны. Ну и в целом в качестве разработки немношк есть сомнения. smol - сам по себе, он чисто рантайм, а не комбайны, как токио и async-std. async-std вообще в последней версии переходит на smol
Ну вот я и не понял, что тут происходит. async_std переходит на smol, но писали что там под капотом серьёзные проблемы с проивзодительностью
получается, этот "комбайн" отказался от своего рантайма в пользу smol, а там всё не так радужно?
источник

С

Сергей in Rust Async
Сомневаюсь, что они настолько серьёзные, чтобы ты их заметил при сравнительно небольшом количестве переключений. Сам по себе smol - микроскопический, 200 строк с комментариями. В основном (имхо, конечно же) проблема больше в том, что асинк-стд могут ломать, а токио лучше соблюдает правила релизов и старается пользователей не кошмарить лишний раз.
Если хочешь супер-стабильных сборок прямо сегодня - бери токио.
Лично мне асинк-стд нравится тем, что он всё более грамотно становится огранизован - раздедение на мелкие крейты, наличие mpmc - это из последнего.
источник

С

Сергей in Rust Async
из последнийх новостей про перформанс вот: https://github.com/async-rs/async-std/issues/848
источник