[Python-Dev] int/long FutureWarning
Guido van Rossum
guido@python.org
Wed, 27 Nov 2002 20:07:21 -0500
> "Mark Hammond" <mhammond@skippinet.com.au> writes:
>
> > Any suggestions for me?
[Martin]
> There is no solution to this problem yet. If you add an L to the
> constant (or if it becomes positive in Python 2.4), you can't pass it
> to the "i" format to anymore, as it will cause an OverflowError.
>
> Suppressing the warning now will only defer the problem to the future.
But in Mark's case (and in many other cases) there will be no problem
in the future -- in Python 2.4, his C code will happily accept the
positive Python longs that 0x80000000 and others will be then.
I wonder if perhaps the warnings for hex/oct constants aren't so
important, and we should use PendingDeprecationWarning or some similar
warning that's not normally printed? They sure are a pest!
BTW, this reminds me that I've long promised a set of new format codes
for PyArg_ParseTuple() to specify taking the lower N bits (for N in
8, 16, 32, 64) and throwing the rest away, without range checks. If
someone else can get to this first, that would be great -- I can't
seem to make time for this, even though it is still my utmost desire
and plan to have a 2.3a1 release ready before Xmas.
--Guido van Rossum (home page: http://www.python.org/~guido/)