Size: a a a

2020 February 13

p

polunin.ai in rust_offtopic
Только компилятор сможет заоптимизировать и выкинуть это
источник

p

polunin.ai in rust_offtopic
(а интересно, он сейчас тоже это оптимизирует?)
источник

p

polunin.ai in rust_offtopic
Ok(1).map_err(|_|())
источник

p

polunin.ai in rust_offtopic
с++ обновляется каждый год
источник

p

polunin.ai in rust_offtopic
в лучшую сторону
источник

p

polunin.ai in rust_offtopic
последний стандарт вообще как джава только круче
источник

r

red75prime in rust_offtopic
polunin.ai
(а интересно, он сейчас тоже это оптимизирует?)
Да. https://play.rust-lang.org/?version=nightly&mode=release&edition=2018&gist=427d81e4f8847a86ec4e74dd15cb0ea0

Если black_box убрать, то
playground::main: # @playground::main
# %bb.0:
 push  rax
 mov  edi, 1
 call  qword ptr [rip + std::process::exit@GOTPCREL]
 ud2


В stable c Infallible то же самое
источник

EG

Emmanuel Goldstein in rust_offtopic
red75prime
Да. https://play.rust-lang.org/?version=nightly&mode=release&edition=2018&gist=427d81e4f8847a86ec4e74dd15cb0ea0

Если black_box убрать, то
playground::main: # @playground::main
# %bb.0:
 push  rax
 mov  edi, 1
 call  qword ptr [rip + std::process::exit@GOTPCREL]
 ud2


В stable c Infallible то же самое
Лол, оно проверяет, что process::exit() действительно убил процесс
источник

EG

Emmanuel Goldstein in rust_offtopic
Ещё лично /me непонятно, зачем мы кладём rax на стек, но мейби какие-то специфично Rust'овские приколы.
источник

EG

Emmanuel Goldstein in rust_offtopic
В си rax нулевой на момент начала мейна, ЕМНИП.
источник

BD

Berkus Decker in rust_offtopic
polunin.ai
с++ обновляется каждый год
каждые 3 года
источник

EG

Emmanuel Goldstein in rust_offtopic
Emmanuel Goldstein
В си rax нулевой на момент начала мейна, ЕМНИП.
Потыкал в asm!(), %rax в Rust на начало мейна точно не нулевой, но точнее сказать сложно.
источник

EG

Emmanuel Goldstein in rust_offtopic
Кажется, там лежит какой-то поинтер.
источник

BD

Berkus Decker in rust_offtopic
по идее там будет argc, если коллинг конвеншн позволяет
источник

DF

Dollar Føølish in rust_offtopic
Или аргв
источник

BD

Berkus Decker in rust_offtopic
либо указатель на argv
источник

BD

Berkus Decker in rust_offtopic
или даже envp 🙂
источник

DF

Dollar Føølish in rust_offtopic
Хех
источник

EG

Emmanuel Goldstein in rust_offtopic
В сишном calling convention argc прилетает на %rdi, argv на %rsi,  envp на %rdx
источник

EG

Emmanuel Goldstein in rust_offtopic
%rax по конвенции пустой
источник