On 3/18/2016 4:40 PM, Keith Medcalf wrote: > There is no such thing as "undefined behaviour". The machine code does > exactly what it is told to do
But SQLite is not written in machine code. It is (largely) written in C. And C language most certainly has the concept of undefined behavior - roughly, a language construct or situation for which a C compiler is not obliged to produce any particular machine code; or in other words, can produce machine code that does anything at all. See also: https://en.wikipedia.org/wiki/Undefined_behavior http://catb.org/jargon/html/N/nasal-demons.html > Things will only be non-deterministic and perhaps undefined when run on > Quantum Computers using Heisenberg registers for intermediate results. There's plenty of non-deterministic behavior on regular von Neumann machines with more than one core. See e.g. https://en.wikipedia.org/wiki/Race_condition . In any case, "undefined behavior" is not at all the same thing as "non-deterministic behavior". A conforming C (or C++) program does not (by definition of "conforming") exhibit undefined behavior, but may very well be non-deterministic. -- Igor Tandetnik