forked from python/cpython
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNEWS
More file actions
3511 lines (2327 loc) · 126 KB
/
Copy pathNEWS
File metadata and controls
3511 lines (2327 loc) · 126 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.)
What's New in Python 2.5.6?
===========================
*Release date: 26-May-2011*
What's New in Python 2.5.6c1?
=============================
*Release date: 17-Apr-2011*
Library
-------
- Issue #11442: Add a charset parameter to the Content-type in SimpleHTTPServer
to avoid XSS attacks.
- Issue #11662: Make urllib and urllib2 ignore redirections if the
scheme is not HTTP, HTTPS or FTP (CVE-2011-1521).
- Issue #8674: Fixed a number of incorrect or undefined-behaviour-inducing
overflow checks in the audioop module (CVE-2010-1634).
- Issue #7673: Fix security vulnerability (CVE-2010-2089) in the audioop
module, ensure that the input string length is a multiple of the frame size.
What's New in Python 2.5.5?
===========================
*Release date: 31-Jan-2010*
What's New in Python 2.5.5c2?
=============================
*Release date: 24-Jan-2010*
Extension Modules
-----------------
- expat: Fix DoS via XML document with malformed UTF-8 sequences
(CVE_2009_3560).
- expat: Fix DoS via malformed XML (CVE-2009-3720).
What's New in Python 2.5.5c1?
=============================
*Release date: 14-Jan-2010*
Core and builtins
-----------------
- Issue #6990: Fix threading.local subclasses leaving old state around
after a reference cycle GC which could be recycled by new locals.
Library
-------
- Issue #7403: logging: Fixed possible race condition in lock creation.
- Issue #5068: Fixed the tarfile._BZ2Proxy.read() method that would loop
forever on incomplete input. That caused tarfile.open() to hang when used
with mode 'r' or 'r:bz2' and a fileobj argument that contained no data or
partial bzip2 compressed data.
What's New in Python 2.5.4?
===========================
*Release date: 23-Dec-2008*
Core and builtins
-----------------
- Issue #5389: Avoid potential for undefined variable 'startinpos' in
PyUnicode_DecodeUTF7().
- Revert patch for #1706039, as it can crash the interpreter.
- Added test case to ensure attempts to read from a file opened for writing
fail.
What's New in Python 2.5.3?
===========================
*Release date: 19-Dec-2008*
Build
-----
- In the OSX installer, update SQLite to 3.6.7, and change bsddb URL.
Build against system Tcl framework.
What's New in Python 2.5.3c1?
=============================
*Release date: 13-Dec-2008*
Core and builtins
-----------------
- Issue #1706039: Support continued reading from a file even after
EOF was hit.
- Issue #1683: prevent forking from interfering in threading storage.
- Issue #4597: Fixed several opcodes that weren't always propagating
exceptions.
- Issue #4589: Propagated an exception thrown by a context manager's
__exit__ method's result while it's being converted to bool.
- Issue #4317: Fixed a crash in the imageop.rgb2rgb8() function.
- Issue #4230: If ``__getattr__`` is a descriptor, it now functions correctly.
- Issue #4048: The parser module now correctly validates relative imports.
- Issue #4176: Fixed a crash when pickling an object which ``__reduce__``
method does not return iterators for the 4th and 5th items.
- Issue #3967: Fixed a crash in the count() and find() methods of string-like
objects, when the "start" parameter is a huge value.
- Issue #3936: The parser warnings for using "as" and "with" as variable names
didn't fire after import statements.
- Issue #3751: str.rpartition would perform a left-partition when called with
a unicode argument.
- Issue #3537: Fix an assertion failure when an empty but presized dict
object was stored in the freelist.
- Apply security patches from Apple.
- 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 #2242: Fix a crash when decoding invalid utf-7 input on certain
Windows / Visual Studio versions.
- Issue #3360: Fix incorrect parsing of '020000000000.0', which
produced a ValueError instead of giving the correct float.
- Issue #3242: Fix a crash inside the print statement, if sys.stdout is
set to a custom object whose write() method happens to install
another file in sys.stdout.
- Issue #3088: Corrected a race condition in classes derived from
threading.local: the first member set by a thread could be saved in
another thread's dictionary.
- Issue #3100: Corrected a crash on deallocation of a subclassed weakref which
holds the last (strong) reference to its referent.
- Issue #1686386: Tuple's tp_repr did not take into account the possibility of
having a self-referential tuple, which is possible from C code. Nor did
object's tp_str consider that a type's tp_str could do something that could
lead to an inifinite recursion. Py_ReprEnter() and Py_EnterRecursiveCall(),
respectively, fixed the issues. (Backport of r58288 from trunk.)
- Patch #1442: properly report exceptions when the PYTHONSTARTUP file
cannot be executed.
- The compilation of a class nested in another class used to leak one
reference on the outer class name.
- Issue #1477: With narrow Unicode builds, the unicode escape sequence
\Uxxxxxxxx did not accept values outside the Basic Multilingual Plane. This
affected raw unicode literals and the 'raw-unicode-escape' codec. Now
UTF-16 surrogates are generated in this case, like normal unicode literals
and the 'unicode-escape' codec.
- Issue #2321: use pymalloc for unicode object string data to reduce
memory usage in some circumstances.
- Issue #2238: Some syntax errors in *args and **kwargs expressions could give
bogus error messages.
- 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.
- Issue #2588, #2589: Fix potential integer underflow and overflow
conditions in the PyOS_vsnprintf C API function.
- Issue #1204: The configure script now tests for additional libraries
that may be required when linking against readline. This fixes issues
with x86_64 builds on some platforms (a few Linux flavors and OpenBSD).
- Issue #3678: Correctly pass LDFLAGS and LDLAST to the linker on shared
library targets in the Makefile.
Library
-------
- Issue #3767: Convert Tk object to string in tkColorChooser.
- Issue #4342: Always convert Text.index result to string.
- Issue 3248: Allow placing ScrolledText in a PanedWindow.
- Issue #4084: Fix max, min, max_mag and min_mag Decimal methods to
give correct results in the case where one argument is a quiet NaN
and the other is a finite number that requires rounding.
- Issue #1776581 and #4302. Minor corrections to smtplib.
- Issue #3774: Fixed an error when create a Tkinter menu item without command
and then remove it.
- Assigning methods to ctypes.Structure and ctypes.Union subclasses
after creation of the class does now work correctly. See Issue #1700288.
- Issue #3895: _lsprof could be crashed with an external timer that did not
return a float when a Profiler object is garbage collected.
- Issues #3968 and #3969: two minor turtle problems.
- Issue #3547: Fixed ctypes structures bitfields of varying integer
sizes.
- Issue #3762: platform.architecture() fails if python is lanched via
its symbolic link.
- Issue #3554: ctypes.string_at and ctypes.wstring_at did call Python
api functions without holding the GIL, which could lead to a fatal
error when they failed.
- Issue #2234: distutils failed for some versions of the cygwin compiler. The
version reported by these tools does not necessarily follow the python
version numbering scheme, so the module is less strict when parsing it.
- Issue #2222: Fixed reference leak when occured os.rename()
fails unicode conversion on 2nd parameter. (windows only)
- Issue #3134: shutil referenced undefined WindowsError symbol.
- Issue #1342811: Fix leak in Tkinter.Menu.delete. Commands associated to
menu entries were not deleted.
- Issue #799428: Fix Tkinter.Misc._nametowidget to unwrap Tcl command objects.
- Issue #3339: dummy_thread.acquire() could return None which is not a valid
return value.
- Issue #3116 and #1792: Fix quadratic behavior in marshal.dumps().
- Issue #2682: ctypes callback functions no longer contain a cyclic
reference to themselves.
- Issue #2670: Fix a failure in urllib2.build_opener(), when passed two
handlers that derive the same default base class.
- Issue #2495: tokenize.untokenize now inserts a space between two consecutive
string literals; previously, ["" ""] was rendered as [""""], which is
incorrect python code.
- Issue #2482: Make sure that the coefficient of a Decimal is always
stored as a str instance, not as a unicode instance. This ensures
that str(Decimal) is always an instance of str. This fixes a
regression from Python 2.5.1 to Python 2.5.2.
- Issue #2478: fix failure of decimal.Decimal(0).sqrt()
- Issue #2432: give DictReader the dialect and line_num attributes
advertised in the docs.
- Issue #1747858: Fix chown to work with large uid's and gid's on 64-bit
platforms.
- Bug #2220: handle rlcompleter attribute match failure more gracefully.
- Bug #1725737: In distutil's sdist, exclude RCS, CVS etc. also in the
root directory, and also exclude .hg, .git, .bzr, and _darcs.
- Bug #1389051: imaplib causes excessive memory fragmentation when reading
large messages.
- Bug #1389051, 1092502: fix excessively large memory allocations when
calling .read() on a socket object wrapped with makefile().
- Bug #1433694: minidom's .normalize() failed to set .nextSibling for
last child element.
- Issue #2791: subprocess.Popen.communicate explicitly closes its
stdout and stderr fds rather than leaving them open until the
instance is destroyed.
- Issue #2632: Prevent socket.read(bignumber) from over allocating memory
in the common case when the data is returned from the underlying socket
in increments much smaller than bignumber.
- Issue #1857: subprocess.Popen.poll gained an additional _deadstate keyword
argument in python 2.5, this broke code that subclassed Popen to include its
own poll method. Fixed my moving _deadstate to an _internal_poll method.
- Issue #2113: Fix error in subprocess.Popen if the select system call is
interrupted by a signal.
- Issue #874900: after an os.fork() call the threading module state is cleaned
up in the child process to prevent deadlock and report proper thread counts
if the new process uses the threading module.
- Issue #3309: Fix bz2.BZFile iterator to release its internal lock
properly when raising an exception due to the bz2file being closed.
Prevents a deadlock.
Extension Modules
-----------------
- Issue #1040026: Fix os.times result on systems where HZ is incorrect.
- Issue #4228: Pack negative values the same way as 2.4 in struct's L format.
- Security Issue #2: imageop did not validate arguments correctly and could
segfault as a result.
- Issue 3886: [CVE-2008-2316] Possible integer overflow in the _hashopenssl
module was closed.
- Issue 1179: [CVE-2007-4965] Integer overflow in imageop module.
Also fixes rgbimg module.
- Issue #3205: When iterating over a BZ2File fails allocating memory, raise
a MemoryError rather than silently stop the iteration.
- Patch #2111: Avoid mmap segfault when modifying a PROT_READ block.
- zlib.decompressobj().flush(value) no longer crashes the interpreter when
passed a value less than or equal to zero.
- issue2858: Fix potential memory corruption when bsddb.db.DBEnv.lock_get
and other bsddb.db object constructors raised an exception.
- Issue #3120: On 64-bit Windows the subprocess module was truncating handles.
- Issue #1471: Arguments to fcntl.ioctl are no longer broken on 64-bit OpenBSD
and similar platforms due to sign extension.
- Issue #3312: Fix two crashes in sqlite3.
Tests
-----
- Issue #3863: Disabled a unit test of fork being called from a thread
when running on platforms known to exhibit OS bugs when attempting that.
- Issue #3261: test_cookielib had an improper file encoding specified.
- Patch #2232: os.tmpfile might fail on Windows if the user has no
permission to create files in the root directory.
Documentation
-------------
Build
-----
- Issue #4368: Don't define _XOPEN_SOURCE on FreeBSD 4.*.
Windows
-------
What's New in Python 2.5.2?
===========================
*Release date: 21-Feb-2008*
Extension Modules
-----------------
- Fix deallocation of array objects when allocation ran out of memory.
Remove array test case that was incorrect on 64-bit systems.
- Bug #2137: Remove test_struct.test_crasher, which was meaningful
only on 32-bit systems.
What's New in Python 2.5.2c1?
=============================
*Release date: 14-Feb-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.
- Issue #2045: Fix an infinite recursion triggered when printing a subclass of
collections.defaultdict, if its default_factory is set to a bound method.
- Issue #1920: "while 0" statements were completely removed by the compiler,
even in the presence of an "else" clause, which is supposed to be run when
the condition is false. Now the compiler correctly emits bytecode for the
"else" suite.
- A few crashers fixed: weakref_in_del.py (issue #1377858);
loosing_dict_ref.py (issue #1303614, test67.py);
borrowed_ref_[34].py (not in tracker).
- Fix for #1303614 and #1174712 backported from the trunk:
__dict__ descriptor abuse for subclasses of built-in types;
subclassing from both ModuleType and another built-in types.
- Bug #1915: Python compiles with --enable-unicode=no again. However
several extension methods and modules do not work without unicode
support.
- Issue #1678380: distinction between 0.0 and -0.0 was lost during constant
folding optimization. This was a regression from Python 2.4.
- Issue #1882: when compiling code from a string, encoding cookies in the
second line of code were not always recognized correctly.
- Bug #1517: Possible segfault in lookup().
- Issue #1638: %zd configure test fails on Linux.
- Issue #1553: An erroneous __length_hint__ can make list() raise a
SystemError.
- Issue #1521: On 64bit platforms, using PyArgs_ParseTuple with the t# of w#
format code incorrectly truncated the length to an int, even when
PY_SSIZE_T_CLEAN is set. The str.decode method used to return incorrect
results with huge strings.
- Issue #1445: Fix a SystemError when accessing the ``cell_contents``
attribute of an empty cell object.
- Issue #1265: Fix a problem with sys.settrace, if the tracing function uses a
generator expression when at the same time the executed code is closing a
paused generator.
- Issue 1704621: Fix segfaults in list_repeat() and list_inplace_repeat().
- Issue #1147: Generators were not raising a DeprecationWarning when a string
was passed into throw().
- Patch #1031213: Decode source line in SyntaxErrors back to its original source
encoding.
- Patch #1673759: add a missing overflow check when formatting floats
with %G.
- Patch #1733960: Allow T_LONGLONG to accept ints.
- Prevent expandtabs() on string and unicode objects from causing a segfault
when a large width is passed on 32-bit platforms.
- Bug #1733488: Fix compilation of bufferobject.c on AIX.
- Fix Issue #1703448: A joined thread could show up in the
threading.enumerate() list after the join() for a brief period until
it actually exited.
Library
-------
- curses.textpad: Fix off-by-one error that resulted in characters
being missed from the contents of a Textbox.
- Patch #1966: Break infinite loop in httplib when the servers
implements the chunked encoding incorrectly.
- tarfile.py: Fix reading of xstar archives.
- #2021: Allow tempfile.NamedTemporaryFile to be used in with statements
by correctly supporting the context management protocol.
- Fixed _ctypes.COMError so that it must be called with exactly three
arguments, instances now have the hresult, text, and details
instance variables.
- #1507247, #2004: tarfile.py: Use mode 0700 for temporary directories and
default permissions for missing directories.
- #175006: The debugger used to skip the condition of a "while" statement
after the first iteration. Now it correctly steps on the expression, and
breakpoints on the "while" statement are honored on each loop.
- The ctypes int types did not accept objects implementing
__int__() in the constructor.
- #1189216: Fix the zipfile module to work on archives with headers
past the 2**31 byte boundary.
- Issue #1336: fix a race condition in subprocess.Popen if the garbage
collector kicked in at the wrong time that would cause the process
to hang when the child wrote to stderr.
- Bug #1687: Fixed plistlib.py restricts <integer> to Python int when writing.
- Issue #1182: many arithmetic bugs in the decimal module have been
fixed, and the decimal module has been updated to comply with the
latest IBM Decimal Arithmetic specification (version 1.66) and
testsuite (version 2.57). (Backported from Python 2.6a0.)
- Patch #1637: fix urlparse for URLs like 'http://x.com?arg=/foo'.
- Issue #1735: TarFile.extractall() now correctly sets directory permissions
and times.
- Bug #1713: posixpath.ismount() claims symlink to a mountpoint is a mountpoint.
- Issue #1700: Regular expression inline flags incorrectly handle certain
unicode characters.
- Change ctypes version number to 1.0.3 (when Python 2.5.2 is released,
ctypes 1.0.3 will be also be released).
- Issue #1695: Fixed typo in the docstrings for time.localtime() and gmtime().
- Issue #1642: Fix segfault in ctypes when trying to delete attributes.
- os.access now returns True on Windows for any existing directory.
- Issue #1531: tarfile.py: Read fileobj from the current offset, do not
seek to the start.
- Issue 1429818: patch for trace and doctest modules so they play nicely
together.
- doctest mis-used __loader__.get_data(), assuming universal newlines was used.
- Issue #1705170: contextlib.contextmanager was still swallowing
StopIteration in some cases. This should no longer happen.
- Bug #1307: Fix smtpd so it doesn't raise an exception when there is no arg.
- ctypes will now work correctly on 32-bit systems when Python is
configured with --with-system-ffi.
- Bug #1777530: ctypes.util.find_library uses dump(1) instead of
objdump(1) on Solaris.
- Bug #1153: repr.repr() now doesn't require set and dictionary items
to be orderable to properly represent them.
- Bug #1709599: Run test_1565150 only if the file system is NTFS.
- When encountering a password-protected robots.txt file the RobotFileParser
no longer prompts interactively for a username and password (bug 813986).
- TarFile.__init__() no longer fails if no name argument is passed and
the fileobj argument has no usable name attribute (e.g. StringIO).
- Reverted the fix for bug #1548891 because it broke compatibility with
arbitrary read buffers. Added a note in the documentation.
- GB18030 codec now can encode additional two-byte characters that
are missing in GBK.
- Bug #1704793: Raise KeyError if unicodedata.lookup cannot
represent the result in a single character.
- Change location of the package index to pypi.python.org/pypi
- Bug #1701409: Fix a segfault in printing ctypes.c_char_p and
ctypes.c_wchar_p when they point to an invalid location. As a
sideeffect the representation of these instances has changed.
- Bug #1734723: Fix repr.Repr() so it doesn't ignore the maxtuple attribute.
- Bug #1728403: Fix a bug that CJKCodecs StreamReader hangs when it
reads a file that ends with incomplete sequence and sizehint argument
for .read() is specified.
- Bug #1730389: Have time.strptime() match spaces in a format argument with
``\s+`` instead of ``\s*``.
- SF 1668596/1720897: distutils now copies data files
even if package_dir is empty.
- Fix bug in marshal where bad data would cause a segfault due to
lack of an infinite recursion check.
- mailbox.py: Ignore stray directories found in Maildir's cur/new/tmp
subdirectories.
- 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.
- Bug #1290505: Properly clear time.strptime's locale cache when the locale
changes between calls. Backport of r54646 and r54647.
- Bug #1706381: Specifying the SWIG option "-c++" in the setup.py file
(as opposed to the command line) will now write file names ending in
".cpp" too.
- Patch #1695229: Fix a regression with tarfile.open() and a missing name
argument.
- tarfile.py: Fix directory names to have only one trailing slash.
- Fix test_pty.py to not hang on OS X (and theoretically other *nixes) when
run in verbose mode.
- Bug #1693258: IDLE would show two "Preferences" menu's with some versions
of Tcl/Tk
- Issue1385: The hmac module now computes the correct hmac when using hashes
with a block size other than 64 bytes (such as sha384 and sha512).
- Issue829951: In the smtplib module, SMTP.starttls() now complies with
RFC 3207 and forgets any knowledge obtained from the server not obtained
from the TLS negotiation itself. Patch contributed by Bill Fenner.
Extension Modules
-----------------
- Patch #1736: Fix file name handling of _msi.FCICreate.
- Backport r59862 (issue #712900): make long regexp matches interruptable.
- #1940: make it possible to use curses.filter() before curses.initscr()
as the documentation says.
- Fix a potential 'SystemError: NULL result without error' in _ctypes.
- Bug #1301: Bad assert in _tkinter fixed.
- Patch #1114: fix curses module compilation on 64-bit AIX, & possibly
other 64-bit LP64 platforms where attr_t is not the same size as a long.
(Contributed by Luke Mewburn.)
- Bug #1649098: Avoid declaration of zero-sized array declaration in
structure.
- Bug #1703286: ctypes no longer truncates 64-bit pointers.
- Bug #1721309: prevent bsddb module from freeing random memory.
- Bug #1233: fix bsddb.dbshelve.DBShelf append method to work as
intended for RECNO databases.
- Bug #1726026: Correct the field names of WIN32_FIND_DATAA and
WIN32_FIND_DATAW structures in the ctypes.wintypes module.
- Added support for linking the bsddb module against BerkeleyDB 4.6.x.
- Fix libffi configure for hppa*-*-linux* | parisc*-*-linux*.
- Build using system ffi library on arm*-linux*.
- Bug #1372: zlibmodule.c: int overflow in PyZlib_decompress
- bsddb module: Fix memory leak when using database cursors on
databases without a DBEnv.
Documentation
-------------
- Bug #1637365: add subsection about "__name__ == __main__" to the
Python tutorial.
- Bug #1569057: Document that calling file.next() on a file open for writing
has undefined behaviour. Backport of r54712.
Build
-----
- Have the search path for building extensions follow the declared order in
$CPPFLAGS and $LDFLAGS.
- Bug #1234: Fixed semaphore errors on AIX 5.2
- Bug #1699: Define _BSD_SOURCE only on OpenBSD.
- Bug #1608: use -fwrapv when GCC supports it. This is important,
newer GCC versions may optimize away overflow buffer overflow checks
without this option!
- Allow simultaneous installation of 32-bit and 64-bit versions
on 64-bit Windows systems.
- Patch #786737: Allow building in a tree of symlinks pointing to
a readonly source.
- Bug #1737210: Change Manufacturer of Windows installer to PSF.
- Bug #1746880: Correctly install DLLs into system32 folder on Win64.
- Define _BSD_SOURCE, to get access to POSIX extensions on OpenBSD 4.1+.
- Patch #1673122: Use an explicit path to libtool when building a framework.
This avoids picking up GNU libtool from a users PATH.
- Allow Emacs 22 for building the documentation in info format.
- Makefile.pre.in(buildbottest): Run an optional script pybuildbot.identify
to include some information about the build environment.
Windows
-------
- Bug #1216: Restore support for Visual Studio 2002.
What's New in Python 2.5.1?
=============================
*Release date: 18-APR-2007*
Core and builtins
-----------------
- Bug #1722485: remove docstrings again when running with -OO.
- Revert SF #1615701: dict.update() does *not* call __getitem__() or keys()
if subclassed. This is to remain consistent with 2.5.
Also revert revision 53667 with made a similar change to set.update().
What's New in Python 2.5.1c1?
=============================
*Release date: 05-APR-2007*
Core and builtins
-----------------
- Patch #1682205: a TypeError while unpacking an iterable is no longer
masked by a generic one with the message "unpack non-sequence".
- Patch #1642547: Fix an error/crash when encountering syntax errors in
complex if statements.
- Patch #1462488: Python no longer segfaults when ``object.__reduce_ex__()``
is called with an object that is faking its type.
- Patch #1680015: Don't modify __slots__ tuple if it contains an unicode
name.
- Patch #922167: Python no longer segfaults when faced with infinitely
self-recursive reload() calls (as reported by bug #742342).
- Patch #1675981: remove unreachable code from ``type.__new__()`` method.
- Patch #1638879: don't accept strings with embedded NUL bytes in long().
- Bug #1674503: close the file opened by execfile() in an error condition.
- Patch #1674228: when assigning a slice (old-style), check for the
sq_ass_slice instead of the sq_slice slot.
- Bug #1669182: prevent crash when trying to print an unraisable error
from a string exception.
- The peephole optimizer left None as a global in functions with a docstring
and an explicit return value.
- Bug #1653736: Properly discard third argument to slot_nb_inplace_power.
- SF #151204: enumerate() now raises an Overflow error at sys.maxint items.
- Bug #1377858: Fix the segfaulting of the interpreter when an object created
a weakref on itself during a __del__ call for new-style classes (classic
classes still have the bug).
- Bug #1648179: set.update() did not recognize an overridden __iter__
method in subclasses of dict.
- Bug #1579370: Make PyTraceBack_Here use the current thread, not the
frame's thread state.
- patch #1630975: Fix crash when replacing sys.stdout in sitecustomize.py
- Bug #1637022: Prefix AST symbols with _Py_.
- Prevent seg fault on shutdown which could occur if an object
raised a warning.
- Bug #1566280: Explicitly invoke threading._shutdown from Py_Main,
to avoid relying on atexit.
- Bug #1590891: random.randrange don't return correct value for big number
- Bug #1456209: In some obscure cases it was possible for a class with a
custom ``__eq__()`` method to confuse set internals when class instances
were used as a set's elements and the ``__eq__()`` method mutated the set.
- The repr for self-referential sets and fronzensets now shows "..." instead
of falling into infinite recursion.
- Eliminated unnecessary repeated calls to hash() by set.intersection() and
set.symmetric_difference_update().
- Bug #1591996: Correctly forward exception in instance_contains().
- Bug #1588287: fix invalid assertion for `1,2` in debug builds.
- Bug #1576657: when setting a KeyError for a tuple key, make sure that
the tuple isn't used as the "exception arguments tuple". Applied to
both sets and dictionaries.
- Bug #1565514, SystemError not raised on too many nested blocks.
- Bug #1576174: WindowsError now displays the windows error code
again, no longer the posix error code.
- Patch #1549049: Support long values in structmember.
- Bug #1542016: make sys.callstats() match its docstring and return an
11-tuple (only relevant when Python is compiled with -DCALL_PROFILE).
- Bug #1545497: when given an explicit base, int() did ignore NULs
embedded in the string to convert.
- Bug #1569998: break inside a try statement (outside a loop) is now
recognized and rejected.
- Patch #1542451: disallow continue anywhere under a finally.
- list.pop(x) accepts any object x following the __index__ protocol.
- Fix some leftovers from the conversion from int to Py_ssize_t
(relevant to strings and sequences of more than 2**31 items).
- A number of places, including integer negation and absolute value,
were fixed to not rely on undefined behaviour of the C compiler
anymore.
- Bug #1566800: make sure that EnvironmentError can be called with any
number of arguments, as was the case in Python 2.4.
- Patch #1567691: super() and new.instancemethod() now don't accept
keyword arguments any more (previously they accepted them, but didn't
use them).
- Fix a bug in the parser's future statement handling that led to "with"
not being recognized as a keyword after, e.g., this statement:
from __future__ import division, with_statement
- Bug #1557232: fix seg fault with def f((((x)))) and def f(((x),)).
- Fix %zd string formatting on Mac OS X so it prints negative numbers.
- Allow exception instances to be directly sliced again.
Extension Modules
-----------------
- Patch #1643738: Problem with signals in a single-threaded application.
- Bug #1563759: struct.unpack doens't support buffer protocol objects.
- Bug #1686475: Support stat'ing open files on Windows again.
- Bug #1647541: Array module's buffer interface can now handle empty arrays.
- Bug #1693079: The array module can now successfully pickle empty arrays.
- Bug #1688393: Prevent crash in socket.recvfrom if length is negative.
- Bug #1622896: fix a rare corner case where the bz2 module raised an
error in spite of a succesful compression.
- Patch #1654417: make operator.{get,set,del}slice use the full range
of Py_ssize_t.
- Patch #1646728: datetime.fromtimestamp fails with negative
fractional times. With unittest.
- Patch #1494140: Add documentation for the new struct.Struct object.
- Patch #1657276: Make NETLINK_DNRTMSG conditional.
- Bug #1653736: Fix signature of time_isoformat.
- Issue #1698398 Zipfile.printdir() crashed because the format string
expected a tuple type of length six instead of time.struct_time object.
- operator.count() now raises an OverflowError when the count reaches sys.maxint.
- Bug #1575169: operator.isSequenceType() now returns False for subclasses of dict.
- collections.defaultdict() now verifies that the factory function is callable.
- Bug #1486663: don't reject keyword arguments for subclasses of builtin
types.
- The version number of the ctypes package was changed to "1.0.2".
- Bug #1664966: Fix crash in exec if Unicode filename can't be decoded.
- Patch #1544279: Improve thread-safety of the socket module by moving
the sock_addr_t storage out of the socket object.
- Patch #1615868: make bz2.BZFile.seek() work for offsets >2GiB.
- Bug #1563807: _ctypes built on AIX fails with ld ffi error.
- Bug #1598620: A ctypes Structure cannot contain itself.
- Bug #1588217: don't parse "= " as a soft line break in binascii's
a2b_qp() function, instead leave it in the string as quopri.decode()
does.
- Patch #838546: Make terminal become controlling in pty.fork()
- Patch #1560695: Add .note.GNU-stack to ctypes' sysv.S so that
ctypes isn't considered as requiring executable stacks.
- Bug #1567666: Emulate GetFileAttributesExA for Win95.
- Bug #1548891: The cStringIO.StringIO() constructor now encodes unicode
arguments with the system default encoding just like the write()
method does, instead of converting it to a raw buffer.
- Bug #1565150: Fix subsecond processing for os.utime on Windows.
- Patch #1572724: fix typo ('=' instead of '==') in _msi.c.
- Bug #1572832: fix a bug in ISO-2022 codecs which may cause segfault
when encoding non-BMP unicode characters.
- Bug #1556784: allow format strings longer than 127 characters in
datetime's strftime function.
- Fix itertools.count(n) to work with negative numbers again.
- Make regex engine raise MemoryError if allocating memory fails.
- fixed a bug with bsddb.DB.stat: the flags and txn keyword arguments
were transposed.
- Added support for linking the bsddb module against BerkeleyDB 4.5.x.
- Modifying an empty deque during iteration now raises RuntimeError
instead of StopIteration.
- Bug #1552726: fix polling at the interpreter prompt when certain
versions of the readline library are in use.
- Bug #1633621: if curses.resizeterm() or curses.resize_term() is called,
update _curses.LINES, _curses.COLS, curses.LINES and curses.COLS.
- Fix an off-by-one bug in locale.strxfrm().
Library
-------
- Patch #1685563: remove (don't add) duplicate paths in distutils.MSVCCompiler.
- Bug #978833: Revert r50844, as it broke _socketobject.dup.
- Bug #1675967: re patterns pickled with Python 2.4 and earlier can
now be unpickled with Python 2.5.
- Bug #1684254: webbrowser now uses shlex to split any command lines
given to get(). It also detects when you use '&' as the last argument
and creates a BackgroundBrowser then.
- Patch #1681153: the wave module now closes a file object it opened if
initialization failed.
- Bug #767111: fix long-standing bug in urllib which caused an
AttributeError instead of an IOError when the server's response didn't
contain a valid HTTP status line.
- Bug #1629369: Correctly parse multiline comment in address field.
- Bug #1582282: Fix email.header.decode_header() to properly treat encoded
words with no delimiting whitespace as a single word.
- Patch #1449244: Support Unicode strings in
email.message.Message.{set_charset,get_content_charset}.
- Patch #1542681: add entries for "with", "as" and "CONTEXTMANAGERS" to
pydoc's help keywords.
- Patch #1192590: Fix pdb's "ignore" and "condition" commands so they trap
the IndexError caused by passing in an invalid breakpoint number.