> [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. Yes, I want to avoid the warnings. I've reread pep237 (is this the relevant one?) again. Do I understand this correctly, that all the following expressions will be 'true' and will compile/execute without any warnings (on a 32bit box): Python 2.2: 0x80000000 == -2147483648 Python 2.3: 0x80000000L == 2147483648 Python 2.x (Phase B1?): 0x80000000L == 2147483648 Python 2.y (Phase B2 and later): 0x80000000 == 2147483648 Regards, Thomas
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4