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

Reply via email to