Hacker News new | past | comments | ask | show | jobs | submit login

Rust does emit bounds and other checks, though. Optimization passes can usually clear some of them away, but you'd need to check the assembly output to be sure.



Yes, that's "omit".

"Emit" means "to send out", eg "emit a strange noise", "emit radiation".


It is specifically both:

- trying to access an arbitrary element in a slice, the compiler will emit bounds checks (`if index > len: panic()`) to avoid an uncontrolled out-of-bounds memory access — https://godbolt.org/z/cbY5ebzvK (note how if you comment out the assert, the code barely changes, because the compiler is adding an invisible assert of its own)

- if the compiler can infer that `index` will always be less than `len`, then it will omit the bounds check — https://godbolt.org/z/TTashYnjd




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: