Michael
а rustc умеет c runtime линковать статически?
Сережа
есть musl тулчейны же
Сережа
ты же libc под рантаймом имеешь ввиду?
Michael
под виндой
Michael
про musl знаю
Loo
под виндой
https://devhub.io/repos/emk-rust-musl-builder
Сережа
https://www.reddit.com/r/rust/comments/61pjbp/static_linking_support/
Loo
а ну извини
Loo
не
Loo
хз
Loo
не знаю
Michael
ну так сложились звёзды
Loo
да я понимаю
Loo
сочувствую
Michael
LexsZero
а есть ширусы на русте?
Маjко
Без ансейфа
Sergey
LexsZero
https://www.youtube.com/watch?v=AtaeWm8Am6Y да.
Anonymous
ого
LexsZero
ну теперь хоть в троянах багов не будет
Dmitry
Тк эт самое... новость датирована September 10, 2016
Скорее всего их уже гораздо больше чем 1))
Alex
11 гигов рамы ради картинки
Маjко
Волшебно
Loo
Denis
Господа rustations, кто-нибудь пользовался std::marker::PhantomData? Было бы интересно узнать Ваши сценарии использования. Я вот почитал, но ничего не понял
Denis
https://rustbyexample.com/generics/phantom.html
доня.
почитай про использование фантомных типов в том же хаскеле
доня.
суть та же, просто в Rust оно более громоздко получается
доня.
https://wiki.haskell.org/Phantom_type
պլհկ
https://doc.rust-lang.org/nomicon/phantom-data.html
Denis
@KolesnichenkoDS @notplhk благодарю, почитаю
Anonymous
привет!
ребята, вот есть ситуация:
нужно отдельным тредом запустить демона, для этого использую конструкцию:
thread::spawn(||{
Command::new("ipfs")
.arg("daemon")
.spawn()
.expect("it went wrong")
});
однако, хочется спавнить тред тогда, когда демон реально запустился, а не завершился ошибкой (занят порт, например)
как вариант, можно чёркать порт перед спавном, но это не универсальное решение (могут быть и другие ошибки). Как можно перехватить вывод демона, проверить его и тогда только тред оставлять?
или проще запускать тред, искать отдачу и убивать тред если внутри него ошибка? (кажется не очень логичным вариантом)
Alex
привет!
ребята, вот есть ситуация:
нужно отдельным тредом запустить демона, для этого использую конструкцию:
thread::spawn(||{
Command::new("ipfs")
.arg("daemon")
.spawn()
.expect("it went wrong")
});
однако, хочется спавнить тред тогда, когда демон реально запустился, а не завершился ошибкой (занят порт, например)
как вариант, можно чёркать порт перед спавном, но это не универсальное решение (могут быть и другие ошибки). Как можно перехватить вывод демона, проверить его и тогда только тред оставлять?
или проще запускать тред, искать отдачу и убивать тред если внутри него ошибка? (кажется не очень логичным вариантом)
https://doc.rust-lang.org/std/process/struct.Command.html#method.output
Alex
а зачем проверять вывод? неправильный exit code - делаешь свою бизнеслогику
Anonymous
Anonymous
Alex
пробуешь сделать запрос к этому ipfs
Alex
если свалился в таймаут - делаешь бизнеслогику вокруг ошибки.
Anonymous
👍🏻👍🏻👍🏻 сяп
Vital
Неожиданно много людей используют раст, при этом в интернетах почти нет вакансий с растом
Alex
Sherzod
Vital
)))
Маjко
Vital
а серьёхзно, его большинство людей использует по фану для своих проектов или есть реальная необходимость?
просто присматриваюсь к расту изза его ООП (издалека выглядит адекватней чем в го)
Vital
Оценивал просто есть люди в чате, хоть и меньше чем в го в 3 раза
Denis
… triggered
Маjко
Anonymous
Sherzod
Michael
а что с ними не так?
Sherzod
Sherzod
В чате фшарпа может и так
Vital
на типажах вроде можно практиковать ООП
вот я интересуюсь удобно ли их использовать для того, чтобы писать код в стиле UbiquitousLanguage
Vital
насколько удобно мапить бизнесс-сущности на DTO
Маjко
Sherzod
Мне кажеться это нодежс
Маjко
ООП подходы не применимы
Vital
@mersinvald , можно примеры почему и чего именно не хватает? косяк с инкапсуляцией как в го, что-то не так с полиморфизмом или наследованием?
Маjко
То, что привыкли считать ООП в интерпрайзе, очевидно же
Евгений
Хм, а в расте можно схерачить (exist a. A a => a)? для типажа A
Маjко
Vital
а остальные 2 как?
Маjко
Но RAII != ООП
Anonymous
не модуль?
Маjко
Полиморфизма в том виде, к которому привыкли в жаве тоже нет (потому что нет наследования), на трейтобъектах можно реализовать динамический полиморфизм
Vital
raii - это оно https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D0%B0_%D0%B5%D1%81%D1%82%D1%8C_%D0%B8%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F
Vital
?
Маjко
не модуль?
Прошу прощения, привычка называть модуль пакетом. Последние сутки пишу на джаве)
Маjко
Vital
а как в расте с интерфейсами?
Anonymous
trait
Маjко
Ну потому что RAII не является ни обязательным условием ООП ни ООП не является условием RAII
В Java нет RAII, в GNU C — есть.
Anonymous
не совсем
Маjко
Нет, интерфейсы не позволяют дефолтную реализацию задавать и связывать типы с интерфейсом.