Евгений
Хм
Евгений
Ну лан
Alexander
WUT?
Alexander
он ещё тут?
Alexander
that feature is 30y. old
vladislav
https://t.me/embedded_rs
Даже такой чат есть...
A64m
имеется в виду, первый настоящий язык для серьезных людей, а не игрушки всякие
Alexander
аа
Маjко
that feature is 30y. old
Plan9 wasn't really a language
Alexander
но каналы и подпотоки это не только план9
Маjко
Я знаю, я просто кекаю с того, что план не взлетел и они решили взять и рантайм плана засунуть в ЯП
Маjко
И внезапно взлетело
Евгений
Ээээ?
Евгений
Вы путаете инферно и план9
Маjко
У плана ж очень похожая на го модель, не?
Маjко
Ну и Пайк в числе лидеров обоих проектов
Евгений
Inferno это plan9-inspired язык, написанный на лимбо. go это limbo-inspired язык
Евгений
Взаимосвязь только такая
Маjко
Окей, как скажешь
LexsZero
LexsZero
ну если последовательно хейтить плэн9, то надо в первую очередь выкинуть ведроид
Евгений
Почему ведроид? :О
Маjко
Это не хейт, на план мне по боку -- он не занимает фактически никакого пространства на рынке труда
Евгений
Опять же ведроид это ж инферно-инспайред
LexsZero
Почему ведроид? :О
потому что механизм интентов - это пламбер допиленный для быдла
Евгений
М, ок
LexsZero
а так да, инферно натянутый на глобус^Wпрыщеядро
Евгений
Ну инферно всегда на прыщеядро натягивали
Евгений
Ещё на план9-ядро, но только чисто поржать
LexsZero
что за "рантайм" у плэн9 я не знаю, там сплошное сишкоблядство вокруг 20 сисколлов.
Евгений
40
LexsZero
38
Евгений
Ну, я думаю, что он про то, что в либе план9 были каналы
Loo
Exonum 0.3 — что мы улучшили в новой версии фреймворка для разработки блокчейнов https://habrahabr.ru/post/342970/
Vladimir
5ый прикреп за день
Vladimir
А сова красивая
big
https://blog.rust-lang.org/2017/11/22/Rust-1.22.html
Евгений
Ничего особо интересного
big
раст уже не торт
Aleksey
ну ? для Option весьма не хватало, можно наконец выкинуть try_opt!.
Anonymous
я совсем не понял из-за чего его так долго делали
big
сделать то легко, сложно стабилизировать
Vladimir
я совсем не понял из-за чего его так долго делали
Его сначала привезли, потом вывезли
Vladimir
Его сначала привезли, потом вывезли
И мне кажется когда его завозили первый раз, опшин кастился в резалт
Alexander
а к какому значению Err кастится None?
պլհկ
ничего никуда не кастится
Filipp
ура в расте есть NullPointerException https://play.rust-lang.org/?gist=7c6b0c461a742efcdb02be7afa4a2778&version=nightly
Vladimir
а к какому значению Err кастится None?
Сейчас никуда, опшин пробрасыывпет, а раньше мне кажется кастился, там и трейт был другой
Filipp
ура в расте есть NullPointerException https://play.rust-lang.org/?gist=7c6b0c461a742efcdb02be7afa4a2778&version=nightly
а это про другое, try_trait не стабилизировали еще к сожалению
Dårk
https://blog.rust-lang.org/2017/11/22/Rust-1.22.html
memory layout уже ж приехал. почему не в новой версии?
Alexander
даже в Haskell есть NullPointerException!
big
его смержили недавно
Alexander
а в расте все ещё нету?
Alexander
https://hackage.haskell.org/package/structs-0.1.1/docs/src/Data-Struct-Internal.html#NullPointerException
Vladimir
memory layout уже ж приехал. почему не в новой версии?
потому что изменения в расте должны сначала стабилизироваться, потом попасть в бету, а потом ток в стейбл
big
у меня до сих пор бектрейсы не работают на маке лол (имею ввиду что нету названий файлов итд)
Vladimir
У меня только номеров строк нету
Aleksey
у меня иногда появляются на найтли
big
у меня иногда появляются на найтли
имеешь ввиду от запуска к запуску или от проекта к проекту?
Aleksey
от версии к версии
Vladimir
нужно найти версию на которой работает, и зафиксироваться )
Anton
Цени красивейший код let balancer_sender=unsafe{&mut *(&mut self.balancer_sender as *mut BalancerSender)};//обманываем тупой борров чеккер let instance=self.get_instance_by_connection_id(connection_id)?;//вызывает гетер, который совсем не трогает self.balancer_sender instance.mark_remove(balancer_sender, ...) //используем их оба
Anton
Во, еще бажина раста нашлась. Ну как всегда некорректное поведение borrow checker-а. match self.cash.do_transaction(resource_id, |resource| { match resource.cashed { Some(ref mut cashed_resource) => { let create = self.resource_heap.logical.create_resource(cashed_resource.data.deref()); closure requires unique access to self but self.cash is already borrowed из-за боровинка ОТДЕЛЬНОГО поля self.cash, причем НЕМУТАБЕЛЬНОГО и мутабельного бороввинга ОТДЕЛЬНОГО поля self.resource_heap уже мутабельного ИМХО, именно из-за некорректного, нелогичного поведения борров чеккера, раст никак не может взлететь. Ох, а сделать в расте граф, так вообще застрелиться!
doc
Сделай на unsafe
doc
В чем проблема-то?
doc
Че все так ансейв хкйтят не пойму
Cuno
Ты там на ежедневной основе графы пишешь?
Cuno
borrow checker, конечно, иногда неудобен, но если не писать люто императивный код, то он почти не мешается.
Anton
Потому что логично unsafe нужно использовать, когда мы лезем куда-то в железо или извращаемся, но тут мы вынуждены обманывать borrow checker, который обожает борровить всю структуру в геттерах вида fn get_a_mut(&mut self) -> &mut A и, видимо, еще и closure так себя ведет тоже. может кто-то знает, как сделать такие геттеры более нормальными? copy, clone, assign не предлагать, нужно именно вырывать поле из из структуры. Зачем эти геттеры? А как ты сделаешь в расте что-то вида наследования? заюзаешь определенный трейт для схожих объектов.
big
ну че, кто идет на митап в мск?
Cuno
Можно пример кода?