Αλεχ
как теперь результат футуры получить?
Αλεχ
кго core.run вернет?
Cat
или не та версия?
Αλεχ
https://docs.rs/tokio-core/0.1.17/tokio_core/?search=block
Αλεχ
вроде нет такого
Αλεχ
или не та версия?
[[package]] name = "tokio" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.14 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-fs 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-reactor 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-tcp 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-threadpool 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-udp 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ]
պլհկ
кго core.run вернет?
Доку не открывай, вопросы задавай
Αλεχ
да там блин
Αλεχ
tokio, tokio-io, tokio-core
պլհկ
https://docs.rs/tokio-core/0.1.17/tokio_core/reactor/struct.Core.html#method.run
Αλεχ
это только то, что я нашел
Alex
tokio, tokio-io, tokio-core
tokio-core legacy вроде как.
Αλεχ
а что не легаси?
Alex
tokio точно
только там tokio-proto вроде как не интегрируется. Но Framed есть.
Alex
вчера нашёл что есть framed, все что нужно было.
Nikita
у actix-web куча unsafe кода
Berkus
без -web
Berkus
просто system.run() из актикса
պլհկ
Будто в токио сложнее
Cat
без -web
Там тоже много ансейфа
Berkus
Там тоже много ансейфа
ансейфа бояться в рот не давать
Αλεχ
ансейфа бояться в рот не давать
кто-то тебя жестоко обманул
Berkus
кто-то тебя жестоко обманул
я не боюсь ансейфа, в плюсах один сплошной ансейф и ничего, как-то получается
Αλεχ
Лан, не буду
Αλεχ
слишком тупо получается
Cuno
Там тоже много ансейфа
в std тоже много ансейфа
Cat
в std тоже много ансейфа
с ансейфом в стд все согласны, в актиксе — нет
Маjко
с ансейфом в стд все согласны, в актиксе — нет
Не сравнивай полированную десятками разработчиков и протестированную всем комьюнити стдлиб с наколеночной поделкой, из которой со всех сторон торчит UB
Cat
(это не мне реплай?)
Маjко
Тред не читал
Αλεχ
с ансейфом в стд все согласны, в актиксе — нет
покажи мне хоть одно место в стд, где ансейф внутри нарушает пред или постусловия сейф сигнатуры функции
Cat
вы (c @mersinvald) про что?
Cat
я про то, что ансейф в актиксе моветон; а не про стд
Αλεχ
а
Αλεχ
я @d34d10cc говорил
Αλεχ
и промахнулся
Αλεχ
For anyone keeping track of this, last week actix-web had over 120 unsafes, as of today I only count 38. Shout out to the team !
Маjко
ЕЩЕ 36!!!1!
Маjко
блин, а там много UB? я просто из деревни, но актикс кажется интересным
На реддите был разгномный пост про reference transmute в актиксе Это когда ансейфно преобразовали & в &mut Что дичайший UB
Alex
D:
Alex
окей, спасибо
Маjко
Vladimir
На реддите был разгномный пост про reference transmute в актиксе Это когда ансейфно преобразовали & в &mut Что дичайший UB
Ну падажи, это ж фича языка, поидее это не должно быть так плохо как кажется, особенно если они понимали что делают
Vladimir
Ну а этот текст про transmute
Vladimir
Или про фичу языка тоже?
Маjко
Ансейф — фича языка
Маjко
Го дереференсить нуллы
Маjко
Это не должно быть так плохо как кажется
Vladimir
Жди, там разве фича не в сейфовом расте?
Vladimir
Была
Маjко
Какая?
Маjко
Приведения & к &mut не было никогда
Vladimir
unsafe_transmute или как-то так
Маjко
transmute унсейфный и так
Vladimir
Смари
Маjко
https://doc.rust-lang.org/std/mem/fn.transmute.html
Vladimir
Там можно & привести к &mut спомошью одного трансмьюта
Маjко
Ну, и?
Vladimir
Но он использовал фичю подключаемую, которая позволяет через кейворд as трансмьютить & к &mut в сейфовом расте
Маjко
Покажи
Vladimir
Вот и вопрос, если есть такая фича, и она для сейфового раста, то может кампилятор умный и не ставит аттрибуты оптимизации для ссылок в этом скопе
Иван
Если тебе дали переменную и сказали "смотри, но ни в коем случае не трогай", а ты взял и перехуячил её, компилятор бессилен отследить в каком месте твоя прога поломается из-за того что другие рассчитывают на неизменность переменной
Иван
Патамушта & означает что ты даёшь доступ по указателю напрямую
Alexey
Там можно & привести к &mut спомошью одного трансмьюта
Я может слишком новичок, чтобы это понять, но зачем делать такое преобразование?
Маjко
Там вроде ток фича есть, которая снимает ограничение на let mutable: &mut Var = unsafe { transmute(&var) }
Vladimir
Типа чтоб в ансейфе ссылку кастить, но спосощью кейворда as
Vladimir
А трансмьют, он и так умеет обходить систему типов
Маjко
Короче, наговнокодили, не шмогли договориться с borrowck, решили хотфикснуть через ансейф
Vladimir
Достаточно чтоб типы были одного размера