Size: a a a

2021 May 31

ΑZ

Αλεχ Zhukovsky in rust_offtopic
если там 1 инвалид на парттайме че-то крутит на лиспе
источник

NL

Nick Linker in rust_offtopic
Нет, не про data races.
Именно про race conditions.

Например, достаточно сильное условие: при любом распределении квантов времени между потоками поведение программы детерминировано и не меняется.
Это достаточное, но не необходимое условие, его можно ослаблять.
источник

goldstein опять in rust_offtopic
Это недостаточное условие
источник

[

[BRM]White Rabbit in rust_offtopic
Ну, я это условно😄
источник

goldstein опять in rust_offtopic
У тебя есть взаимодействие с базой на другом сервере, и с ним тоже возможен race condition
источник

NL

Nick Linker in rust_offtopic
Что мешает формализовать эффекты точно таким же образом?
источник

goldstein опять in rust_offtopic
Ты можешь формализовать их неверно
У тебя для каждого проекта придётся писать огромный unsafe-кусок описывающий то, как выглядят внешние API
источник

goldstein опять in rust_offtopic
В средней программе на Rust тебе не нужен или почти не нужен unsafe
источник

goldstein опять in rust_offtopic
Тут тебе нужен будет unsafe для любого IO, потому что ты не знаешь, как оно работает в отношении race conditions
источник

goldstein опять in rust_offtopic
Это безумие
источник

NL

Nick Linker in rust_offtopic
Нет, это Спарта! просто требует формализации, только и всего. Алгебраические эффекты — впролне рабочий вариант.
Мы просто разделяем разные походы в IO и на связанных эффектах вводим какое-то отношение зависимости.
Это просто не сделано ни в одном из сколь-нибудь распространённых языков, но можно в принципе.
источник

goldstein опять in rust_offtopic
Тебе на каждый поход в API нужно описывать возможные рейсы между всеми ручками
источник

goldstein опять in rust_offtopic
Это безумие
источник

goldstein опять in rust_offtopic
Язык что-то «гарантирует», когда тебе не нужно писать блок ансейфа каждый раз, когда ты хочешь хоть что-то сделать
источник

NL

Nick Linker in rust_offtopic
Скажи, откуда зависимость между писанием в лог и походом в S3? Наоборот, нужно выделить эффекты, между которыми есть зависимость и всё.
источник

goldstein опять in rust_offtopic
Пока лог не начинает лежать в S3
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
речь скорее про то что тебе нужно описать вещь а-дя "ручку /bar можно дергать после /baz но если дернул /bar то до вызова /bar нельзя дергать /foo"
источник

goldstein опять in rust_offtopic
И, энивей, тогда тебе нужно написать unsafe { между_походом_в_s3_и_записью_в_лог_нет_зависимости() } для каждого IO
источник

DS

Doge Shibu in rust_offtopic
Так это будет написано сторонними либами практически всегда
источник

goldstein опять in rust_offtopic
Нет
Кто ж знает между какими IO есть зависимость конкретно для тебя
источник