Size: a a a

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

2020 September 03

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
Dollar Føølish
Это всё ещё кооперативная
В какой-то мере. Зависит от определения кооперативности, очевидно.
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
Dollar Føølish
но если есть монады и ду синтакс то эта проблема отпадает - можно использовать явные континуации
смотри, если бы ОС автоматически решала проблему, то в ЯП не нужно было бы переизобретать решения и учить людей ста разным особенностя, и можно было бы больше времени тратить на смысл приложения, а не на переизобретение планировщика задач. А так получается, что ты в каждом ЯП должен отчасти изобрести половину операционки, но при этом весь мир на одном ЯП писать не будет и результирующий бардак тормозит прогресс.
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Dollar Føølish
Это всё ещё кооперативная
Нормальную вытесняющую фиг сделаешь.
Надо либо запретить нативный код, либо запихнуть исполнение программы в виртуальную машину.
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Суть в том что если это встроить в ос то ты не напишешь свой рантайм уже
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
И все будут вынуждены использовать эти гринтреды
источник

AT

Alexander Tchitchigi... in Rust — русскоговорящее сообществo
Oleg Andreev
смотри, если бы ОС автоматически решала проблему, то в ЯП не нужно было бы переизобретать решения и учить людей ста разным особенностя, и можно было бы больше времени тратить на смысл приложения, а не на переизобретение планировщика задач. А так получается, что ты в каждом ЯП должен отчасти изобрести половину операционки, но при этом весь мир на одном ЯП писать не будет и результирующий бардак тормозит прогресс.
13 правило Гринспена в действии. 😂
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Может я не хочу гринтреды а хочу асинки с монадами
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Может у меня стеки память будут жрать
источник

JC

Julian =) Coffee in Rust — русскоговорящее сообществo
А в чем особенность этих самых гринтредов? Память же можно и для обычных тредов выделять сколько хочешь.
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
У гринтреда все равно стек это как минимум страница + Гард пейдж
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Хотя одна из них и виртуальная ))
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Ос должна заниматься своими вещами , щас наоборот академия движется в сторону экзоядер
источник

JC

Julian =) Coffee in Rust — русскоговорящее сообществo
Ну я вот где-то видел новость о том, что гугл хочет m:n прям в ядро Линукса вставить
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
а почему бы и нет - там чего только уже не вставлено
источник

JC

Julian =) Coffee in Rust — русскоговорящее сообществo
)
источник

OA

Oleg Andreev in Rust — русскоговорящее сообществo
полный бдсм
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
Там Гугл это и не академия, он много такого вредного делает
источник

DF

Dollar Føølish in Rust — русскоговорящее сообществo
МС в этом плане куда грамотнее
источник

r

red75prime in Rust — русскоговорящее сообществo
Alexander Tchitchigin
Типа как в Erlang, только "руками", значит. Понятно. 😊
Так-то во всех нативно-компилируемых языках есть эта проблема, что поток может вызывать скедулер только в определённых точках, и не слишком частых (в процессе вызова функций рантайма, понятное дело). Обычно на это закрывают глаза. 😊
Перепроверил. Это - устаревшая информация. Уже добавили некооперативное переключение горутин. Сделали что-то хитрое с сигналами, маркировкой участков кода как безопасных для переключения и вставкой в рантайме трамплинов в стек для небезопасных участков.
источник

P

Pavel in Rust — русскоговорящее сообществo
Oleg Andreev
Есть какая-то фундаментальная причина почему вытесняющие потоки внутри одного процесса не могут быть достаточно легковесными чтоб всякие async/await не нужно было лепить на уровне ЯП? Или это скорее продукт исторических причин и в теории можно все по-другому сделать?
источник