-
-
Notifications
You must be signed in to change notification settings - Fork 34.5k
Expand file tree
/
Copy pathNEWS
More file actions
6170 lines (4102 loc) · 234 KB
/
NEWS
File metadata and controls
6170 lines (4102 loc) · 234 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 3.3.4 release candidate 1?
===============================================
*Not yet released, see sections below for changes released in 3.3.3*
Core and Builtins
-----------------
- Issue #19729: In str.format(), fix recursive expansion in format spec.
- Issue #19638: Fix possible crash / undefined behaviour from huge (more than 2
billion characters) input strings in _Py_dg_strtod.
Library
-------
- Issue #19839: Fix regression in bz2 module's handling of non-bzip2 data at
EOF, and analogous bug in lzma module.
- Issue #19138: doctest's IGNORE_EXCEPTION_DETAIL now allows a match when
no exception detail exists (no colon following the exception's name, or
a colon does follow but no text follows the colon).
- Issue #19834: Support unpickling of exceptions pickled by Python 2.
- Issue #15798: Fixed subprocess.Popen() to no longer fail if file
descriptor 0, 1 or 2 is closed.
- Issue #19088: Fixed incorrect caching of the copyreg module in
object.__reduce__() and object.__reduce_ex__().
- Fixed _pickle.Unpickler to not fail when loading empty strings as
persistent IDs.
- Issue #11480: Fixed copy.copy to work with classes with custom metaclasses.
Patch by Daniel Urban.
- Issue #6477: Added support for pickling the types of built-in singletons
(i.e., Ellipsis, NotImplemented, None).
- Issue #11508: Fixed uuid.getnode() and uuid.uuid1() on environment with
virtual interface. Original patch by Kent Frazier.
- Issue #11489: JSON decoder now accepts lone surrogates.
- Issue #19545: Avoid chained exceptions while passing stray % to
time.strptime(). Initial patch by Claudiu Popa.
- Issue #19633: Fixed writing not compressed 16- and 32-bit wave files on
big-endian platforms.
- Issue #19449: in csv's writerow, handle non-string keys when generating the
error message that certain keys are not in the 'fieldnames' list.
- Fix test.support.bind_port() to not cause an error when Python was compiled
on a system with SO_REUSEPORT defined in the headers but run on a system
with an OS kernel that does not support that reasonably new socket option.
- Fix compilation error under gcc of the ctypes module bundled libffi for arm.
- Issue #19523: Closed FileHandler leak which occurred when delay was set.
- Issue #13674: Prevented time.strftime from crashing on Windows when given
a year before 1900 and a format of %y.
- Issue #19544 and Issue #6286: Restore use of urllib over http allowing use
of http_proxy for Distutils upload command, a feature accidentally lost
in the rollback of distutils2.
- Issue #19544 and Issue #7457: Restore the read_pkg_file method to
distutils.dist.DistributionMetadata accidentally removed in the undo of
distutils2.
- Issue #1575020: Fixed support of 24-bit wave files on big-endian platforms.
- Issue #19480: HTMLParser now accepts all valid start-tag names as defined
by the HTML5 standard.
- Issue #6157: Fixed tkinter.Text.debug(). Original patch by Guilherme Polo.
- Issue #6160: The bbox() method of tkinter.Spinbox now returns a tuple of
integers instead of a string. Based on patch by Guilherme Polo.
- Issue #10197: Rework subprocess.get[status]output to use subprocess
functionality and thus to work on Windows. Patch by Nick Coghlan.
- Issue #19286: Directories in ``package_data`` are no longer added to
the filelist, preventing failure outlined in the ticket.
Tests
-----
- Issue #19595: Re-enabled a long-disabled test in test_winsound.
- Issue #19588: Fixed tests in test_random that were silently skipped most
of the time. Patch by Julian Gindi.
- Issue #19596: Set untestable tests in test_importlib to None to avoid
reporting success on empty tests.
- Issue #19440: Clean up test_capi by removing an unnecessary __future__
import, converting from test_main to unittest.main, and running the
_testcapi module tests within a unittest TestCase.
- Issue #18702: All skipped tests now reported as skipped.
- Issue #19085: Added basic tests for all tkinter widget options.
Documentation
-------------
- Issue #18840: Introduce the json module in the tutorial, and deemphasize
the pickle module.
- Issue #19845: Updated the Compiling Python on Windows section.
- Issue #19795: Improved markup of True/False constants.
- Issue #18326: Clarify that list.sort's arguments are keyword-only. Also,
attempt to reduce confusion in the glossary by not saying there are
different "types" of arguments and parameters.
Build
-----
- Issue #19788: kill_python(_d).exe is now run as a PreBuildEvent on the
pythoncore sub-project. This should prevent build errors due a previous
build's python(_d).exe still running.
- Add workaround for VS 2010 nmake clean issue. VS 2010 doesn't set up PATH
for nmake.exe correctly.
What's New in Python 3.3.3?
===========================
*Release date: 17-Nov-2013*
No changes from release candidate 2.
What's New in Python 3.3.3 release candidate 2?
===============================================
*Release date: 11-Nov-2013*
Library
-------
- Issue #19227: Any re-seeding of the OpenSSL RNG on fork has been removed;
this should be handled by OpenSSL itself or by the application.
- Issue #19435: Fix directory traversal attack on CGIHttpRequestHandler.
Tests
-----
- Issue #18964: Fix test_tcl when run with Tcl/Tk versions < 8.5.
Build
-----
- Issue #15663: Revert OS X installer built-in Tcl/Tk support for 3.3.3.
Some third-party projects, such as Matplotlib and PIL/Pillow,
depended on being able to build with Tcl and Tk frameworks in
/Library/Frameworks.
What's New in Python 3.3.3 release candidate 1?
===============================================
*Release date: 27-Oct-2013*
Core and Builtins
-----------------
- Issue #18603: Ensure that PyOS_mystricmp and PyOS_mystrnicmp are in the
Python executable and not removed by the linker's optimizer.
- Issue #19279: UTF-7 decoder no more produces illegal strings.
- Fix macro expansion of _PyErr_OCCURRED(), and make sure to use it in at
least one place so as to avoid regressions.
- Issue #19014: memoryview.cast() is now allowed on zero-length views.
- Issue #19098: Prevent overflow in the compiler when the recursion limit is set
absurdly high.
- Issue #18942: sys._debugmallocstats() output was damaged on Windows.
- Issue #18667: Add missing "HAVE_FCHOWNAT" symbol to posix._have_functions.
- Issue #18368: PyOS_StdioReadline() no longer leaks memory when realloc()
fails.
- Issue #16741: Fix an error reporting in int().
- Issue #17899: Fix rare file descriptor leak in os.listdir().
- Issue #18552: Check return value of PyArena_AddPyObject() in
obj2ast_object().
- Issue #18560: Fix potential NULL pointer dereference in sum().
- Issue #15905: Fix theoretical buffer overflow in handling of sys.argv[0],
prefix and exec_prefix if the operation system does not obey MAXPATHLEN.
- Issue #18344: Fix potential ref-leaks in _bufferedreader_read_all().
- Issue #17872: Fix a segfault in marshal.load() when input stream returns
more bytes than requested.
- Issue #18426: Fix NULL pointer dereference in C extension import when
PyModule_GetDef() returns an error.
- Issue #18328: Reorder ops in PyThreadState_Delete*() functions. Now the
tstate is first removed from TLS and then deallocated.
- Issue #18184: PyUnicode_FromFormat() and PyUnicode_FromFormatV() now raise
OverflowError when an argument of %c format is out of range.
- Issue #18137: Detect integer overflow on precision in float.__format__()
and complex.__format__().
- Issue #18183: Fix various unicode operations on strings with large unicode
codepoints.
- Issue #18180: Fix ref leak in _PyImport_GetDynLoadWindows().
- Issue #18038: SyntaxError raised during compilation sources with illegal
encoding now always contains an encoding name.
- Issue #17644: Fix a crash in str.format when curly braces are used in square
brackets.
- Issue #17983: Raise a SyntaxError for a ``global __class__`` statement in a
class body.
- Issue #17927: Frame objects kept arguments alive if they had been copied into
a cell, even if the cell was cleared.
Library
-------
- Issue #19395: Raise an exception when attempting to pickle a bz2 or lzma
compressor/decompressor object, rather than creating a pickle that would
cause a segfault when loaded and used.
- Issue #19227: Try to fix deadlocks caused by re-seeding then OpenSSL
pseudo-random number generator on fork().
- Issue #16037: HTTPMessage.readheaders() raises an HTTPException when more than
100 headers are read. Adapted from patch by Jyrki Pulliainen.
- Issue #16040: CVE-2013-1752: nntplib: Limit maximum line lengths to 2048 to
prevent readline() calls from consuming too much memory. Patch by Jyrki
Pulliainen.
- Issue #16041: CVE-2013-1752: poplib: Limit maximum line lengths to 2048 to
prevent readline() calls from consuming too much memory. Patch by Jyrki
Pulliainen.
- Issue #17997: Change behavior of ``ssl.match_hostname()`` to follow RFC 6125,
for security reasons. It now doesn't match multiple wildcards nor wildcards
inside IDN fragments.
- Issue #16039: CVE-2013-1752: Change use of readline in imaplib module to limit
line length. Patch by Emil Lind.
- Issue #19393: Fix symtable.symtable function to not be confused when there are
functions or classes named "top".
- Issue #19339: telnetlib module is now using time.monotonic() when available
to compute timeout.
- Issue #19288: Fixed the "in" operator of dbm.gnu databases for string
argument. Original patch by Arfrever Frehtes Taifersar Arahesis.
- Issue #19287: Fixed the "in" operator of dbm.ndbm databases for string
argument. Original patch by Arfrever Frehtes Taifersar Arahesis.
- Issue #19327: Fixed the working of regular expressions with too big charset.
- Issue #19350: Increasing the test coverage of macurl2path. Patch by Colin
Williams.
- Issue #19352: Fix unittest discovery when a module can be reached
through several paths (e.g. under Debian/Ubuntu with virtualenv).
- Issue #15207: Fix mimetypes to read from correct part of Windows registry
Original patch by Dave Chambers
- Issue #8964: fix platform._sys_version to handle IronPython 2.6+.
Patch by Martin Matusiak.
- Issue #16038: CVE-2013-1752: ftplib: Limit amount of data read by
limiting the call to readline(). Original patch by Michał
Jastrzębski and Giampaolo Rodola.
- Issue #18235: Fix the sysconfig variables LDSHARED and BLDSHARED under AIX.
Patch by David Edelsohn.
- Issue #19276: Fixed the wave module on 64-bit big-endian platforms.
- Issue #18776: atexit callbacks now display their full traceback when they
raise an exception.
- Issue #17827: Add the missing documentation for ``codecs.encode`` and
``codecs.decode``.
- Issue #18458: Prevent crashes with newer versions of libedit. Its readline
emulation has changed from 0-based indexing to 1-based like gnu readline.
Original patch by Ronald Oussoren.
- Issue #18919: If the close() method of a writer in the sunau or wave module
failed, second invocation of close() and destructor no more raise an
exception.
- Issue #19131: The aifc module now correctly reads and writes sampwidth of
compressed streams.
- Issue #19158: a rare race in BoundedSemaphore could allow .release() too
often.
- Issue #18037: 2to3 now escapes '\u' and '\U' in native strings.
- Issue #19137: The pprint module now correctly formats instances of set and
frozenset subclasses.
- Issue #19092: contextlib.ExitStack now correctly reraises exceptions
from the __exit__ callbacks of inner context managers (Patch by Hrvoje
Nikšić)
- Issue #12641: Avoid passing "-mno-cygwin" to the mingw32 compiler, except
when necessary. Patch by Oscar Benjamin.
- Issue #18594: The fast path for collections.Counter() was never taken
due to an over-restrictive type check. And the fallback path did
not implement the same algorithm as the pure python code.
- Properly initialize all fields of a SSL object after allocation.
- Issue #4366: Fix building extensions on all platforms when --enable-shared
is used.
- Issue #18950: Fix miscellaneous bugs in the sunau module.
Au_read.readframes() now updates current file position and reads correct
number of frames from multichannel stream. Au_write.writeframesraw() now
correctly updates current file position. Au_read.getnframes() now returns an
integer (as in Python 2). Au_read and Au_write now correctly works with file
object if start file position is not a zero.
- Issue #19053: ZipExtFile.read1() with non-zero argument no more returns empty
bytes until end of data.
- Issue #19028: Fixed tkinter.Tkapp.merge() for non-string arguments.
- Issue #3015: Fixed tkinter with wantobject=False. Any Tcl command call
returned empty string.
- Issue #18050: Fixed an incompatibility of the re module with Python 3.3.0
binaries.
- Issue #19037: The mailbox module now makes all changes to maildir files
before moving them into place, to avoid race conditions with other programs
that may be accessing the maildir directory.
- Issue #14984: On POSIX systems, when netrc is called without a filename
argument (and therefore is reading the user's $HOME/.netrc file), it now
enforces the same security rules as typical ftp clients: the .netrc file must
be owned by the user that owns the process and must not be readable by any
other user.
- Issue #18873: The tokenize module now detects Python source code encoding
only in comment lines.
- Issue #17324: Fix http.server's request handling case on trailing '/'. Patch
contributed by Vajrasky Kok.
- Issue #19018: The heapq.merge() function no longer suppresses IndexError
in the underlying iterables.
- Issue #18784: The uuid module no more attempts to load libc via ctypes.CDLL,
if all necessary functions are already found in libuuid.
Patch by Evgeny Sologubov.
- Issue #18672: Fixed format specifiers for Py_ssize_t in debugging output in
the _sre module.
- Issue #18830: inspect.getclasstree() no more produces duplicated entries even
when input list contains duplicates.
- Issue #18909: Fix _tkinter.tkapp.interpaddr() on Windows 64-bit, don't cast
64-bit pointer to long (32 bits).
- Issue #18876: The FileIO.mode attribute now better reflects the actual mode
under which the file was opened. Patch by Erik Bray.
- Issue #18418: After fork(), reinit all threads states, not only active ones.
Patch by A. Jesse Jiryu Davis.
- Issue #16611: http.cookie now correctly parses the 'secure' and 'httponly'
cookie flags.
- Issue #11973: Fix a problem in kevent. The flags and fflags fields are now
properly handled as unsigned.
- Issue #17702: On error, os.environb now removes suppress the except context
when raising a new KeyError with the original key.
- Issue #18755: Fixed the loader used in imp to allow get_data() to be called
multiple times.
- Issue #16809: Fixed some tkinter incompabilities with Tcl/Tk 8.6.
- Issue #16809: Tkinter's splitlist() and split() methods now accept Tcl_Obj
argument.
- Issue #18324: set_payload now correctly handles binary input. This also
supersedes the previous fixes for #14360, #1717, and #16564.
- Issue #17119: Fixed integer overflows when processing large strings and tuples
in the tkinter module.
- Issue #18747: Re-seed OpenSSL's pseudo-random number generator after fork.
A pthread_atfork() parent handler is used to seed the PRNG with pid, time
and some stack data.
- Issue #8865: Concurrent invocation of select.poll.poll() now raises a
RuntimeError exception. Patch by Christian Schubert.
- Issue #13461: Fix a crash in the TextIOWrapper.tell method on 64-bit
platforms. Patch by Yogesh Chaudhari.
- Issue #18777: The ssl module now uses the new CRYPTO_THREADID API of
OpenSSL 1.0.0+ instead of the deprecated CRYPTO id callback function.
- Issue #18768: Correct doc string of RAND_edg(). Patch by Vajrasky Kok.
- Issue #18178: Fix ctypes on BSD. dlmalloc.c was compiled twice which broke
malloc weak symbols.
- Issue #18709: Fix CVE-2013-4238. The SSL module now handles NULL bytes
inside subjectAltName correctly. Formerly the module has used OpenSSL's
GENERAL_NAME_print() function to get the string represention of ASN.1
strings for ``rfc822Name`` (email), ``dNSName`` (DNS) and
``uniformResourceIdentifier`` (URI).
- Issue #18756: Improve error reporting in os.urandom() when the failure
is due to something else than /dev/urandom not existing (for example,
exhausting the file descriptor limit).
- Issue #18405: Improve the entropy of crypt.mksalt().
- Issue #19151: Fix docstring and use of _get_supported_file_loaders() to
reflect 2-tuples.
- Issue #18676: Change 'positive' to 'non-negative' in queue.py put and get
docstrings and ValueError messages. Patch by Zhongyue Luo
- Issue #18681: Fix a NameError in imp.reload() (noticed by Weizhao Li).
- Issue #8112: xlmrpc.server's DocXMLRPCServer server no longer raises an error
if methods have annotations; it now correctly displays the annotations.
- Issue #17998: Fix an internal error in regular expression engine.
- Issue #17557: Fix os.getgroups() to work with the modified behavior of
getgroups(2) on OS X 10.8. Original patch by Mateusz Lenik.
- Issue #18599: Fix name attribute of _sha1.sha1() object. It now returns
'SHA1' instead of 'SHA'.
- Issue #18561: Skip name in ctypes' _build_callargs() if name is NULL.
- Issue #18559: Fix NULL pointer dereference error in _pickle module
- Issue #18556: Check the return value of a PyUnicode_AsWideChar() call in
ctypes' U_set().
- Issue #18549: Eliminate dead code in socket_ntohl()
- Issue #18514: Fix unreachable Py_DECREF() call in PyCData_FromBaseObj()
- Issue #18513: Fix behaviour of cmath.rect w.r.t. signed zeros on OS X 10.8 +
gcc.
- Issue #18480: Add missing call to PyType_Ready to the _elementtree extension.
- Issue #17778: Fix test discovery for test_multiprocessing. (Patch by
Zachary Ware.)
- Issue #18431: The new email header parser now decodes RFC2047 encoded words
in structured headers.
- Issue #18432: The sched module's queue method was incorrectly returning
an iterator instead of a list.
- Issue #18044: The new email header parser was mis-parsing encoded words where
an encoded character immediately followed the '?' that follows the CTE
character, resulting in a decoding failure. They are now decoded correctly.
- Issue #18101: Tcl.split() now process strings nested in a tuple as it
do with byte strings.
- Issue #17198: Fix a NameError in the dbm module. Patch by Valentina
Mukhamedzhanova.
- Issue #18013: Fix cgi.FieldStorage to parse the W3C sample form.
- Issue #18347: ElementTree's html serializer now preserves the case of
closing tags.
- Issue #17261: Ensure multiprocessing's proxies use proper address.
- Issue #18343: faulthandler.register() now keeps the previous signal handler
when the function is called twice, so faulthandler.unregister() restores
correctly the original signal handler.
- Issue #17097: Make multiprocessing ignore EINTR.
- Issue #18339: Negative ints keys in unpickler.memo dict no longer cause a
segfault inside the _pickle C extension.
- Issue #18224: Removed pydoc script from created venv, as it causes problems
on Windows and adds no value over and above python -m pydoc ...
- Issue #18155: The csv module now correctly handles csv files that use
a delimter character that has a special meaning in regexes, instead of
throwing an exception.
- Issue #14360: encode_quopri can now be successfully used as an encoder
when constructing a MIMEApplication object.
- Issue #18135: ssl.SSLSocket.write() now raises an OverflowError if the input
string in longer than 2 gigabytes, and ssl.SSLContext.load_cert_chain()
raises a ValueError if the password is longer than 2 gigabytes. The ssl
module does not support partial write.
- Issue #18248: Fix libffi build on AIX.
- Issue #18259: Declare sethostname in socketmodule.c for AIX
- Issue #18167: cgi.FieldStorage no longer fails to handle multipart/form-data
when \r\n appears at end of 65535 bytes without other newlines.
- subprocess: Prevent a possible double close of parent pipe fds when the
subprocess exec runs into an error. Prevent a regular multi-close of the
/dev/null fd when any of stdin, stdout and stderr was set to DEVNULL.
- Issue #16102: Make uuid._netbios_getnode() work again on Python 3.
- Issue #18109: os.uname() now decodes fields from the locale encoding, and
socket.gethostname() now decodes the hostname from the locale encoding,
instead of using the UTF-8 encoding in strict mode.
- Issue #17403: urllib.parse.robotparser normalizes the urls before adding to
ruleline. This helps in handling certain types invalid urls in a conservative
manner.
- Issue #18025: Fixed a segfault in io.BufferedIOBase.readinto() when raw
stream's read() returns more bytes than requested.
- Issue #18011: base64.b32decode() now raises a binascii.Error if there are
non-alphabet characters present in the input string to conform a docstring.
Updated the module documentation.
- Issue #13772: Restored directory detection of targets in ``os.symlink`` on
Windows, which was temporarily removed in Python 3.2.3 due to an incomplete
implementation. The implementation now works even if the symlink is created
in a location other than the current directory.
- Issue #16986: ElementTree now correctly parses a string input not only when
an internal XML encoding is UTF-8 or US-ASCII.
- Issue #17812: Fixed quadratic complexity of base64.b32encode().
- Issue #17980: Fix possible abuse of ssl.match_hostname() for denial of
service using certificates with many wildcards (CVE-2013-2099).
- Issue #17981: Closed socket on error in SysLogHandler.
- Fix typos in the multiprocessing module.
- Issue #17754: Make ctypes.util.find_library() independent of the locale.
- Issue #17968: Fix memory leak in os.listxattr().
- Issue #17269: Workaround for socket.getaddrinfo crash on MacOS X
with port None or "0" and flags AI_NUMERICSERV.
- Issue #18698: Ensure imp.reload() returns the module out of sys.modules.
- Issue #18080: When building a C extension module on OS X, if the compiler
is overriden with the CC environment variable, use the new compiler as
the default for linking if LDSHARED is not also overriden. This restores
Distutils behavior introduced in 3.2.3 and inadvertently dropped in 3.3.0.
- Issue #18113: Fixed a refcount leak in the curses.panel module's
set_userptr() method. Reported by Atsuo Ishimoto.
- Issue #18849: Fixed a Windows-specific tempfile bug where collision with an
existing directory caused mkstemp and related APIs to fail instead of
retrying. Report and fix by Vlad Shcherbina.
- Issue #19400: Prevent extension module build failures with Xcode 5 on OS X
10.8+ when using a universal Python that included a PPC architecture,
such as with a python.org 32-bit-only binary installer.
C API
-----
- Issue #18351: Fix various issues with a helper function in importlib used
by PyImport_ExecCodeModuleWithPathnames() (and thus by extension
PyImport_ExecCodeModule() and PyImport_ExecCodeModuleEx()).
IDLE
----
- Issue #18873: IDLE now detects Python source code encoding only in comment
lines.
- Issue #18988: The "Tab" key now works when a word is already autocompleted.
- Issue #18489: Add tests for SearchEngine. Original patch by Phil Webster.
- Issue #18429: Format / Format Paragraph, now works when comment blocks
are selected. As with text blocks, this works best when the selection
only includes complete lines.
- Issue #18226: Add docstrings and unittests for FormatParagraph.py.
Original patches by Todd Rovito and Phil Webster.
- Issue #18279: Format - Strip trailing whitespace no longer marks a file as
changed when it has not been changed. This fix followed the addition of a
test file originally written by Phil Webster (the issue's main goal).
- Issue #7136: In the Idle File menu, "New Window" is renamed "New File".
Patch by Tal Einat, Roget Serwy, and Todd Rovito.
- Remove dead imports of imp.
- Issue #18196: Avoid displaying spurious SystemExit tracebacks.
- Issue #5492: Avoid traceback when exiting IDLE caused by a race condition.
- Issue #17511: Keep IDLE find dialog open after clicking "Find Next".
Original patch by Sarah K.
- Issue #18055: Move IDLE off of imp and on to importlib.
- Issue #15392: Create a unittest framework for IDLE.
Initial patch by Rajagopalasarma Jayakrishnan.
See Lib/idlelib/idle_test/README.txt for how to run Idle tests.
- Issue #14146: Highlight source line while debugging on Windows.
- Issue #17532: Always include Options menu for IDLE on OS X.
Patch by Guilherme Simões.
Tests
-----
- Issue #14407: Fix unittest test discovery in test_concurrent_futures.
- Issue #18919: Unified and extended tests for audio modules: aifc, sunau and
wave.
- Issue #18952: Fix regression in support data downloads introduced when
test.support was converted to a package. Regression noticed by Zachary
Ware.
- Issue #12037: Fix test_email for desktop Windows.
- Issue #15507: test_subprocess's test_send_signal could fail if the test
runner were run in an environment where the process inherited an ignore
setting for SIGINT. Restore the SIGINT handler to the desired
KeyboardInterrupt raising one during that test.
- Issue #18792: Use "127.0.0.1" or "::1" instead of "localhost" as much as
possible, since "localhost" goes through a DNS lookup under recent Windows
versions.
- Issue #1666318: Add a test that shutil.copytree() retains directory
permissions. Patch by Catherine Devlin.
- Issue #18357: add tests for dictview set difference.
Patch by Fraser Tweedale.
- Issue #18273: move the tests in Lib/test/json_tests to Lib/test/test_json
and make them discoverable by unittest. Patch by Zachary Ware.
- Fix a fcntl test case on KFreeBSD, Debian #708653 (Petr Salinger).
- Issue #18396: Fix spurious test failure in test_signal on Windows when
faulthandler is enabled (Patch by Jeremy Kloth)
- Issue #17046: Fix broken test_executable_without_cwd in test_subprocess.
- Issue #15415: Add new temp_dir() and change_cwd() context managers to
test.support, and refactor temp_cwd() to use them. Patch by Chris Jerdonek.
- Issue #15494: test.support is now a package rather than a module (Initial
patch by Indra Talip)
- Issue #17944: test_zipfile now discoverable and uses subclassing to
generate tests for different compression types. Fixed a bug with skipping
some tests due to use of exhausted iterators.
- Issue #18266: test_largefile now works with unittest test discovery and
supports running only selected tests. Patch by Zachary Ware.
- Issue #17767: test_locale now works with unittest test discovery.
Original patch by Zachary Ware.
- Issue #18375: Assume --randomize when --randseed is used for running the
testsuite.
- Issue #11185: Fix test_wait4 under AIX. Patch by Sébastien Sablé.
- Issue #17691: test_univnewlines now works with unittest test discovery.
Patch by Zachary Ware.
- Issue #18094: test_uuid no more reports skipped tests as passed.
- Issue #11995: test_pydoc doesn't import all sys.path modules anymore.
Documentation
-------------
- Issue #19392: Document that `imp.reload()` now also requires `__loader__` to
be set on the module being reloaded.
- Issue #18758: Fixed and improved cross-references.
- Issue #18743: Fix references to non-existant "StringIO" module.
- Issue #18783: Removed existing mentions of Python long type in docstrings,
error messages and comments.
- Issue #17701: Improving strftime documentation.
- Issue #18440: Clarify that `hash()` can truncate the value returned from an
object's custom `__hash__()` method.
- Issue #17953: Mention that you shouldn't replace sys.modules and deleting key
items will cause Python to not be happy.
- Issue #17844: Add links to encoders and decoders for bytes-to-bytes codecs.
- Issue #14097: improve the "introduction" page of the tutorial.
- Issue #17977: The documentation for the cadefault argument's default value
in urllib.request.urlopen() is fixed to match the code.
Tools/Demos
-----------
- Issue #18873: 2to3 and the findnocoding.py script now detect Python source
code encoding only in comment lines.
- Issue #18817: Fix a resource warning in Lib/aifc.py demo.
- Issue #18439: Make patchcheck work on Windows for ACKS, NEWS.
- Issue #18448: Fix a typo in Tools/demo/eiffel.py.
- Issue #18457: Fixed saving of formulas and complex numbers in
Tools/demo/ss1.py.
- Issue #18449: Make Tools/demo/ss1.py work again on Python 3. Patch by
Févry Thibault.
- Issue #15239: Make mkstringprep.py work again on Python 3.
- Issue #12990: The "Python Launcher" on OSX could not launch python scripts
that have paths that include wide characters.
Build
-----
- Issue #19356: Avoid using a C variabled named "_self", it's a reserved
word in some C compilers.
- Issue #19130: Correct PCbuild/readme.txt, Python 3.3 and 3.4 require VS 2010.
- Issue #16067: Add description into MSI file to replace installer's temporary name.
- Issue #18256: Compilation fix for recent AIX releases. Patch by
David Edelsohn.
- Issue #15172: Document NASM 2.10+ as requirement for building OpenSSL 1.0.1
on Windows.
- Issue #1584: Provide options to override default search paths for
Tcl and Tk when building _tkinter.
- Issue #15663: Tcl/Tk 8.5.15 is now included with the OS X 10.6+
64-bit/32-bit installer for 10.6+. It is no longer necessary
to install a third-party version of Tcl/Tk 8.5 to work around the
problems in the Apple-supplied Tcl/Tk 8.5 shipped in OS X 10.6
and later releases.
- Issue #19019: Change the OS X installer build script to use CFLAGS instead
of OPT for special build options. By setting OPT, some compiler-specific
options like -fwrapv were overridden and thus not used, which could result
in broken interpreters when building with clang.
What's New in Python 3.3.2?
===========================
*Release date: 13-May-2013*
Core and Builtins
-----------------
- Issue #17237: Fix crash in the ASCII decoder on m68k.
- Issue #17408: Avoid using an obsolete instance of the copyreg module when
the interpreter is shutdown and then started again.
- Issue #17863: In the interactive console, don't loop forever if the encoding
can't be fetched from stdin.
- Issue #17867: Raise an ImportError if __import__ is not found in __builtins__.
- Issue #17857: Prevent build failures with pre-3.5.0 versions of sqlite3,
such as was shipped with Centos 5 and Mac OS X 10.4.
- Issue #17413: sys.settrace callbacks were being passed a string instead of an
exception instance for the 'value' element of the arg tuple if the exception
originated from C code; now an exception instance is always provided.
- Issue #17782: Fix undefined behaviour on platforms where
``struct timespec``'s "tv_nsec" member is not a C long.
- Issue #17715: Fix segmentation fault from raising an exception in a __trunc__
method.
- Issue #16447: Fixed potential segmentation fault when setting __name__ on a
class.
- Issue #17669: Fix crash involving finalization of generators using yield from.
- Issue #17619: Make input() check for Ctrl-C correctly on Windows.
- Issue #17610: Don't rely on non-standard behavior of the C qsort() function.
- Issue #17357: Add missing verbosity output when using -v/-vv.
Library
-------
- Issue #17606: Fixed support of encoded byte strings in the XMLGenerator
characters() and ignorableWhitespace() methods. Original patch by Sebastian
Ortiz Vasquez.
- Issue #17732: Ignore distutils.cfg options pertaining to install paths if a
virtual environment is active.
- Issue #1159051: Back out a fix for handling corrupted gzip files that
broke backwards compatibility.
- Issue #17915: Fix interoperability of xml.sax with file objects returned by
codecs.open().
- Issue #16601: Restarting iteration over tarfile no more continues from where
it left off. Patch by Michael Birtwell.
- Issue #17289: The readline module now plays nicer with external modules
or applications changing the rl_completer_word_break_characters global
variable. Initial patch by Bradley Froehle.
- Issue #12181: select module: Fix struct kevent definition on OpenBSD 64-bit
platforms. Patch by Federico Schwindt.
- Issue #14173: Avoid crashing when reading a signal handler during
interpreter shutdown.
- Issue #16316: mimetypes now recognizes the .xz and .txz (.tar.xz) extensions.
- Issue #15902: Fix imp.load_module() accepting None as a file when loading an
extension module.
- Issue #17802: Fix an UnboundLocalError in html.parser. Initial tests by
Thomas Barlow.
- Issue #15535: Fix namedtuple pickles which were picking up the OrderedDict
instead of just the underlying tuple.
- Issue #17192: Restore the patch for Issue #11729 which was ommitted in
3.3.1 when updating the bundled version of libffi used by ctypes. Update
many libffi files that were missed in 3.3.1's update to libffi-3.0.13.
- Issue #17358: Modules loaded by imp.load_source() and load_compiled() (and by
extention load_module()) now have a better chance of working when reloaded.
- Issue #17353: Plistlib emitted empty data tags with deeply nested datastructures
- Issue #11714: Use 'with' statements to assure a Semaphore releases a
condition variable. Original patch by Thomas Rachel.
- Issue #17795: Reverted backwards-incompatible change in SysLogHandler with
Unix domain sockets.
- Issue #17555: Fix ForkAwareThreadLock so that size of after fork
registry does not grow exponentially with generation of process.
- Issue #17707: multiprocessing.Queue's get() method does not block for short
timeouts.
- Isuse #17720: Fix the Python implementation of pickle.Unpickler to correctly
process the APPENDS opcode when it is used on non-list objects.
- Issue #17012: shutil.which() no longer fallbacks to the PATH environment
variable if empty path argument is specified. Patch by Serhiy Storchaka.
- Issue #17710: Fix pickle raising a SystemError on bogus input.
- Issue #17341: Include the invalid name in the error messages from re about
invalid group names.
- Issue #17702: os.environ now raises KeyError with the original environment
variable name (str on UNIX), instead of using the encoded name (bytes on
UNIX).
- Issue #16163: Make the importlib based version of pkgutil.iter_importers
work for submodules. Initial patch by Berker Peksag.
- Issue #16804: Fix a bug in the 'site' module that caused running
'python -S -m site' to incorrectly throw an exception.
- Issue #17016: Get rid of possible pointer wraparounds and integer overflows
in the re module. Patch by Nickolai Zeldovich.
- Issue #16658: add missing return to HTTPConnection.send()
Patch by Jeff Knupp.
- Issue #14971: unittest test discovery no longer gets confused when a function
has a different __name__ than its name in the TestCase class dictionary.
- Issue #17678: Fix DeprecationWarning in the http/cookiejar.py by changing the
usage of get_origin_req_host() to origin_req_host.
- Issue #17666: Fix reading gzip files with an extra field.
- Issue #17502: Process DEFAULT values in mock side_effect that returns iterator.
Patch by Michael Foord.
- Issue #17572: Avoid chained exceptions while passing bad directives to
time.strptime(). Initial patch by Claudiu Popa.
- Issue #17435: threading.Timer's __init__ method no longer uses mutable
default values for the args and kwargs parameters.
- Issue #17526: fix an IndexError raised while passing code without filename to
inspect.findsource(). Initial patch by Tyler Doyle.
- Issue #16550: Update the opcode descriptions of pickletools to use unsigned
integers where appropriate. Initial patch by Serhiy Storchaka.
IDLE
----
- Issue #17838: Allow sys.stdin to be reassigned.
- Issue #13495: Avoid loading the color delegator twice in IDLE.
- Issue #17798: Allow IDLE to edit new files when specified on command line.
- Issue #14735: Update IDLE docs to omit "Control-z on Windows".
- Issue #17585: Fixed IDLE regression. Now closes when using exit() or quit().
- Issue #17657: Show full Tk version in IDLE's about dialog.
Patch by Todd Rovito.
- Issue #17613: Prevent traceback when removing syntax colorizer in IDLE.
- Issue #1207589: Backwards-compatibility patch for right-click menu in IDLE.
- Issue #16887: IDLE now accepts Cancel in tabify/untabify dialog box.
- Issue #17625: In IDLE, close the replace dialog after it is used.
- Issue #14254: IDLE now handles readline correctly across shell restarts.
- Issue #17614: IDLE no longer raises exception when quickly closing a file.
- Issue #6698: IDLE now opens just an editor window when configured to do so.
- Issue #8900: Using keyboard shortcuts in IDLE to open a file no longer
raises an exception.