Forwarded from Kirill Kuzminykh
@vlad20012 Подскажи пожалуйста - у CLion вышло обновиление 2019.3, и в окне с предложением обновиться указано, что плагин Rust не совместим с новым CLion. Это правда и лучше пока не обновлять CLion?
Forwarded from ọzkriff
https://t.iss.one/rustlang_ru/257149 мне плагины вручную удалить и заново поставить потребовалось
Telegram
Andrey @ozkriff Lesnikov in Rust — русскоговорящее сообщество
@vlad20012 у меня тут идея до 2019.3 обовилась и растоплагину поплохело:
Plugin Error
Plugin "Toml" is incompatible (target build range is 181 to 192.*).
Plugin "Rust" requires disabled "Toml".
поиск по issue пока не объяснил как себя вести надо
Plugin Error
Plugin "Toml" is incompatible (target build range is 181 to 192.*).
Plugin "Rust" requires disabled "Toml".
поиск по issue пока не объяснил как себя вести надо
Forwarded from Андрей Власов
Forwarded from Aleksandr Vershilov
Screenshot 2019-12-02 at 14.19.59.png
89.5 KB
Iceland Jack не любит, когда его ретвитят
Forwarded from A64m AL256m qn<cores> I0
"никто не любит, когда всякие нерды оскорбляют то, во что инвестировал много времени"
Forwarded from Слава
@rynok_shkurr
Какой прекрасный, восхитительный канал. Читаешь и понимаешь, что программистам платят мало.
Какой прекрасный, восхитительный канал. Читаешь и понимаешь, что программистам платят мало.
Forwarded from Αλεχ Zhukovsky
"вторые сутки гасится в карелии"/"её модель прямая"/"гоняет на низкобюджетные темы как модель"/...
Что это за язык? Я не понимаю ни слова
Что это за язык? Я не понимаю ни слова
Forwarded from Αλεχ Zhukovsky
def stateMonad[S]: Monad[State[S, ?]] = {
type StateS[A] = State[S, A]
new Monad[StateS] {
override def unit[A](a: => A): StateS[A] =
State(s => (a, s))
override def flatMap[A, B](f: StateS[A])(g: A => StateS[B]): StateS[B] =
State[S, B](
s1 => {
val (a, s2) = f.run(s1)
g(a).run(s2)
}
)
}
}Forwarded from Αλεχ Zhukovsky
Forwarded from Dmitry Rodionov
К проблеме консистентности в распределенных системах отношение имеет, чаще всего используется для выбора лидера (текущего master) с учетом подводных камней в виде отвала ноды и/или network partition. Возможно вас также заинтересует такая штука как CRDT, они используются в некоторых хранилищах (например Riak) и вроде попадались упоминания, что и в akka они тоже используются. Есть способы организовать транзакции между разными системами (в вашем случае рсубд и redis) почитать про это можно например тут. Eсть еще вариант который может вас заинтересовать: читать лог транзакций из субд и записывать данные в кеш (возможно для этого вы используете redis), это позволит видеть в кеше согласованные данные. Прошу поправить знающих коллег если в чем-то неточно выразился
Forwarded from Andrew Demonov
Hi Ryan Levick here. Microsoft is not moving away from Rust. Verona is a research project to explore different memory safety models for systems programming. Verona is in part inspired by Rust (as well as pony and C#). It is not a fork of Rust or meant as a Rust replacement. It’s very early days in Verona’s development and hard to say what it’s future will be. The hope is to learn from Rust and if possible contribute back learnings into the language. This isn’t a zero sum game. The talk linked to in the CDNet article should hopefully clarify things. That article was very misleading.
https://www.reddit.com/r/rust/comments/e5kjyr/more_info_on_micrsoft_moving_away_from_rust/
https://www.reddit.com/r/rust/comments/e5kjyr/more_info_on_micrsoft_moving_away_from_rust/
reddit
More info on micrsoft moving away from rust?
So I saw [this talk](https://youtu.be/qCB19DRw_60) from Ryan Levick working for microsoft and the challenges they face adopting rust. It sounded...
Forwarded from A64m AL256m qn<cores> I0
ну и это не будет нормальное ио, потому что ни промптнесс в случае эксепшеностраданий, ни отсутвие материализации не гарантируется.
жирные стримы типа пайпов и кондуитов тоже ниче это не гарантируют, да еще и адово тормозят по сравнению с лазиио
ио на фолдле из туртла гарантирует промптнесс и минимальный мемори футпринт, но нету раннего выхода
стримли не материализуется, но из-за этого тормозить асимптотически может и т.д.
все в той или иной степени ущербное и часто вообще противоречащее тому, что от стримов ожидается и требуется
жирные стримы типа пайпов и кондуитов тоже ниче это не гарантируют, да еще и адово тормозят по сравнению с лазиио
ио на фолдле из туртла гарантирует промптнесс и минимальный мемори футпринт, но нету раннего выхода
стримли не материализуется, но из-за этого тормозить асимптотически может и т.д.
все в той или иной степени ущербное и часто вообще противоречащее тому, что от стримов ожидается и требуется
Forwarded from Αλεχ Zhukovsky
то что адрес лямбды является её типом имхо тоже ошибка. Из-за этого куча ФП паттернов неприменима, и все функции принимающие другие функции становятся генериками и выглядят как говно. Возможно это дает какие-то оптимизцаии возможными, но лучше бы рерайтер ллвма более умный в еще один проход добавили
Кто тебе сказал что адрес лямбды является ее типом?
Адрес лямбды (функции) известен только ллвм
|| 10 и || 20 имеют разный тип
и правильно
И? Адрес функции то тут при чем?
короче то что у лямбд уникальный тип это нифига не удобно
сделали бы структуру Fn(A) -> B
и все функци одной сигнатуры были бы этой структурой
Нормально. Если описывать тип целиком, это приведет к комбинаторному взрыву.
Растокомпилятор и так не очень быстрый
я к тому, что вещи if foo { move || x } else { || 20 } не должны требовать обмазывания either'ами
Ну конкретно это и не требует)
fxd
Не-а, лямбда, которая ничего не захватывает, кастится в обычный fn-тип
ну так она x захватывает
А, увидел, да
Ну вроде был пропозал автоматически герерировать енам в таких случаях
Процедурный макрос для этого всяко есть)
ну он помер вроде. Макрос чел сделал но он очень ненадежно работал, и наглядно показал что без полноценной поддержки компилятора это сделать невозможно
Да, там типы надо знать
ну из вещей которые прям поломаны вроде все на самом деле. Остальное сырость и недостаток фичей типа const fn
ArrayWithAtMost32Elements можно отнести правда еще к костылям)
Ну, имхо, честно, не самая большая проблема. Там где на перформанс похуй -- велкам ту боксед трейт обджектс
Там где не похуй -- Either
Есть даже отличный крейт
ну ок
Адрес лямбды (функции) известен только ллвм
|| 10 и || 20 имеют разный тип
и правильно
И? Адрес функции то тут при чем?
короче то что у лямбд уникальный тип это нифига не удобно
сделали бы структуру Fn(A) -> B
и все функци одной сигнатуры были бы этой структурой
Нормально. Если описывать тип целиком, это приведет к комбинаторному взрыву.
Растокомпилятор и так не очень быстрый
я к тому, что вещи if foo { move || x } else { || 20 } не должны требовать обмазывания either'ами
Ну конкретно это и не требует)
fxd
Не-а, лямбда, которая ничего не захватывает, кастится в обычный fn-тип
ну так она x захватывает
А, увидел, да
Ну вроде был пропозал автоматически герерировать енам в таких случаях
Процедурный макрос для этого всяко есть)
ну он помер вроде. Макрос чел сделал но он очень ненадежно работал, и наглядно показал что без полноценной поддержки компилятора это сделать невозможно
Да, там типы надо знать
ну из вещей которые прям поломаны вроде все на самом деле. Остальное сырость и недостаток фичей типа const fn
ArrayWithAtMost32Elements можно отнести правда еще к костылям)
Ну, имхо, честно, не самая большая проблема. Там где на перформанс похуй -- велкам ту боксед трейт обджектс
Там где не похуй -- Either
Есть даже отличный крейт
ну ок
Forwarded from Kirill Zaborsky
ну как тебе сказать, у нас все ходы записаны - https://github.com/NixOS/nix/pull/2748
GitHub
Make nix/unpack-channel.nix a builtin builder by edolstra · Pull Request #2748 · NixOS/nix
This rewrites the builder of <nix/unpack-channel.nix> in C++ and Rust. Previously the builder was a shell script. Since this was the only builder that was still a shell script, this a...