[Python-Dev] Re: ATTENTION! Releasing Python 2.2.2 in a few weeks
Guido van Rossum
guido@python.org
Mon, 23 Sep 2002 17:30:42 -0400
Skip, where's your 2.2.2 Wiki? (Or should we just pick a page name in
the moinmoin on python.org?)
I've backported the following items to 2.2.2, most of which were my
responsibility and/or 64-bit issues needed for the snake farm:
----------------------------------------------------------------------
Modified Files:
Tag: release22-maint
regrtest.py
Log Message:
Backport 1.96 from trunk (because I want Xenofarm to test 2.2.2):
Add a bunch of sys.stdout.flush() calls that will hopefully improve
the usability of the output of the Xenofarm builds.
----------------------------------------------------------------------
Modified Files:
Tag: release22-maint
unicodeobject.c
Log Message:
Backport 2.166 from trunk:
Fix SF bug 599128, submitted by Inyeol Lee: .replace() would do the
wrong thing for a unicode subclass when there were zero string
replacements. The example given in the SF bug report was only one way
to trigger this; replacing a string of length >= 2 that's not found is
another. The code would actually write outside allocated memory if
replacement string was longer than the search string.
----------------------------------------------------------------------
Modified Files:
Tag: release22-maint
test_unicode.py
Log Message:
Backport 1.56 and 1.68 from trunk:
1.56:
Apply diff3.txt from SF patch http://www.python.org/sf/536241
If a str or unicode method returns the original object,
make sure that for str and unicode subclasses the original
will not be returned.
This should prevent SF bug http://www.python.org/sf/460020
from reappearing.
1.68:
Fix SF bug 599128, submitted by Inyeol Lee: .replace() would do the
wrong thing for a unicode subclass when there were zero string
replacements. The example given in the SF bug report was only one way
to trigger this; replacing a string of length >= 2 that's not found is
another. The code would actually write outside allocated memory if
replacement string was longer than the search string.
----------------------------------------------------------------------
Modified Files:
Tag: release22-maint
structmodule.c
Log Message:
Backport 2.57 from trunk:
(Most of) SF patch 601369 (Christos Georgiou): obmalloc,structmodule:
64bit, big endian (issue 2 only).
This adds a bunch of memcpy calls via a temporary variable to avoid
alignment errors. That's needed for some platforms.
----------------------------------------------------------------------
Modified Files:
Tag: release22-maint
test_b1.py
Log Message:
Backport 1.51 and 1.54 from trunk.
1.51:
Bug #556025: list(xrange(1e9)) --> seg fault
Close the bug report again -- this time for Cygwin due to a newlib bug.
See the following for the details:
http://sources.redhat.com/ml/newlib/2002/msg00369.html
Note that this commit is only a documentation (i.e., comment) change.
1.54:
The list(xrange(sys.maxint / 4)) test blew up on 64-bit platforms.
Because ob_size is a 32-bit int but sys.maxint is LONG_MAX which is a
64-bit value, there's no way to make this test succeed on a 64-bit
platform. So just skip it when sys.maxint isn't 0x7fffffff.
----------------------------------------------------------------------
Modified Files:
Tag: release22-maint
intobject.c
Log Message:
Backport 2.93 from trunk:
Insert an overflow check when the sequence repetition count is outside
the range of ints. The old code would pass random truncated bits to
sq_repeat() on a 64-bit machine.
----------------------------------------------------------------------
Modified Files:
Tag: release22-maint
unicodeobject.c stringobject.c
Log Message:
Backport from trunk:
unicodeobject.c 2.169
stringobject.c 2.189
Fix warnings on 64-bit platforms about casts from pointers to ints.
Two of these were real bugs.
----------------------------------------------------------------------
Modified Files:
Tag: release22-maint
exceptions.c
Log Message:
Backported 1.39 and 1.40 from trunk:
1.39:
Fix SF bug 610610 (reported by Martijn Pieters, diagnosed by Neal Norwitz).
The switch in Exception__str__ didn't clear the error if
PySequence_Size() raised an exception. Added a case -1 which clears
the error and falls through to the default case.
1.40:
Two more cases of switch(PySequence_Size()) without checking for case -1.
(Same problem as last checkin for SF bug 610610)
Need to clear the error and proceed.
----------------------------------------------------------------------
Note that I've been careful to vary the formatting of my log messages
a bit. :-)
Michael Hudson backported a bunch of things too. I notice a test
suite failure with rfc822 as a result of these. Michael, did you run
the test suite?
FAILED (errors=1)
Traceback (most recent call last):
File "../Lib/test/test_rfc822.py", line 211, in ?
test_main()
File "../Lib/test/test_rfc822.py", line 207, in test_main
test_support.run_unittest(MessageTestCase)
File "../Lib/test/test_support.py", line 180, in run_unittest
run_suite(unittest.makeSuite(testclass), testclass)
File "../Lib/test/test_support.py", line 175, in run_suite
raise TestFailed(err)
test_support.TestFailed: Traceback (most recent call last):
File "../Lib/test/test_rfc822.py", line 199, in test_parseaddr
eq(rfc822.parseaddr('<>'), ('', ''))
File "/home/guido/branch-2.2/Lib/rfc822.py", line 491, in parseaddr
list = a.addresslist
AttributeError: AddrlistClass instance has no attribute 'addresslist'
--Guido van Rossum (home page: http://www.python.org/~guido/)