4 ms·
mm, a non deterministic compiler with no way to verify correctness, what could go wrong lol
by taminka 1y ago
mm, a non deterministic compiler with no way to verify correctness, what could go wrong lol
- pjmlp 1y agoAsk C and C++ developers, they are used to it, and still plenty of critical software keeps being written with them.
- taminka 1y agoC and C++ compilers are deterministic and have guarantees of correctness similar to that of other languages (esp ones that share share the same llvm backend)
- pjmlp 1y agoProvided you're clever enough to avoid UB land mines, and compiler specific implementation non portable behaviours.
- Kranar 1y agoC++ compilers are not required to be deterministic and in practice are not, at least as far as "same source code produces same observable behavior". Things that can introduce non-determinism include the order in which symbols are linked, static variable initialization, floating point operations (unless you use strict mode, which is not mandated by the standard), and this is ignoring the obvious stuff like unspecified behavior which is specifically defined as behavior which can differ between different runs on the same system. Also correctness guarantees? Hahaha... I'll pretend you didn't just claim C++ has correctness guarantees on par with other languages, LLVM or otherwise. C++ gives you next to nothing with respect to correctness guarantees.
- saagarjha 1y agoExcellent point, undefined behavior is exactly like an LLM. Surely this is what “alignment” in the standard is talking about.