Repository navigation
Expand file tree
/
Copy pathNEWS
More file actions
11443 lines (7627 loc) · 423 KB
/
Copy pathNEWS
File metadata and controls
11443 lines (7627 loc) · 423 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
+++++++++++
What's New in Python 2.7.11?
============================
*Release date: 2015-12-05*
Library
-------
- Issue #25624: ZipFile now always writes a ZIP_STORED header for directory
entries. Patch by Dingyuan Wang.
What's New in Python 2.7.11 release candidate 1?
================================================
*Release date: 2015-11-21*
Core and Builtins
-----------------
- Issue #25678: Avoid buffer overreads when int(), long(), float(), and
compile() are passed buffer objects. These objects are not necessarily
terminated by a null byte, but the functions assumed they were.
- Issue #25388: Fixed tokenizer hang when processing undecodable source code
with a null byte.
- Issue #22995: Default implementation of __reduce__ and __reduce_ex__ now
rejects builtin types with not defined __new__.
- Issue #7267: format(int, 'c') now raises OverflowError when the argument is
not in range(0, 256).
- Issue #24806: Prevent builtin types that are not allowed to be subclassed from
being subclassed through multiple inheritance.
- Issue #24848: Fixed a number of bugs in UTF-7 decoding of misformed data.
- Issue #25003: os.urandom() doesn't use getentropy() on Solaris because
getentropy() is blocking, whereas os.urandom() should not block. getentropy()
is supported since Solaris 11.3.
- Issue #21167: NAN operations are now handled correctly when python is
compiled with ICC even if -fp-model strict is not specified.
- Issue #24467: Fixed possible buffer over-read in bytearray. The bytearray
object now always allocates place for trailing null byte and it's buffer now
is always null-terminated.
- Issue #19543: encode() and decode() methods and constructors of str,
unicode and bytearray classes now emit deprecation warning for known
non-text encodings when Python is ran with the -3 option.
- Issue #24115: Update uses of PyObject_IsTrue(), PyObject_Not(),
PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains()
to check for and handle errors correctly.
- Issue #4753: On compilers where it is supported, use "computed gotos" for
bytecode dispatch in the interpreter. This improves interpretation
performance.
- Issue #22939: Fixed integer overflow in iterator object. Original patch by
Clement Rouault.
- Issue #24102: Fixed exception type checking in standard error handlers.
Library
-------
- Issue #10128: backport issue #10845's mitigation of incompatibilities between
the multiprocessing module and directory and zipfile execution.
Multiprocessing on Windows will now automatically skip rerunning __main__ in
spawned processes, rather than failing with AssertionError.
- Issue #25578: Fix (another) memory leak in SSLSocket.getpeercer().
- Issue #25590: In the Readline completer, only call getattr() once per
attribute.
- Issue #25530: Disable the vulnerable SSLv3 protocol by default when creating
ssl.SSLContext.
- Issue #25569: Fix memory leak in SSLSocket.getpeercert().
- Issue #7759: Fixed the mhlib module on filesystems that doesn't support
link counting for directories.
- Issue #892902: Fixed pickling recursive objects.
- Issue #18010: Fix the pydoc GUI's search function to handle exceptions
from importing packages.
- Issue #25515: Always use os.urandom as a source of randomness in uuid.uuid4.
- Issue #21827: Fixed textwrap.dedent() for the case when largest common
whitespace is a substring of smallest leading whitespace.
Based on patch by Robert Li.
- Issue #21709: Fix the logging module to not depend upon __file__ being set
properly to get the filename of its caller from the stack. This allows it
to work if run in a frozen or embedded environment where the module's
.__file__ attribute does not match its code object's .co_filename.
- Issue #25319: When threading.Event is reinitialized, the underlying condition
should use a regular lock rather than a recursive lock.
- Issue #25232: Fix CGIRequestHandler to split the query from the URL at the
first question mark (?) rather than the last. Patch from Xiang Zhang.
- Issue #24657: Prevent CGIRequestHandler from collapsing slashes in the
query part of the URL as if it were a path. Patch from Xiang Zhang.
- Issue #22958: Constructor and update method of weakref.WeakValueDictionary
now accept the self keyword argument.
- Issue #22609: Constructor and the update method of collections.UserDict now
accept the self keyword argument.
- Issue #25203: Failed readline.set_completer_delims() no longer left the
module in inconsistent state.
- Issue #19143: platform module now reads Windows version from kernel32.dll to
avoid compatibility shims.
- Issue #25135: Make deque_clear() safer by emptying the deque before clearing.
This helps avoid possible reentrancy issues.
- Issue #24684: socket.socket.getaddrinfo() now calls
PyUnicode_AsEncodedString() instead of calling the encode() method of the
host, to handle correctly custom unicode string with an encode() method
which doesn't return a byte string. The encoder of the IDNA codec is now
called directly instead of calling the encode() method of the string.
- Issue #24982: shutil.make_archive() with the "zip" format now adds entries
for directories (including empty directories) in ZIP file.
- Issue #17849: Raise a sensible exception if an invalid response is
received for a HTTP tunnel request, as seen with some servers that
do not support tunnelling. Initial patch from Cory Benfield.
- Issue #16180: Exit pdb if file has syntax error, instead of trapping user
in an infinite loop. Patch by Xavier de Gaye.
- Issue #22812: Fix unittest discovery examples.
Patch from Pam McA'Nulty.
- Issue #24634: Importing uuid should not try to load libc on Windows
- Issue #23652: Make it possible to compile the select module against the
libc headers from the Linux Standard Base, which do not include some
EPOLL macros. Initial patch by Matt Frank.
- Issue #15138: Speed up base64.urlsafe_b64{en,de}code considerably.
- Issue #23319: Fix ctypes.BigEndianStructure, swap correctly bytes. Patch
written by Matthieu Gautier.
- Issue #23254: Document how to close the TCPServer listening socket.
Patch from Martin Panter.
- Issue #17527: Add PATCH to wsgiref.validator. Patch from Luca Sbardella.
- Issue #24613: Calling array.fromstring() with self is no longer allowed
to prevent the use-after-free error. Patch by John Leitch.
- Issue #24708: Fix possible integer overflow in strop.replace().
- Issue #24620: Random.setstate() now validates the value of state last element.
- Issue #13938: 2to3 converts StringTypes to a tuple. Patch from Mark Hammond.
- Issue #24611: Fixed compiling the posix module on non-Windows platforms
without mknod() or makedev() (e.g. on Unixware).
- Issue #18684: Fixed reading out of the buffer in the re module.
- Issue #24259: tarfile now raises a ReadError if an archive is truncated
inside a data segment.
- Issue #24514: tarfile now tolerates number fields consisting of only
whitespace.
- Issue #20387: Restore semantic round-trip correctness in tokenize/untokenize
for tab-indented blocks.
- Issue #24456: Fixed possible buffer over-read in adpcm2lin() and lin2adpcm()
functions of the audioop module. Fixed SystemError when the state is not a
tuple. Fixed possible memory leak.
- Issue #24481: Fix possible memory corruption with large profiler info strings
in hotshot.
- Issue #24489: ensure a previously set C errno doesn't disturb cmath.polar().
- Issue #19543: io.TextIOWrapper (and hence io.open()) now uses the internal
codec marking system added to emit deprecation warning for known non-text
encodings at stream construction time when Python is ran with the -3 option.
- Issue #24264: Fixed buffer overflow in the imageop module.
- Issue #5633: Fixed timeit when the statement is a string and the setup is not.
- Issue #24326: Fixed audioop.ratecv() with non-default weightB argument.
Original patch by David Moore.
- Issue #22095: Fixed HTTPConnection.set_tunnel with default port. The port
value in the host header was set to "None". Patch by Demian Brecht.
- Issue #24257: Fixed segmentation fault in sqlite3.Row constructor with faked
cursor type.
- Issue #24286: Dict view were not registered with the MappingView abstract
base classes. This caused key and item views in OrderedDict to not be equal
to their regular dict counterparts.
- Issue #22107: tempfile.gettempdir() and tempfile.mkdtemp() now try again
when a directory with the chosen name already exists on Windows as well as
on Unix. tempfile.mkstemp() now fails early if parent directory is not
valid (not exists or is a file) on Windows.
- Issue #6598: Increased time precision and random number range in
email.utils.make_msgid() to strengthen the uniqueness of the message ID.
- Issue #24091: Fixed various crashes in corner cases in cElementTree.
- Issue #15267: HTTPConnection.request() now is compatibile with old-style
classes (such as TemporaryFile). Original patch by Atsuo Ishimoto.
- Issue #20014: array.array() now accepts unicode typecodes. Based on patch by
Vajrasky Kok.
- Issue #23637: Showing a warning no longer fails with UnicodeErrror.
Formatting unicode warning in the file with the path containing non-ascii
characters no longer fails with UnicodeErrror.
- Issue #24134: Reverted issue #24134 changes.
IDLE
----
- Issue 15348: Stop the debugger engine (normally in a user process)
before closing the debugger window (running in the IDLE process).
This prevents the RuntimeErrors that were being caught and ignored.
- Issue #24455: Prevent IDLE from hanging when a) closing the shell while the
debugger is active (15347); b) closing the debugger with the [X] button
(15348); and c) activating the debugger when already active (24455).
The patch by Mark Roseman does this by making two changes.
1. Suspend and resume the gui.interaction method with the tcl vwait
mechanism intended for this purpose (instead of root.mainloop & .quit).
2. In gui.run, allow any existing interaction to terminate first.
- Change 'The program' to 'Your program' in an IDLE 'kill program?' message
to make it clearer that the program referred to is the currently running
user program, not IDLE itself.
- Issue #24750: Improve the appearance of the IDLE editor window status bar.
Patch by Mark Roseman.
- Issue #25313: Change the handling of new built-in text color themes to better
address the compatibility problem introduced by the addition of IDLE Dark.
Consistently use the revised idleConf.CurrentTheme everywhere in idlelib.
- Issue #24782: Extension configuration is now a tab in the IDLE Preferences
dialog rather than a separate dialog. The former tabs are now a sorted
list. Patch by Mark Roseman.
- Issue #22726: Re-activate the config dialog help button with some content
about the other buttons and the new IDLE Dark theme.
- Issue #24820: IDLE now has an 'IDLE Dark' built-in text color theme.
It is more or less IDLE Classic inverted, with a cobalt blue background.
Strings, comments, keywords, ... are still green, red, orange, ... .
To use it with IDLEs released before November 2015, hit the
'Save as New Custom Theme' button and enter a new name,
such as 'Custom Dark'. The custom theme will work with any IDLE
release, and can be modified.
- Issue #25224: README.txt is now an idlelib index for IDLE developers and
curious users. The previous user content is now in the IDLE doc chapter.
'IDLE' now means 'Integrated Development and Learning Environment'.
- Issue #24820: Users can now set breakpoint colors in
Settings -> Custom Highlighting. Original patch by Mark Roseman.
- Issue #24972: Inactive selection background now matches active selection
background, as configured by users, on all systems. Found items are now
always highlighted on Windows. Initial patch by Mark Roseman.
- Issue #24570: Idle: make calltip and completion boxes appear on Macs
affected by a tk regression. Initial patch by Mark Roseman.
- Issue #24988: Idle ScrolledList context menus (used in debugger)
now work on Mac Aqua. Patch by Mark Roseman.
- Issue #24801: Make right-click for context menu work on Mac Aqua.
Patch by Mark Roseman.
- Issue #25173: Associate tkinter messageboxes with a specific widget.
For Mac OSX, make them a 'sheet'. Patch by Mark Roseman.
- Issue #25198: Enhance the initial html viewer now used for Idle Help.
* Properly indent fixed-pitch text (patch by Mark Roseman).
* Give code snippet a very Sphinx-like light blueish-gray background.
* Re-use initial width and height set by users for shell and editor.
* When the Table of Contents (TOC) menu is used, put the section header
at the top of the screen.
- Issue #25225: Condense and rewrite Idle doc section on text colors.
- Issue #21995: Explain some differences between IDLE and console Python.
- Issue #22820: Explain need for *print* when running file from Idle editor.
- Issue #25224: Doc: augment Idle feature list and no-subprocess section.
- Issue #25219: Update doc for Idle command line options.
Some were missing and notes were not correct.
- Issue #24861: Most of idlelib is private and subject to change.
Use idleib.idle.* to start Idle. See idlelib.__init__.__doc__.
- Issue #25199: Idle: add synchronization comments for future maintainers.
- Issue #16893: Replace help.txt with help.html for Idle doc display.
The new idlelib/help.html is rstripped Doc/build/html/library/idle.html.
It looks better than help.txt and will better document Idle as released.
The tkinter html viewer that works for this file was written by Mark Roseman.
The now unused EditorWindow.HelpDialog class and helt.txt file are deprecated.
- Issue #24199: Deprecate unused idlelib.idlever with possible removal in 3.6.
- Issue #24790: Remove extraneous code (which also create 2 & 3 conflicts).
- Issue #23672: Allow Idle to edit and run files with astral chars in name.
Patch by Mohd Sanad Zaki Rizvi.
- Issue 24745: Idle editor default font. Switch from Courier to
platform-sensitive TkFixedFont. This should not affect current customized
font selections. If there is a problem, edit $HOME/.idlerc/config-main.cfg
and remove 'fontxxx' entries from [Editor Window]. Patch by Mark Roseman.
- Issue #21192: Idle editor. When a file is run, put its name in the restart bar.
Do not print false prompts. Original patch by Adnan Umer.
- Issue #13884: Idle menus. Remove tearoff lines. Patch by Roger Serwy.
- Issue #15809: IDLE shell now uses locale encoding instead of Latin1 for
decoding unicode literals.
Documentation
-------------
- Issue #24952: Clarify the default size argument of stack_size() in
the "threading" and "thread" modules. Patch from Mattip.
- Issue #20769: Improve reload() docs. Patch by Dorian Pula.
- Issue #23589: Remove duplicate sentence from the FAQ. Patch by Yongzhi Pan.
- Issue #22155: Add File Handlers subsection with createfilehandler to Tkinter
doc. Remove obsolete example from FAQ. Patch by Martin Panter.
Tests
-----
- Issue #24751: When running regrtest with the ``-w`` command line option,
a test run is no longer marked as a failure if all tests succeed when
re-run.
- PCbuild\rt.bat now accepts an unlimited number of arguments to pass along
to regrtest.py. Previously there was a limit of 9.
Build
-----
- Issue #24915: When doing a PGO build, the test suite is now used instead of
pybench; Clang support was also added as part off this work. Initial patch by
Alecsandru Patrascu of Intel.
- Issue #24986: It is now possible to build Python on Windows without errors
when external libraries are not available.
- Issue #24508: Backported the MSBuild project files from Python 3.5. The
backported files replace the old project files in PCbuild; the old files moved
to PC/VS9.0 and remain supported.
- Issue #24603: Update Windows builds and OS X 10.5 installer to use OpenSSL
1.0.2d.
Windows
-------
- Issue #25022: Removed very outdated PC/example_nt/ directory.
What's New in Python 2.7.10?
============================
*Release date: 2015-05-23*
Library
-------
- Issue #22931: Allow '[' and ']' in cookie values.
What's New in Python 2.7.10 release candidate 1?
================================================
*Release date: 2015-05-10*
Core and Builtins
-----------------
- Issue #23971: Fix underestimated presizing in dict.fromkeys().
- Issue #23757: PySequence_Tuple() incorrectly called the concrete list API
when the data was a list subclass.
- Issue #23629: Fix the default __sizeof__ implementation for variable-sized
objects.
- Issue #23055: Fixed a buffer overflow in PyUnicode_FromFormatV. Analysis
and fix by Guido Vranken.
- Issue #23048: Fix jumping out of an infinite while loop in the pdb.
Library
-------
- The keywords attribute of functools.partial is now always a dictionary.
- Issue #20274: When calling a _sqlite.Connection, it now complains if passed
any keyword arguments. Previously it silently ignored them.
- Issue #20274: Remove ignored and erroneous "kwargs" parameters from three
METH_VARARGS methods on _sqlite.Connection.
- Issue #24134: assertRaises() and assertRaisesRegexp() checks are not longer
successful if the callable is None.
- Issue #23008: Fixed resolving attributes with boolean value is False in pydoc.
- Issues #24099, #24100, and #24101: Fix use-after-free bug in heapq's siftup
and siftdown functions.
- Backport collections.deque fixes from Python 3.5. Prevents reentrant badness
during deletion by deferring the decref until the container has been restored
to a consistent state.
- Issue #23842: os.major(), os.minor() and os.makedev() now support ints again.
- Issue #23811: Add missing newline to the PyCompileError error message.
Patch by Alex Shkop.
- Issue #17898: Fix exception in gettext.py when parsing certain plural forms.
- Issue #23865: close() methods in multiple modules now are idempotent and more
robust at shutdown. If they need to release multiple resources, all are
released even if errors occur.
- Issue #23881: urllib.ftpwrapper constructor now closes the socket if the FTP
connection failed.
- Issue #15133: _tkinter.tkapp.getboolean() now supports long and Tcl_Obj and
always returns bool. tkinter.BooleanVar now validates input values (accepted
bool, int, long, str, unicode, and Tcl_Obj). tkinter.BooleanVar.get() now
always returns bool.
- Issue #23338: Fixed formatting ctypes error messages on Cygwin.
Patch by Makoto Kato.
- Issue #16840: Tkinter now supports 64-bit integers added in Tcl 8.4 and
arbitrary precision integers added in Tcl 8.5.
- Issue #23834: Fix socket.sendto(), use the C long type to store the result of
sendto() instead of the C int type.
- Issue #21526: Tkinter now supports new boolean type in Tcl 8.5.
- Issue #23838: linecache now clears the cache and returns an empty result on
MemoryError.
- Issue #23742: ntpath.expandvars() no longer loses unbalanced single quotes.
- Issue #21802: The reader in BufferedRWPair now is closed even when closing
writer failed in BufferedRWPair.close().
- Issue #23671: string.Template now allows to specify the "self" parameter as
keyword argument. string.Formatter now allows to specify the "self" and
the "format_string" parameters as keyword arguments.
- Issue #21560: An attempt to write a data of wrong type no longer cause
GzipFile corruption. Original patch by Wolfgang Maier.
- Issue #23647: Increase impalib's MAXLINE to accommodate modern mailbox sizes.
- Issue #23539: If body is None, http.client.HTTPConnection.request now sets
Content-Length to 0 for PUT, POST, and PATCH headers to avoid 411 errors from
some web servers.
- Issue #23136: _strptime now uniformly handles all days in week 0, including
Dec 30 of previous year. Based on patch by Jim Carroll.
- Issue #23138: Fixed parsing cookies with absent keys or values in cookiejar.
Patch by Demian Brecht.
- Issue #23051: multiprocessing.Pool methods imap() and imap_unordered() now
handle exceptions raised by an iterator. Patch by Alon Diamant and Davin
Potts.
- Issue #22928: Disabled HTTP header injections in httplib.
Original patch by Demian Brecht.
- Issue #23615: Module tarfile is now can be reloaded with imp.reload().
- Issue #22853: Fixed a deadlock when use multiprocessing.Queue at import time.
Patch by Florian Finkernagel and Davin Potts.
- Issue #23476: In the ssl module, enable OpenSSL's X509_V_FLAG_TRUSTED_FIRST
flag on certificate stores when it is available.
- Issue #23576: Avoid stalling in SSL reads when EOF has been reached in the
SSL layer but the underlying connection hasn't been closed.
- Issue #23504: Added an __all__ to the types module.
- Issue #23458: On POSIX, the file descriptor kept open by os.urandom() is now
set to non inheritable
- Issue #22113: struct.pack_into() now supports new buffer protocol (in
particular accepts writable memoryview).
- Issues #814253, #9179: Warnings now are raised when group references and
conditional group references are used in lookbehind assertions in regular
expressions.
- Issue #23215: Multibyte codecs with custom error handlers that ignores errors
consumed too much memory and raised SystemError or MemoryError.
Original patch by Aleksi Torhamo.
- Issue #5700: io.FileIO() called flush() after closing the file.
flush() was not called in close() if closefd=False.
- Issue #21548: Fix pydoc.synopsis() and pydoc.apropos() on modules with empty
docstrings. Initial patch by Yuyang Guo.
- Issue #22885: Fixed arbitrary code execution vulnerability in the dumbdbm
module. Original patch by Claudiu Popa.
- Issue #23481: Remove RC4 from the SSL module's default cipher list.
- Issue #21849: Fixed xmlrpclib serialization of non-ASCII unicode strings in
the multiprocessing module.
- Issue #21840: Fixed expanding unicode variables of form $var in
posixpath.expandvars(). Fixed all os.path implementations on
unicode-disabled builds.
- Issue #23367: Fix possible overflows in the unicodedata module.
- Issue #23363: Fix possible overflow in itertools.permutations.
- Issue #23364: Fix possible overflow in itertools.product.
- Issue #23365: Fixed possible integer overflow in
itertools.combinations_with_replacement.
- Issue #23366: Fixed possible integer overflow in itertools.combinations.
- Issue #23191: fnmatch functions that use caching are now threadsafe.
- Issue #18518: timeit now rejects statements which can't be compiled outside
a function or a loop (e.g. "return" or "break").
- Issue #19996: Make :mod:`httplib` ignore headers with no name rather than
assuming the body has started.
- Issue #20188: Support Application-Layer Protocol Negotiation (ALPN) in the ssl
module.
- Issue #23248: Update ssl error codes from latest OpenSSL git master.
- Issue #23098: 64-bit dev_t is now supported in the os module.
- Issue #23063: In the disutils' check command, fix parsing of reST with code or
code-block directives.
- Issue #21356: Make ssl.RAND_egd() optional to support LibreSSL. The
availability of the function is checked during the compilation. Patch written
by Bernard Spil.
- Backport the context argument to ftplib.FTP_TLS.
- Issue #23111: Maximize compatibility in protocol versions of ftplib.FTP_TLS.
- Issue #23112: Fix SimpleHTTPServer to correctly carry the query string and
fragment when it redirects to add a trailing slash.
- Issue #22585: On OpenBSD 5.6 and newer, os.urandom() now calls getentropy(),
instead of reading /dev/urandom, to get pseudo-random bytes.
- Issue #23093: In the io, module allow more operations to work on detached
streams.
- Issue #23071: Added missing names to codecs.__all__. Patch by Martin Panter.
- Issue #23016: A warning no longer produces an AttributeError when sys.stderr
is None.
- Issue #21032. Fixed socket leak if HTTPConnection.getresponse() fails.
Original patch by Martin Panter.
- Issue #22609: Constructors and update methods of mapping classes in the
collections module now accept the self keyword argument.
Documentation
-------------
- Issue #23006: Improve the documentation and indexing of dict.__missing__.
Add an entry in the language datamodel special methods section.
Revise and index its discussion in the stdtypes mapping/dict section.
Backport the code example from 3.4.
- Issue #21514: The documentation of the json module now refers to new JSON RFC
7159 instead of obsoleted RFC 4627.
Tools/Demos
-----------
- Issue #23330: h2py now supports arbitrary filenames in #include.
- Issue #6639: Module-level turtle functions no longer raise TclError after
closing the window.
- Issue #22314: pydoc now works when the LINES environment variable is set.
- Issue #18905: "pydoc -p 0" now outputs actually used port. Based on patch by
Wieland Hoffmann.
- Issue #23345: Prevent test_ssl failures with large OpenSSL patch level
values (like 0.9.8zc).
Tests
-----
- Issue #23799: Added test.test_support.start_threads() for running and
cleaning up multiple threads.
- Issue #22390: test.regrtest now emits a warning if temporary files or
directories are left after running a test.
- Issue #23583: Added tests for standard IO streams in IDLE.
- Issue #23392: Added tests for marshal C API that works with FILE*.
- Issue #18982: Add tests for CLI of the calendar module.
- Issue #19949: The test_xpickle test now tests compatibility with installed
Python 2.7 and reports skipped tests. Based on patch by Zachary Ware.
- Issue #11578: Backported test for the timeit module.
- Issue #22943: bsddb tests are locale independend now.
IDLE
----
- Issue #23583: Fixed writing unicode to standard output stream in IDLE.
- Issue #20577: Configuration of the max line length for the FormatParagraph
extension has been moved from the General tab of the Idle preferences dialog
to the FormatParagraph tab of the Config Extensions dialog.
Patch by Tal Einat.
- Issue #16893: Update Idle doc chapter to match current Idle and add new
information.
- Issue #23180: Rename IDLE "Windows" menu item to "Window".
Patch by Al Sweigart.
Build
-----
- Issue #15506: Use standard PKG_PROG_PKG_CONFIG autoconf macro in the configure
script.
- Issue #23032: Fix installer build failures on OS X 10.4 Tiger
by disabling assembly code in the OpenSSL build.
- Issue #23686: Update OS X 10.5 installer and Windows builds to use
OpenSSL 1.0.2a.
C API
-----
- Issue #23998: PyImport_ReInitLock() now checks for lock allocation error
- Issue #22079: PyType_Ready() now checks that statically allocated type has
no dynamically allocated bases.
What's New in Python 2.7.9?
===========================
*Release date: 2014-12-10*
Library
-------
- Issue #22959: Remove the *check_hostname* parameter of
httplib.HTTPSConnection. The *context* parameter should be used instead.
- Issue #16043: Add a default limit for the amount of data xmlrpclib.gzip_decode
will return. This resolves CVE-2013-1753.
- Issue #16042: CVE-2013-1752: smtplib: Limit amount of data read by limiting
the call to readline(). Original patch by Christian Heimes.
- Issue #16041: In poplib, limit maximum line length read from the server to
prevent CVE-2013-1752.
- Issue #22960: Add a context argument to xmlrpclib.ServerProxy.
Build
-----
- Issue #22935: Allow the ssl module to be compiled if openssl doesn't support
SSL 3.
- Issue #17128: Use private version of OpenSSL for 2.7.9 OS X 10.5+ installer.
What's New in Python 2.7.9 release candidate 1?
===============================================
*Release date: 2014-11-25*
Core and Builtins
-----------------
- Issue #21963: backout issue #1856 patch (avoid crashes and lockups when
daemon threads run while the interpreter is shutting down; instead, these
threads are now killed when they try to take the GIL), as it seems to
break some existing code.
- Issue #22604: Fix assertion error in debug mode when dividing a complex
number by (nan+0j).
- Issue #22470: Fixed integer overflow issues in "backslashreplace" and
"xmlcharrefreplace" error handlers.
- Issue #22526: Fix iterating through files with lines longer than 2^31 bytes.
- Issue #22519: Fix overflow checking in PyString_Repr.
- Issue #22518: Fix integer overflow issues in latin-1 encoding.
- Issue #22379: Fix empty exception message in a TypeError raised in
``str.join``.
- Issue #22221: Now the source encoding declaration on the second line isn't
effective if the first line contains anything except a comment.
- Issue #22023: Fix ``%S``, ``%R`` and ``%V`` formats of
:c:func:`PyUnicode_FromFormat`.
- Issue #21591: Correctly handle qualified exec statements in tuple form by
moving compatibility layer from run-time to AST transformation.
Library
-------
- Issue #22417: Verify certificates by default in httplib (PEP 476).
- Issue #22927: Allow urllib.urlopen to take a *context* parameter to control
SSL settings for HTTPS connections.
- Issue #22921: Allow SSLContext to take the *hostname* parameter even if
OpenSSL doesn't support SNI.
- Issue #9003 and #22366: httplib.HTTPSConnection, urllib2.HTTPSHandler and
urllib2.urlopen now take optional arguments to allow for server certificate
checking, as recommended in public uses of HTTPS. This backport is part of PEP
467.
- Issue #12728: Different Unicode characters having the same uppercase but
different lowercase are now matched in case-insensitive regular expressions.
- Issue #22821: Fixed fcntl() with integer argument on 64-bit big-endian
platforms.
- Issue #17293: uuid.getnode() now determines MAC address on AIX using netstat.
Based on patch by Aivars Kalvāns.
- Issue #22769: Fixed ttk.Treeview.tag_has() when called without arguments.
- Issue #22787: Allow the keyfile argument of SSLContext.load_cert_chain to be
None.
- Issue #22775: Fixed unpickling of Cookie.SimpleCookie with protocol 2.
Patch by Tim Graham.
- Issue #22776: Brought excluded code into the scope of a try block in
SysLogHandler.emit().
- Issue #17381: Fixed ranges handling in case-insensitive regular expressions.
- Issue #19329: Optimized compiling charsets in regular expressions.
- Issue #22410: Module level functions in the re module now cache compiled
locale-dependent regular expressions taking into account the locale.
- Issue #8876: distutils now falls back to copying files when hard linking
doesn't work. This allows use with special filesystems such as VirtualBox
shared folders.
- Issue #9351: Defaults set with set_defaults on an argparse subparser
are no longer ignored when also set on the parent parser.
- Issue #20421: Add a .version() method to SSL sockets exposing the actual
protocol version in use.
- Issue #22435: Fix a file descriptor leak when SocketServer bind fails.
- Issue #13664: GzipFile now supports non-ascii Unicode filenames.
- Issue #13096: Fixed segfault in CTypes POINTER handling of large
values.
- Issue #11694: Raise ConversionError in xdrlib as documented. Patch
by Filip Gruszczyński and Claudiu Popa.
- Issue #1686: Fix string.Template when overriding the pattern attribute.
- Issue #11866: Eliminated race condition in the computation of names
for new threads.
- Issue #22219: The zipfile module CLI now adds entries for directories
(including empty directories) in ZIP file.
- Issue #22449: In the ssl.SSLContext.load_default_certs, consult the
enviromental variables SSL_CERT_DIR and SSL_CERT_FILE on Windows.
- Issue #8473: doctest.testfile now uses universal newline mode to read
the test file.
- Issue #20076: Added non derived UTF-8 aliases to locale aliases table.
- Issue #20079: Added locales supported in glibc 2.18 to locale alias table.
- Issue #22530: Allow the ``group()`` method of regular expression match objects
to take a ``long`` as an index.
- Issue #22517: When a io.BufferedRWPair object is deallocated, clear its
weakrefs.
- Issue #10510: distutils register and upload methods now use HTML standards
compliant CRLF line endings.
- Issue #9850: Fixed macpath.join() for empty first component. Patch by
Oleg Oshmyan.
- Issue #20912: Now directories added to ZIP file have correct Unix and MS-DOS
directory attributes.
- Issue #21866: ZipFile.close() no longer writes ZIP64 central directory
records if allowZip64 is false.
- Issue #22415: Fixed debugging output of the GROUPREF_EXISTS opcode in the re
module.
- Issue #22423: Unhandled exception in thread no longer causes unhandled
AttributeError when sys.stderr is None.
- Issue #22419: Limit the length of incoming HTTP request in wsgiref server to
65536 bytes and send a 414 error code for higher lengths. Patch contributed
by Devin Cook.
- Lax cookie parsing in http.cookies could be a security issue when combined
with non-standard cookie handling in some Web browsers. Reported by
Sergey Bobrov.
- Issue #21147: sqlite3 now raises an exception if the request contains a null
character instead of truncate it. Based on patch by Victor Stinner.
- Issue #21951: Fixed a crash in Tkinter on AIX when called Tcl command with
empty string or tuple argument.
- Issue #21951: Tkinter now most likely raises MemoryError instead of crash
if the memory allocation fails.
- Issue #22226: First letter no longer is stripped from the "status" key in
the result of Treeview.heading().
- Issue #22051: turtledemo no longer reloads examples to re-run them.
Initialization of variables and gui setup should be done in main(),
which is called each time a demo is run, but not on import.
- Issue #21597: The separator between the turtledemo text pane and the drawing
canvas can now be grabbed and dragged with a mouse. The code text pane can
be widened to easily view or copy the full width of the text. The canvas
can be widened on small screens. Original patches by Jan Kanis and Lita Cho.
- Issue #18132: Turtledemo buttons no longer disappear when the window is
shrunk. Original patches by Jan Kanis and Lita Cho.
- Issue #22312: Fix ntpath.splitdrive IndexError.
- Issue #22216: smtplib now resets its state more completely after a quit. The
most obvious consequence of the previous behavior was a STARTTLS failure
during a connect/starttls/quit/connect/starttls sequence.
- Issue #21305: os.urandom now caches a fd to /dev/urandom. This is a PEP 466
backport from Python 3.
- Issue #21307: As part of PEP 466, backport hashlib.algorithms_guaranteed and
hashlib.algorithms_available.
- Issue #22259: Fix segfault when attempting to fopen a file descriptor
corresponding to a directory.
- Issue #22236: Fixed Tkinter images copying operations in NoDefaultRoot mode.
- Issue #22191: Fixed warnings.__all__.
- Issue #21308: Backport numerous features from Python's ssl module. This is
part of PEP 466.
- Issue #15696: Add a __sizeof__ implementation for mmap objects on Windows.
- Issue #8797: Raise HTTPError on failed Basic Authentication immediately.
Initial patch by Sam Bull.
- Issue #22068: Avoided reference loops with Variables and Fonts in Tkinter.
- Issue #21448: Changed FeedParser feed() to avoid O(N**2) behavior when
parsing long line. Original patch by Raymond Hettinger.
- Issue #17923: glob() patterns ending with a slash no longer match non-dirs on
AIX. Based on patch by Delhallt.
- Issue #21975: Fixed crash when using uninitialized sqlite3.Row (in particular
when unpickling pickled sqlite3.Row). sqlite3.Row is now initialized in the
__new__() method.
- Issue #16037: HTTPMessage.readheaders() raises an HTTPException when more
than 100 headers are read. Patch by Jyrki Pulliainen and Daniel Eriksson.
- Issue #21580: Now Tkinter correctly handles binary "data" and "maskdata"
configure options of tkinter.PhotoImage.
- Issue #19612: subprocess.communicate() now also ignores EINVAL when using at
least two pipes.
- Fix repr(_socket.socket) on Windows 64-bit: don't fail with OverflowError
on closed socket.
- Issue #16133: The asynchat.async_chat.handle_read() method now ignores
socket.error() exceptions with blocking I/O errors: EAGAIN, EALREADY,
EINPROGRESS, or EWOULDBLOCK.
- Issue #21990: Clean-up unnecessary and slow inner class definition in
saxutils (Contributed by Alex Gaynor).
- Issue #1730136: Fix the comparison between a tkFont.Font and an object of
another kind.
- Issue #19884: readline: Disable the meta modifier key if stdout is not
a terminal to not write the ANSI sequence "\033[1034h" into stdout. This
sequence is used on some terminal (ex: TERM=xterm-256color") to enable
support of 8 bit characters.
- Issue #22017: Correct reference counting errror in the initialization of the
_warnings module.
- Issue #21868: Prevent turtle crash when undo buffer set to a value less
than one.
- Issue #21151: Fixed a segfault in the _winreg module when ``None`` is passed
as a ``REG_BINARY`` value to SetValueEx. Patch by John Ehresman.
- Issue #21090: io.FileIO.readall() does not ignore I/O errors anymore. Before,
it ignored I/O errors if at least the first C call read() succeed.
- Issue #19870: BaseCookie now parses 'secure' and 'httponly' flags.
Backport of issue #16611.
- Issue #21923: Prevent AttributeError in distutils.sysconfig.customize_compiler
due to possible uninitialized _config_vars.
- Issue #21323: Fix CGIHTTPServer to again handle scripts in CGI subdirectories,
broken by the fix for security issue #19435. Patch by Zach Byrne.
- Issue #22199: Make get_makefile_filename() available in Lib/sysconfig.py