[Python-Dev] Unclear on the way forward with unsigned integers

Tim Peters tim.one@comcast.net
Mon, 07 Oct 2002 10:45:53 -0400


[Mark Hammond]
> While this case seems quite trivial, I am starting to face this issue
> more and more, especially as I am seeing these lovely "FutureWarnings"
> from all my lovely 32 bit hexadecimal constants <wink/frown>

[Tim]
> Sticking "L" at the end is usually all it takes.

[Thomas Heller]
> That removes the warnings for 'x = 0x80000000L'.

What else do you think Mark may have meant by "32 bit hexadecimal
constants"?

> Is there a way (other than the -w command-line arg)
> to suppress the warnings when doing 'hex(-1)'?

The result of that is also currently platform-dependent, so you need to say
what you mean in a platform-independent way.  It's likely that you meant

    hex(-1 & 0xffffffffL)

or, more directly,

    hex(0xffffffffL)

but that someone on a 64-bit box meant something other than that.

> Shouldn't there be a __future__ option?

You seem to want most of all to avoid warning msgs, but __future__ options
don't accomplish that:  it's the *point* of __future__ thingies to spit out
warnings about semantics that are going to change.

I don't know that it's a useful point, though.  That is, the only comments
I've seen about __future__ from users in practice is from those who are
annoyed by needing to say "__future__" all over the place to get at the new
features they want right away.  Alas, I haven't seen evidence that it eases
migration.  That could be because it works so well people don't feel a need
to comment about it, but somehow that seems a tad unlikely <wink>.