Hi Bonface and Ludo, > That's strange. To get the right results, you'd have to do a `2L ** 64`.
Exactly. The long integer arithmetic works fine, it's the detection of the overflow of 64-bit ints that fails. > When I tried `2 ** 63` I got `-9223372036854775808`. There's also an Good catch, I hadn't tried that one! > Oooh, thank you! It looks like an “interesting” bug, one of those > that can help make the case for precise software environment control. > :-) Exactly. Most people have understood by now that Python and libraries higher up on the stack suffer from breaking changes, but C and libc/libm, that's still the unshakable ground on which software can safely be built. > Uh, weird! We could check whether building Python with ‘-fwrapv’ helps. > See also <https://lwn.net/Articles/511259/>. Interesting. I am finding out that I don't know most of the possible suspects in this crime story ;-) Cheers, Konrad