Issue1067760
Created on 2004-11-17 01:28 by churchr, last changed 2006-11-12 18:26 by loewis.
| File name |
Uploaded |
Description |
Edit |
Remove |
|
fileobject.patch
|
churchr,
2004-11-17 01:32
|
Patch against 2.3.4 to fix 1067728 |
|
|
|
file.diff
|
loewis,
2006-11-12 10:56
|
|
|
|
|
msg47293 - (view) |
Author: Robert Church (churchr) |
Date: 2004-11-17 01:28 |
|
Instead of converting all float arguments to ints, this
first attempts to
convert the argument to a PyLong, and then the old
conversion code takes over.
The upshot is that the limit of floating point
arguments to seek() is raised from (2 ** 32) - 1 to
somewhere above (2 ** 62).
Perhaps a better way to handle this would be to not
accept floating point arguments to seek().
|
|
msg47294 - (view) |
Author: Titus Brown (titus) |
Date: 2004-12-19 09:37 |
|
Logged In: YES
user_id=23486
The patch works against HEAD; updated for line numbers (there's a very
similar set of line elsewhere in the file):
http://issola.caltech.edu/~t/transfer/patch-1067760-seek.diff
rhettinger thought the current behavior was reasonable (see bug
1067728). I'm not qualified to comment ;) but it seems odd that floats
would have drastically different limits than longs. This looks like a
reasonable compromise IMO.
|
|
msg47295 - (view) |
Author: Titus Brown (titus) |
Date: 2004-12-19 09:38 |
|
Logged In: YES
user_id=23486
Sorry, I should add: patch works against head on Linux RH 9.0 (and
should work everywhere). Behavior tested with a script.
|
|
msg47296 - (view) |
Author: Titus Brown (titus) |
Date: 2004-12-23 08:29 |
|
Logged In: YES
user_id=23486
Bob Ippolito pointed out that nowadays float-->int conversion of
arguments is deprecated; a DeprecationWarning wasn't being raised
because conversion was done manually in seek. Patch to fix this
at
http://issola.caltech.edu/~t/transfer/patch-1067760-seekwarn.diff
Linux RH 9.0 works, regression tests run w/o problem.
The patch is against the current HEAD but can probably be backported w/
o a problem.
|
|
msg47297 - (view) |
Author: Titus Brown (titus) |
Date: 2004-12-29 08:00 |
|
Logged In: YES
user_id=23486
Updated patch to check return value of PyErr_Warn in case 'python -W
error' is specified. No other objections raised on python-dev...
revised patch still at
http://issola.caltech.edu/~t/transfer/patch-1067760-seekwarn.diff
|
|
msg47298 - (view) |
Author: Oren Tirosh (orenti) |
Date: 2005-03-29 19:07 |
|
Logged In: YES
user_id=562624
The actual usable range of a float is 2**53, not 2**62.
Above this the resolution drops below 1 byte. It's enough
for some 9000 terabytes.
|
|
msg47299 - (view) |
Author: Martin v. Löwis (loewis) |
Date: 2006-11-12 10:56 |
|
Logged In: YES
user_id=21627
I'm attaching a different fix, which uses the index API to
obtain the offset.
As a consequence, passing a float becomes an outright error.
|
|
msg47300 - (view) |
Author: Martin v. Löwis (loewis) |
Date: 2006-11-12 18:26 |
|
Logged In: YES
user_id=21627
After discussion on python-dev, I committed r52738, which
raises a deprecation warning when a float is passed as seek
argument; the meaning of doing so remains unchanged. The
original patch is thus rejected.
|
|
| Date |
User |
Action |
Args |
| 2004-11-17 01:28:23 | churchr | create | |
|