Size: a a a

2020 May 02

EG

Emmanuel Goldstein in rust_offtopic
Я смотрю на эту цифру и мне становится грустно.
источник

EG

Emmanuel Goldstein in rust_offtopic
Лол.
источник

RP

Roman Proskuryakov in rust_offtopic
источник

p

polunin.ai in rust_offtopic
источник

EG

Emmanuel Goldstein in rust_offtopic
Не хватает &, 'a, <> и ::<>.
источник

NL

Nick Linker in rust_offtopic
Roman Proskuryakov
C++ быстрее и безопаснее Rust, Yandex сделала замеры https://habr.com/ru/post/492410/
Отличная статья, особенно мне нравится, что она не в стиле "сам дурак", а взвешенная с дотошным разбором этих мифов.👍
источник

EG

Emmanuel Goldstein in rust_offtopic
Nick Linker
Отличная статья, особенно мне нравится, что она не в стиле "сам дурак", а взвешенная с дотошным разбором этих мифов.👍
Такое, там в половине мест подмена утверждения.
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
Такое, там в половине мест подмена утверждения.
@gitkpp тут эмануил нашел пару логических ошибок, которые хочет тебе показать
источник

RP

Roman Proskuryakov in rust_offtopic
пускай показывает
источник

VS

Victor Sapiens in rust_offtopic
Roman Proskuryakov
C++ быстрее и безопаснее Rust, Yandex сделала замеры https://habr.com/ru/post/492410/
👍
источник

RP

Roman Proskuryakov in rust_offtopic
polunin.ai
@gitkpp тут эмануил нашел пару логических ошибок, которые хочет тебе показать
если конечно ты не говоришь за него.
источник

NL

Nick Linker in rust_offtopic
Статью надо было назвать "C++, быстрее и безопаснее Rust, Yandex сделала замеры"
источник

VS

Victor Sapiens in rust_offtopic
@Psilon Я тут на Akka Net пилю фигню и такое дело. Хотел строго типизированный актор сделать. Вроде есть там TypedActor и все такое. Но блин, на нем написано что он Деприкейтед. Шито тогда вместо него юзать и вообще как-то можно вместо нетипихированного IActorRef получить типизированный интерфейс как в Orleans?
источник

EG

Emmanuel Goldstein in rust_offtopic
Там уже в комментах за меня показали, в целом.
Во втором пункте — «это баг не в rustc, это баг в LLVM» — юзеру на это сказочно пофиг, компилируя Rust ты получишь неопределённое поведение в том случае, который в Rust неопределённым поведением не считается.
В третьем пункте — исходный код примера был заменён на другой код, и далее сравнивался его ассемблерный листинг. По факту, да, докладчик прав — код на Rust трогает память, код на C++ не трогает. Тут следовало бы в качестве аргумента показать panic=abort или сказать: «в C++ это даёт UB в таком-то случае, если для вас это допустимо, то есть функция unreachable_unchecked!(), которая в явном виде сделает то же самое»
В четвёртом пункте опять код заменяется на другой, но там докладчик тоже хорош — делать вывод про быстрее/медленнее из одного сниппета это идиотизм.
В пятом пункте подмена утверждения. Представим, что у тебя есть старая проприетарная кодовая база на C — чтобы перейти на C++ тебе нужно приложить примерно ноль усилий, чтобы перейти на Rust — нужно писать обёртки. Наличие готовых обёрток над некоторыми библиотеками, сглаживает её (для этих библиотек), но не решает. Даже если обёртка есть, её нужно поддерживать в актуальном состоянии, что тоже дополнительная работа.
В шестом пункте спорно. unsafe { }, теоретически, действительно даёт возможность сделать только ограниченное количество вещей, но на практике ты можешь в ансейфе легко сломать любой инвариант, фактически «отключив» проверку. Вот, например, мгновенный UB — два мутабельных референса на одну точку:
let mut a = 0;
let b = &mut a as *mut i32;
let c = &mut a;
unsafe {
   let d: &mut i32 = std::mem::transmute(c);
}
источник

RP

Roman Proskuryakov in rust_offtopic
> В третьем пункте — исходный код примера был заменён на другой код,

нет.

> По факту, да, докладчик прав — код на Rust трогает память, код на C++ не трогает.

докладчик пишет boost::stacktrace. когда он своими усилиями введет это в стандарт, С++ везде будет трогать память как раст. тупо потому что это соглашение о вызовах, а он сравнивает разный код (ud2 vs rust backtrace)
источник

RP

Roman Proskuryakov in rust_offtopic
ну и т.д.
источник

RP

Roman Proskuryakov in rust_offtopic
мне лень отвечать. я уже 2 месяца выходных потратил на эту шизофазию
источник

EG

Emmanuel Goldstein in rust_offtopic
Roman Proskuryakov
> В третьем пункте — исходный код примера был заменён на другой код,

нет.

> По факту, да, докладчик прав — код на Rust трогает память, код на C++ не трогает.

докладчик пишет boost::stacktrace. когда он своими усилиями введет это в стандарт, С++ везде будет трогать память как раст. тупо потому что это соглашение о вызовах, а он сравнивает разный код (ud2 vs rust backtrace)
Был. Исходный код:
fn foo(max: i32,
      num: i32) -> i32 {
   return max * num
}

pub fn bar(max: i32,
          num: i32) -> i32 {
   return foo(max, num) *
          foo(max, num)
}

Код, который сравнивался:
extern "C" { fn foo(); }

pub fn bar(max: i32,
          num: i32) -> i32 {
   let z = max * num;
   unsafe { foo(); }
   return z
}
источник

RP

Roman Proskuryakov in rust_offtopic
хм
источник

RP

Roman Proskuryakov in rust_offtopic
нет)
источник