forked from python/cpython
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNEWS
More file actions
6343 lines (4598 loc) · 247 KB
/
Copy pathNEWS
File metadata and controls
6343 lines (4598 loc) · 247 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
+++++++++++
Python News
+++++++++++
(editors: check NEWS.help for information about editing NEWS using ReST.)
hat's New in Python 2.4.7?
===========================
*Release date: XX-XXX-2009*
What's New in Python 2.4.6?
===========================
*Release date: 19-Dec-2008*
What's New in Python 2.4.6c1?
=============================
*Release date: 13-Dec-2008*
Core and builtins
-----------------
- Issue #4469: Prevent expandtabs() on string and unicode
objects from causing a segfault when a large width is passed
on 32-bit platforms. CVE-2008-5031.
- Issue #4317: Fixed a crash in the imageop.rgb2rgb8() function.
- Issue #4230: Fix a crash when a class has a custom __getattr__ and an
__getattribute__ method that deletes the __getattr__ attribute.
- Apply security patches from Apple. CVE-2008-2315.
- Issue #2620: Overflow checking when allocating or reallocating memory
was not always being done properly in some python types and extension
modules. PyMem_MALLOC, PyMem_REALLOC, PyMem_NEW and PyMem_RESIZE have
all been updated to perform better checks and places in the code that
would previously leak memory on the error path when such an allocation
failed have been fixed.
- Issue #1179: Fix CVE-2007-4965 and CVE-2008-1679, multiple integer
overflows in the imageop and rgbimgmodule modules.
- Issue #2586: Fix CVE-2008-1721, zlib crash from
zlib.decompressobj().flush(val) when val is not positive.
- Issues #2588, #2589: Fix potential integer underflow and overflow
conditions in the PyOS_vsnprintf C API function. CVE-2008-3144.
- Issue #2587: In the C API, PyString_FromStringAndSize() takes a signed size
parameter but was not verifying that it was greater than zero. Values
less than zero will now raise a SystemError and return NULL to indicate a
bug in the calling C code. CVE-2008-1887.
- Security Issue #2: imageop did not validate arguments correctly and could
segfault as a result. CVE-2008-4864.
Extension Modules
-----------------
Library
-------
Tests
-----
Build
-----
Tools/Demos
-----------
- Tools/faqwiz/move-faqwiz.sh: Fix unsecure use of temporary files.
What's New in Python 2.4.5?
=============================
*Release date: 11-Mar-2008*
What's New in Python 2.4.5c1?
=============================
*Release date: 02-Mar-2008*
Core and builtins
-----------------
- Added checks for integer overflows, contributed by Google. Some are
only available if asserts are left in the code, in cases where they
can't be triggered from Python code.
- patch #1630975: Fix crash when replacing sys.stdout in sitecustomize.py
Extension Modules
-----------------
Library
-------
- HTML-escape the plain traceback in cgitb's HTML output, to prevent
the traceback inadvertently or maliciously closing the comment and
injecting HTML into the error page.
Tests
-----
Build
-----
What's New in Python 2.4.4?
===========================
*Release date: 18-OCT-2006*
Build
-----
- Bug #1578513: Cross compilation was broken by a change to configure.
Repair so that it's back to how it was in 2.4.3.
What's New in Python 2.4.4c1?
=============================
*Release date: 11-OCT-2006*
Core and builtins
-----------------
- Bug #1456209: In some obscure cases it was possible for a class with a
custom ``__eq__()`` method to confuse dict internals when class instances
were used as a dict's keys and the ``__eq__()`` method mutated the dict.
No, you don't have any code that did this ;-)
- A number of places, including integer negation and absolute value,
were fixed to not rely on undefined behaviour of the C compiler
anymore.
- Patch #1567691: super() and new.instancemethod() now don't accept
keyword arguments any more (previously they accepted them, but didn't
use them).
- staticmethod() and classmethod() also now complain about keyword args
instead of silently ignoring them.
- Bug #1331062: Fix error in UTF-7 codec.
- Bug #1365916: Fix an int/long mismatch in the sorted() built-in.
- Fix memory leak of coding spec in Parser/tokenizer.c.
- Fix memory leak in file_init.
- Fix segfault when doing string formatting on subclasses of long.
- Overflow checking code in integer division ran afoul of new gcc
optimizations. Changed to be more standard-conforming.
- Fix some potential crashes found with failmalloc.
- Fix warnings reported by the Coverity and Klocwork static analysis tools.
- Patch #1541585: fix buffer overrun when performing repr() on
a unicode string in a build with wide unicode (UCS-4) support.
- Bug #1536786: buffer comparison could emit a RuntimeWarning.
- Bug #1535165: fixed a segfault in input() and raw_input() when
sys.stdin is closed.
- Bug #1524310: Properly report errors from FindNextFile in os.listdir.
- Bug #1232517: An overflow error was not detected properly when
attempting to convert a large float to an int in os.utime().
- Bug #927248: Recursive method-wrapper objects can now safely
be released.
- Bug #992017: A classic class that defined a __coerce__() method that returned
its arguments swapped would infinitely recurse and segfault the interpreter.
- Bug #532646: The object set to the __call__ attribute has its own __call__
attribute checked; this continues until the attribute can no longer be found
or segfaulting. Recursion limit is now followed.
- Bug #1454485: Don't crash on Unicode characters <0.
- Patch #1488312, Fix memory alignment problem on SPARC in unicode
- fixed a bug with bsddb.DB.stat: the flags and txn keyword arguments
were transposed.
Extension Modules
-----------------
- #1494314: Fix a regression with high-numbered sockets in 2.4.3. This
means that select() on sockets > FD_SETSIZE (typically 1024) work again.
The patch makes sockets use poll() internally where available.
- Fix buffer handling in posix.confstr.
- Bug #1572832: fix a bug in ISO-2022 codecs which may cause segfault
when encoding non-BMP unicode characters.
- Fixed a few bugs in cjkcodecs:
- gbk and gb18030 codec now handle U+30FB KATAKANA MIDDLE DOT correctly.
- iso2022_jp_2 codec now encodes into G0 for KS X 1001, GB2312
codepoints to conform the standard.
- iso2022_jp_3 and iso2022_jp_2004 codec can encode JIS X 2013:2
codepoints now.
- Bug #1556784: allow format strings longer than 127 characters in
datetime's strftime function.
- gcmodule: add a missing incref.
- threadmodule: add a missing incref.
- Bug #1551427: fix a wrong NULL pointer check in the win32 version
of os.urandom().
- Patch #1535500: fix segfault in BZ2File.writelines and make sure it
raises the correct exceptions.
- Make regex engine raise MemoryError if allocating memory fails.
- Bug #1471938: Fix curses module build problem on Solaris 8; patch by
Paul Eggert.
- Bug #1548092: fix curses.tparm() segfault on invalid input.
- cursesmodule: fix a number of reference leaks with 'python -v'; handle
failure from PyModule_GetDict (Klocwork 208).
- Bug #1512695: cPickle.loads could crash if it was interrupted with
a KeyboardInterrupt.
- Change binascii.hexlify() to accept any read-only buffer and not just a char
buffer.
- Fixed a potentially invalid memory access of CJKCodecs' shift-jis decoder.
- Calling Tk_Init twice is refused if the first call failed as that
may deadlock.
- Patch #1191065: Fix preprocessor problems on systems where recvfrom
is a macro.
- Bug #1467952: os.listdir() now correctly raises an error if readdir()
fails with an error condition.
- Fix bsddb.db.DBError derived exceptions so they can be unpickled.
- Bug #1117761: bsddb.*open() no longer raises an exception when using
the cachesize parameter.
- Bug #1493322: bsddb: the __len__ method of a DB object has been fixed to
return correct results. It could previously incorrectly return 0 in some
cases. Fixes SF bug 1493322 (pybsddb bug 1184012).
- pybsddb Bug #1527939: bsddb module DBEnv dbremove and dbrename
methods now allow their database parameter to be None as the
sleepycat API allows.
Library
-------
- Bug #1545341: The 'classifier' keyword argument to the Distutils setup()
function now accepts tuples as well as lists.
- Bug #1560617: in pyclbr, return full module name not only for classes,
but also for functions.
- Bug #1566602: correct failure of posixpath unittest when $HOME ends
with a slash.
- Reverted patch #1504333 because it introduced an infinite loop.
- Fix missing import of the types module in logging.config.
- Bug #1112549, DoS attack on cgi.FieldStorage.
- Bug #1257728: Complain about missing VS 2003 in the error message
of msvccompiler, and mention Cygwin as an alternative.
- Bug #1002398: The documentation for os.path.sameopenfile now correctly
refers to file descriptors, not file objects.
- Bug #1529297: The rewrite of doctest for Python 2.4 unintentionally
lost that tests are sorted by name before being run. This rarely
matters for well-written tests, but can create baffling symptoms if
side effects from one test to the next affect outcomes. ``DocTestFinder``
has been changed to sort the list of tests it returns.
- The email package has improved RFC 2231 support, specifically for
recognizing the difference between encoded (name*0*=<blah>) and non-encoded
(name*0=<blah>) parameter continuations. This may change the types of
values returned from email.message.Message.get_param() and friends.
Specifically in some cases where non-encoded continuations were used,
get_param() used to return a 3-tuple of (None, None, string) whereas now it
will just return the string (since non-encoded continuations don't have
charset and language parts).
Also, whereas % values were decoded in all parameter continuations, they are
now only decoded in encoded parameter parts.
- Bug #822974: Honor timeout in telnetlib.{expect,read_until}
even if some data are received.
- Bug #1267547: Put proper recursive setup.py call into the
spec file generated by bdist_rpm.
- Bug #1504333: Make sgmllib support angle brackets in quoted attribute
values.
- Bug #853506: Fix IPv6 address parsing in unquoted attributes in sgmllib
('[' and ']' were not accepted).
- Bug #1117556: SimpleHTTPServer now tries to find and use the system's
mime.types file for determining MIME types.
- Bug #1339007: Shelf objects now don't raise an exception in their
__del__ method when initialization failed.
- Bug #1501223: Possible overflow in _PySys_Init() when reading the code page
under Windows.
- Patch #1478292. ``doctest.register_optionflag(name)`` shouldn't create a
new flag when ``name`` is already the name of an option flag.
- Bug #1473760: ``tempfile.TemporaryFile()`` could hang on Windows, when
called from a thread spawned as a side effect of importing a module.
- The ``__del__`` method of class ``local`` in module ``_threading_local``
returned before accomplishing any of its intended cleanup.
- Patch #1191700: Adjust column alignment in bdb breakpoint lists.
- The email module's parsedate_tz function now sets the daylight savings
flag to -1 (unknown) since it can't tell from the date whether it should
be set.
- Bug #1460340: ``random.sample(dict)`` failed in various ways. Dicts
aren't officially supported here, and trying to use them will probably
raise an exception some day. But dicts have been allowed, and "mostly
worked", so support for them won't go away without warning.
- Bug #1472827: correctly escape newlines and tabs in attribute values in
the saxutils.XMLGenerator class.
- Patch #1110248: SYNC_FLUSH the zlib buffer for GZipFile.flush.
Tools/Demos
-----------
Build
-----
- The Windows binaries for the _ssl module are now linked with
OpenSSL 0.9.7l.
- On Windows, there are no longer linker warnings when building the
``_bsddb`` project.
- Bug #1568842: Fix test for uintptr_t.
- Bug #1439538: Drop usage of test -e in configure as it is not portable.
- Bug #1502728: Correctly link against librt library on HP-UX.
- OpenBSD 3.9 and 4.0 are now supported.
- Test for sys/statvfs.h before including it, as statvfs is present
on some OSX installation, but its header file is not.
- Fix test_long failure on Tru64 with gcc by using -mieee gcc option.
Documentation
-------------
- Bug #1541682: Fix example in the "Refcount details" API docs.
Additionally, remove a faulty example showing PySequence_SetItem applied
to a newly created list object and add notes that this isn't a good idea.
- Clarified documentation for tp_as_buffer->bf_getcharbuffer.
- Bug #1337990: clarified that ``doctest`` does not support examples
requiring both expected output and an exception.
Tests
-----
- Bug #1535182: really test the xreadlines() method of bz2 objects.
- Patch #1529686: test_iterlen and test_email_codecs are now actually
run by regrtest.py.
- Fix the socket tests so they can be run concurrently.
What's New in Python 2.4.3?
===========================
*Release date: 29-MAR-2006*
Core and builtins
-----------------
- A few reference leaks were squished.
- A threading issue that caused random segfaults on some platforms from
the testsuite was fixed in test_capi.
- Reverted fix for Bug #1379994: Builtin unicode_escape and
raw_unicode_escape codec now encodes backslash correctly.
This caused another issue for unicode repr strings being double-escaped
(SF Bug #1459029). Correct fix will be in 2.5, but is too risky for 2.4.3.
Extension Modules
-----------------
- Patch #1380952: fix SSL objects timing out on consecutive read()s
- Ubuntu bug #29289: Fixed a bug that the gb18030 codec raises
RuntimeError on encoding surrogate pair area on UCS4 build.
What's New in Python 2.4.3c1?
=============================
*Release date: 23-MAR-2006*
Core and builtins
-----------------
- Bug #1115379: Compiling a Unicode string with an encoding declaration
now gives a SyntaxError.
- Fix missing check on whether the PendingDeprecationWarning for string
exceptions was re-raised as an actual PendingDeprecationWarning when
'warnings' is set to a filter action of "error"
- Bug #1378022, UTF-8 files with a leading BOM crashed the interpreter.
- Patch #1400181, fix unicode string formatting to not use the locale.
This is how string objects work. u'%f' could use , instead of .
for the decimal point. Now both strings and unicode always use periods.
- Bug #1244610, #1392915, fix build problem on OpenBSD 3.7 and 3.8.
configure would break checking curses.h.
- Bug #959576: The pwd module is now builtin. This allows Python to be
built on UNIX platforms without $HOME set.
- Bug #1379994: Builtin unicode_escape and raw_unicode_escape codec
now encodes backslash correctly.
- Bug #1281408: Py_BuildValue now works correct even with unsigned longs
and long longs.
- SF Bug #1350188, "setdlopenflags" leads to crash upon "import"
It was possible dlerror() returns a NULL pointer, use a default error
message in this case.
- SF bug #1167751: fix incorrect code being for generator expressions.
The following code now raises a SyntaxError: foo(a = i for i in range(10))
- SF Bug #976608: fix SystemError when mtime of an imported file is -1.
- SF Bug #887946: fix segfault when redirecting stdin from a directory.
Provide a warning when a directory is passed on the command line.
- Fix segfault with invalid coding.
- Patch #1413181: changed ``PyThreadState_Delete()`` to forget about the
current thread state when the auto-GIL-state machinery knows about
it (since the thread state is being deleted, continuing to remember it
can't help, but can hurt if another thread happens to get created with
the same thread id).
Extension Modules
-----------------
- Bug #1448490: Fixed a bug that ISO-2022 codecs could not handle
SS2 (single-shift 2) escape sequences correctly.
- Bug #854823: socketmodule now builds on Sun platforms even when
INET_ADDRSTRLEN is not defined.
- Bug #876637, prevent stack corruption when socket descriptor
is larger than FD_SETSIZE.
- Patch #1407135, bug #1424041: mmap.mmap(-1, size, ...) can return
anonymous memory again on Unix.
- Bug #1215432: in bsddb DB.associate() would crash when a DBError
was supposed to be raised.
- Fix 64-bit problems in bsddb.
- Bug #1290333: Added a workaround for cjkcodecs' _codecs_cn build
problem on AIX.
- Bug #869197: os.setgroups rejects long integer arguments
- Bug #1344508, Fix UNIX mmap leaking file descriptors
- Patch #1338314, Bug #1336623: fix tarfile so it can extract
REGTYPE directories from tarfiles written by old programs.
- Patch #1309009, Fix segfault in pyexpat when the XML document is in latin_1,
but Python incorrectly assumes it is in UTF-8 format
- Fix parse errors in the readline module when compiling without threads.
Library
-------
- Patch #1462313, bug #1443328: the pickle modules now can handle classes
that have __private names in their __slots__.
- A regrtest option -w was added to re-run failed tests in verbose mode.
- Patch #1337756: fileinput now handles Unicode filenames correctly.
- Patch #1373643: The chunk module can now read chunks larger than
two gigabytes.
- Bug #1430298: It is now possible to send a mail with an empty
return address using smtplib.
- Bug #1432260: The names of lambda functions are now properly displayed
in pydoc.
- Bug #1371247: Update Windows locale identifiers in locale.py.
- Bug #1394565: SimpleHTTPServer now doesn't choke on query parameters
any more.
- Bug #1403410: The warnings module now doesn't get confused
when it can't find out the module name it generates a warning for.
- Patch #1117398: cookielib.LWPCookieJar and .MozillaCookieJar now raise
LoadError as documented, instead of IOError. For compatibility,
LoadError subclasses IOError.
- Bug #1365984: urllib now opens "data:" URLs again.
- Patch #1314396: Prevent threading.Thread.join() from blocking if a previous
call caused an exception to be raised (e.g., calling join() with an illegal
argument).
- urllib.unquote() now handles Unicode strings correctly. Formerly, it would
either ignore the substitution or raise UnicodeDecodeError.
- SF #1313496: the bisect module now accepts named arguments.
- Bug #729103: pydoc.py: Fix docother() method to accept additional
"parent" argument.
- Patch #1300515: xdrlib.py: Fix pack_fstring() to really use null bytes
for padding.
- Bug #1296004: httplib.py: Limit maximal amount of data read from the
socket to avoid a MemoryError on Windows.
Tools/Demos
-----------
- Fixed a display glitch in Pynche, which could cause the right arrow to
wiggle over by a pixel.
Build
-----
- Patch #1432345: Make python compile on DragonFly.
- Patch #1428494: Prefer linking against ncursesw over ncurses library.
What's New in Python 2.4.2 final?
=================================
*Release date: 28-SEP-2005*
Extension Modules
-----------------
- Patches #1298449 and #1298499: Add some missing checks for error
returns in cStringIO.c.
- Patch #1297028: fix segfault if call type on MultibyteCodec,
MultibyteStreamReader, or MultibyteStreamWriter.
Tests
-----
- Fixed failure in test_macfs on Mac OS X 10.4 (Tiger), which
apparently doesn't allow the creation time to be set later than the
modification time. Fixed by changing the test data.
Build
-----
- Patch #881820: look for openpty and forkpty also in libbsd.
- Use -xcode=pic32 for CCSHARED on Solaris with SunPro.
- The Windows .msi files are now compressed using lzx:21. This produces a
significantly smaller installer.
What's New in Python 2.4.2c1?
=============================
*Release date: 21-SEP-2005*
Core and builtins
-----------------
- SF bug #1163563: the original fix for bug #1010677 ("thread Module
Breaks PyGILState_Ensure()") broke badly in the case of multiple
interpreter states; back out that fix and do a better job (see
http://mail.python.org/pipermail/python-dev/2005-June/054258.html
for a longer write-up of the problem).
- On 64-bit platforms, when __len__() returns a value that cannot be
represented as a C int, raise OverflowError.
- SF bug #893549: parsing keyword arguments was broken with a few format
codes.
- Changes donated by Elemental Security to make it work on AIX 5.3
with IBM's 64-bit compiler (SF patch #1284289). This also closes SF
bug #105470: test_pwd fails on 64bit system (Opteron).
- Changes donated by Elemental Security to make it work on HP-UX 11 on
Itanium2 with HP's 64-bit compiler (SF patch #1225212).
- Disallow keyword arguments for type constructors that don't use them
(fixes bug #1119418).
- Forward UnicodeDecodeError into SyntaxError for source encoding errors.
- SF bug #900092: When tracing (e.g. for hotshot), restore 'return' events for
exceptions that cause a function to exit.
- SF bug #1257731: set.discard() and set.remove() did not correctly
handle keys that both inherited from set and defined their own
__hash__() function. Also, changed set.__contains__() to have
identical logic.
- The set() builtin can now properly compute s-=s as an empty set.
- SF bug #1238681: freed pointer is used in longobject.c:long_pow().
- SF bug #1185883: Python's small-object memory allocator took over
a block managed by the platform C library whenever a realloc specified
a small new size. However, there's no portable way to know then how
much of the address space following the pointer is valid, so no
portable way to copy data from the C-managed block into Python's
small-object space without risking a memory fault. Python's small-object
realloc now leaves such blocks under the control of the platform C
realloc.
- Fix garbage collection for set and frozenset objects. SF patch #1200018.
- It is now safe to call PyGILState_Release() before
PyEval_InitThreads() (note that if there is reason to believe there
are multiple threads around you still must call PyEval_InitThreads()
before using the Python API; this fix is for extension modules that
have no way of knowing if Python is multi-threaded yet).
- Typing Ctrl-C whilst raw_input() was waiting in a build with threads
disabled caused a crash.
- Bug #1165306: instancemethod_new allowed the creation of a method
with im_class == im_self == NULL, which caused a crash when called.
Extension Modules
-----------------
- Bug #1413192, fix seg fault in bsddb if a transaction was deleted
before the env.
- Bug #1402308, (possible) segfault when using mmap.mmap(-1, ...)
- Bug #1400822, _curses over{lay,write} doesn't work when passing 6 ints.
Also fix ungetmouse() which did not accept arguments properly.
The code now conforms to the documented signature.
- Bug #1400115, Fix segfault when calling curses.panel.userptr()
without prior setting of the userptr.
- Bug #1346533, select.poll() doesn't raise an error if timeout > sys.maxint
- Fix memory leak in posix.access().
- Patch #1213831: Fix typo in unicodedata._getcode.
- Bug #1007046: os.startfile() did not accept unicode strings encoded in
the file system encoding.
- Patch #756021: Special-case socket.inet_aton('255.255.255.255') for
platforms that don't have inet_aton().
- Bug #1215928: Fix bz2.BZ2File.seek() for 64-bit file offsets.
- Bug #1191043: Fix bz2.BZ2File.(x)readlines() for files containing one line
without newlines.
- Bug #728515: mmap.resize() now resizes the file on Unix as it did
on Windows.
- Bug #1234979: For the argument of thread.Lock.acquire, the Windows
implemented treated all integer values except 1 as false.
- Bug #1194181: bz2.BZ2File didn't handle mode 'U' correctly.
- Bug #1166660: The readline module could segfault if hook functions
were set in a different thread than that which called readline.
- weakref proxy has incorrect __nonzero__ behavior. SF bug #1770766.
Library
-------
- Patch #1166948: locale.py: Prefer LC_ALL, LC_CTYPE and LANG over LANGUAGE
to get the correct encoding.
- Patch #1166938: locale.py: Parse LANGUAGE as a colon separated list of
languages.
- Patch #1268314: Cache lines in StreamReader.readlines for performance.
- Bug #1290505: time.strptime() was not invalidating its regex cache when the
locale changed.
- Fix a misuse of str.find() in detection of use of %U or %W in datetime
format.
- Bug #1167128: Fix size of a symlink in a tarfile to be 0.
- Patch #810023: Fix off-by-one bug in urllib.urlretrieve reporthook
functionality.
- Bug #1163178: Make IDNA return an empty string when the input is empty.
- Bug #1121494: distutils.dir_utils.mkpath now accepts Unicode strings.
- Bug #1178484: Return complete lines from codec stream readers
even if there is an exception in later lines, resulting in
correct line numbers for decoding errors in source code.
- Bug #1266283: "lexists" is now in os.path.__all__.
- The sets module can now properly compute s-=s and s^=s as an empty set.
- Bug #1192315: Disallow negative arguments to clear() in pdb.
- Patch #827386: Support absolute source paths in msvccompiler.py.
- Fix a problem in Tkinter introduced by SF patch #869468: delete bogus
__hasattr__ and __delattr__ methods on class Tk that were breaking
Tkdnd.
- Bug #1015140: disambiguated the term "article id" in nntplib docs and
docstrings to either "article number" or "message id".
- Bug #1177468: Don't cache the /dev/urandom file descriptor for os.urandom,
as this can cause problems with apps closing all file descriptors.
- Bug #839151: Fix an attempt to access sys.argv in the warnings module
though this can be missing in embedded interpreters
- Bug #1155638: Fix a bug which affected HTTP 0.9 responses in httplib.
- Bug #1100201: Cross-site scripting was possible on BaseHTTPServer via
error messages.
- Bug #1224621: tokenize module does not detect inconsistent dedents
- Bug #1196315: fix weakref.WeakValueDictionary constructor.
- Bug #1213894: os.path.realpath didn't resolve symlinks that were the first
component of the path.
- distutils.commands.register now encodes the data as UTF-8 before posting
them to PyPI.
- Partial fixes for SF bugs #1163244 and #1175396: If a chunk read by
``codecs.StreamReader.readline()`` has a trailing "\r", read one more
character even if the user has passed a size parameter to get a proper
line ending. Remove the special handling of a "\r\n" that has been split
between two lines.
- Bug #1251300: On UCS-4 builds the "unicode-internal" codec will now complain
about illegal code points. The codec now supports PEP 293 style error
handlers.
- Bug #1235646: ``codecs.StreamRecoder.next()`` now reencodes the data it reads
from the input stream, so that the output is a byte string in the correct
encoding instead of a unicode string.
- Bug #1202493: Fixing SRE parser to handle '{}' as perl does, rather than
considering it exactly like a '*'.
Build
-----
- Patch #1160164: Build zlib.pyd for Itanium.
- Bug #1189330: configure did not correctly determine the necessary
value of LINKCC if python was built with GCC 4.0.
- Upgrade Windows build to zlib 1.2.3 which eliminates a potential security
vulnerability in zlib 1.2.1 and 1.2.2.
Documentation
-------------
- Bug #1402224: Add warning to dl docs about crashes.
- Bug #1396471: Document that Windows' ftell() can return invalid
values for text files with UNIX-style line endings.
- Bug #1274828: Document os.path.splitunc().
- Bug #1190204: Clarify which directories are searched by site.py.
- Bug #1193849: Clarify os.path.expanduser() documentation.
- Bug #1243192: re.UNICODE and re.LOCALE affect \d, \D, \s and \S.
- Bug #755617: Document the effects of os.chown() on Windows.
- Patch #1180012: The documentation for modulefinder is now in the library reference.
- Patch #1213031: Document that os.chown() accepts argument values of -1.
- Bug #1190563: Document os.waitpid() return value with WNOHANG flag.
- Bug #1175022: Correct the example code for property().
Tools/Demos
-----------
- Bug #1072853: pindent.py used an uninitialized variable.
What's New in Python 2.4.1 final?
=================================
*Release date: 30-MAR-2005*
Core and builtins
-----------------
- Move exception finalisation later in the shutdown process - this
fixes the crash seen in bug #1165761
Tests
-----
- SF patch 1167316: doctest.py fails self-test if run directly.
Build
-----
- SF patch 1171767: Darwin 8's headers are anal about POSIX compliance,
and linking has changed (prebinding is now deprecated, and libcc_dynamic
no longer exists). This configure patch makes things right.
What's New in Python 2.4.1c2?
=============================
*Release date: 17-MAR-2005*
Library
-------
- Fixed decimal operator and comparison methods to return NotImplemented
instead of raising a TypeError when interacting with other types.
Allows other classes to successfully implement __radd__ style methods.
- Bug #1163325: Decimal infinities failed to hash. Attempting to
hash a NaN raised an InvalidOperation instead of a TypeError.
- Bug #1160802: can't build Zope on Windows with 2.4.1c1. The
``MSVCCompiler`` class in distutils forgot to record that it was
initialized, and continued adding redundant entries to the system
``PATH`` environment variable until ``putenv()`` complained about the
size. This only affected building projects with many C extensions,
and only on Windows using Microsoft's compiler. This wasn't visible
before because a bugfix first included in 2.4.1c1 provoked it (bug
#1110478: revert os.environ.update to do putenv again).
- Bug #1156259: Seeking in codecs.reader was broken, now fixed.
Tests
-----
- Fix the test for socket.getfqdn() in test_socket to also consider the host
name returned by socket.gethostname() a valid return value for getfqdn().
Also clarified the wording of docs and docstring that this is the case.
Extensions Modules
------------------
- os.access now supports Unicode path names on non-Win32 systems.
What's New in Python 2.4.1c1?
=============================
*Release date: 10-MAR-2005*
Core and builtins
-----------------
- Bug #1155938: new style classes did not verify that __init__()
returns None.
- Bug #723201: Raise a TypeError for passing bad objects to 'L' format.
- Bug #1124295: the __name__ attribute of file objects was
inadvertently made inaccessible in restricted mode.
- Bug #1074011: closing sys.std{out,err} now causes a flush() and
an ferror() call.
- Bug #1085744: Add missing overflow check to PySequence_Tuple().
Make resize schedule linear (amortized).
- marshal.dumps() no longer crashes when the optional argument ``version``
is provided.
Extension Modules
-----------------
- Patches #925152, #1118602: Avoid reading after the end of the buffer
in pyexpat.GetInputContext.
- Patch #1093585: raise a ValueError for negative history items in readline.
{remove_history,replace_history}
Library
-------
- Patch #1075887: Don't require MSVC in distutils if there is nothing
to build.
- Patch #1103407: Properly deal with tarfile iterators when untarring
symbolic links on Windows.
- Patch #1117454: Remove code to special-case cookies without values
in LWPCookieJar.
- Patch #1117339: Add cookielib special name tests.
- Patch #1112812: Make bsddb/__init__.py more friendly for modulefinder.
- Patch #1121234: Properly cleanup _exit and tkerror commands.
- Applied a security fix to SimpleXMLRPCserver (PSF-2005-001). This
disables recursive traversal through instance attributes, which can
be exploited in various ways.
- Bug #1110478: Revert os.environ.update to do putenv again.
- Bug #1103844: fix distutils.install.dump_dirs() with negated options.
- Bug #1067732: wininst --install-script doesn't leave residual files anymore.
- StringIO.truncate() now correctly adjusts the size attribute.
(Bug #951915).
- The decimal module wouldn't run on builds without threads (Bug #1083645).
- Bug #1086555: Fix leak in syslog module.
- atexit.register no longer references the sys module before importing it.
(Bug #1083202).
- unittest.TestCase.run() and unittest.TestSuite.run() can now be successfully
extended or overridden by subclasses. Formerly, the subclassed method would
be ignored by the rest of the module. (Bug #1078905).
- Bug #1076985: ``codecs.StreamReader.readline()`` now calls ``read()`` only
once when a size argument is given. This prevents a buffer overflow in the
tokenizer with very long source lines.