-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNEWS.txt
More file actions
17179 lines (11604 loc) · 650 KB
/
NEWS.txt
File metadata and controls
17179 lines (11604 loc) · 650 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.7.3 final?
=================================
*Release date: 2019-03-25*
There were no new changes in version 3.7.3.
What's New in Python 3.7.3 release candidate 1?
===============================================
*Release date: 2019-03-12*
Security
--------
- bpo-36216: Changes urlsplit() to raise ValueError when the URL contains
characters that decompose under IDNA encoding (NFKC-normalization) into
characters that affect how the URL is parsed.
- bpo-35746: [CVE-2019-5010] Fix a NULL pointer deref in ssl module. The
cert parser did not handle CRL distribution points with empty DP or URI
correctly. A malicious or buggy certificate can result into segfault.
Vulnerability (TALOS-2018-0758) reported by Colin Read and Nicolas Edet of
Cisco.
- bpo-35121: Don't send cookies of domain A without Domain attribute to
domain B when domain A is a suffix match of domain B while using a
cookiejar with :class:`http.cookiejar.DefaultCookiePolicy` policy. Patch
by Karthikeyan Singaravelan.
Core and Builtins
-----------------
- bpo-35942: The error message emitted when returning invalid types from
``__fspath__`` in interfaces that allow passing :class:`~os.PathLike`
objects has been improved and now it does explain the origin of the error.
- bpo-35992: Fix ``__class_getitem__()`` not being called on a class with a
custom non-subscriptable metaclass.
- bpo-35991: Fix a potential double free in Modules/_randommodule.c.
- bpo-35961: Fix a crash in slice_richcompare(): use strong references
rather than stolen references for the two temporary internal tuples.
- bpo-31506: Clarify the errors reported when ``object.__new__`` and
``object.__init__`` receive more than one argument. Contributed by Sanyam
Khurana.
- bpo-35720: Fixed a minor memory leak in pymain_parse_cmdline_impl function
in Modules/main.c
- bpo-35623: Fix a crash when sorting very long lists. Patch by Stephan
Hohe.
- bpo-35214: clang Memory Sanitizer build instrumentation was added to work
around false positives from posix, socket, time, test_io, and
test_faulthandler.
- bpo-35560: Fix an assertion error in :func:`format` in debug build for
floating point formatting with "n" format, zero padding and small width.
Release build is not impacted. Patch by Karthikeyan Singaravelan.
- bpo-35552: Format characters ``%s`` and ``%V`` in
:c:func:`PyUnicode_FromFormat` and ``%s`` in :c:func:`PyBytes_FromFormat`
no longer read memory past the limit if *precision* is specified.
- bpo-35504: Fix segfaults and :exc:`SystemError`\ s when deleting certain
attributes. Patch by Zackery Spytz.
- bpo-33989: Fix a possible crash in :meth:`list.sort` when sorting objects
with ``ob_type->tp_richcompare == NULL``. Patch by Zackery Spytz.
Library
-------
- bpo-35931: The :mod:`pdb` ``debug`` command now gracefully handles all
exceptions.
- bpo-36251: Fix format strings used for stderrprinter and re.Match reprs.
Patch by Stephan Hohe.
- bpo-35807: Update ensurepip to install pip 19.0.3 and setuptools 40.8.0.
- bpo-36179: Fix two unlikely reference leaks in _hashopenssl. The leaks
only occur in out-of-memory cases.
- bpo-35178: Ensure custom :func:`warnings.formatwarning` function can
receive `line` as positional argument. Based on patch by Tashrif Billah.
- bpo-36106: Resolve potential name clash with libm's sinpi(). Patch by
Dmitrii Pasechnik.
- bpo-35512: :func:`unittest.mock.patch.dict` used as a decorator with
string target resolves the target during function call instead of during
decorator construction. Patch by Karthikeyan Singaravelan.
- bpo-36091: Clean up reference to async generator in Lib/types. Patch by
Henry Chen.
- bpo-35899: Enum has been fixed to correctly handle empty strings and
strings with non-Latin characters (ie. 'α', 'א') without crashing.
Original patch contributed by Maxwell. Assisted by Stéphane Wirtel.
- bpo-35918: Removed broken ``has_key`` method from
multiprocessing.managers.SyncManager.dict. Contributed by Rémi Lapeyre.
- bpo-35960: Fix :func:`dataclasses.field` throwing away empty mapping
objects passed as metadata.
- bpo-35847: RISC-V needed the CTYPES_PASS_BY_REF_HACK. Fixes ctypes
Structure test_pass_by_value.
- bpo-35780: Fix lru_cache() errors arising in recursive, reentrant, or
multi-threaded code. These errors could result in orphan links and in the
cache being trapped in a state with fewer than the specified maximum
number of links. Fix handling of negative maxsize which should have been
treated as zero. Fix errors in toggling the "full" status flag. Fix
misordering of links when errors are encountered. Sync-up the C code and
pure Python code for the space saving path in functions with a single
positional argument. In this common case, the space overhead of an lru
cache entry is reduced by almost half. Fix counting of cache misses. In
error cases, the miss count was out of sync with the actual number of
times the underlying user function was called.
- bpo-23846: :class:`asyncio.ProactorEventLoop` now catches and logs send
errors when the self-pipe is full.
- bpo-34323: :mod:`asyncio`: Enhance ``IocpProactor.close()`` log: wait 1
second before the first log, then log every second. Log also the number of
seconds since ``close()`` was called.
- bpo-34294: re module, fix wrong capturing groups in rare cases.
:func:`re.search`, :func:`re.findall`, :func:`re.sub` and other functions
that scan through string looking for a match, should reset capturing
groups between two match attempts. Patch by Ma Lin.
- bpo-35717: Fix KeyError exception raised when using enums and compile.
Patch contributed by Rémi Lapeyre.
- bpo-35699: Fixed detection of Visual Studio Build Tools 2017 in distutils
- bpo-32710: Fix memory leaks in asyncio ProactorEventLoop on overlapped
operation failure.
- bpo-32710: Fix a memory leak in asyncio in the ProactorEventLoop when
``ReadFile()`` or ``WSASend()`` overlapped operation fail immediately:
release the internal buffer.
- bpo-35682: Fix ``asyncio.ProactorEventLoop.sendfile()``: don't attempt to
set the result of an internal future if it's already done.
- bpo-35283: Add a pending deprecated warning for the
:meth:`threading.Thread.isAlive` method. Patch by Dong-hee Na.
- bpo-35643: Fixed a SyntaxWarning: invalid escape sequence in
Modules/_sha3/cleanup.py. Patch by Mickaël Schoentgen.
- bpo-35615: :mod:`weakref`: Fix a RuntimeError when copying a
WeakKeyDictionary or a WeakValueDictionary, due to some keys or values
disappearing while iterating.
- bpo-28503: The `crypt` module now internally uses the `crypt_r()` library
function instead of `crypt()` when available.
- bpo-35121: Don't set cookie for a request when the request path is a
prefix match of the cookie's path attribute but doesn't end with "/".
Patch by Karthikeyan Singaravelan.
- bpo-35585: Speed-up building enums by value, e.g. http.HTTPStatus(200).
- bpo-21478: Calls to a child function created with
:func:`unittest.mock.create_autospec` should propagate to the parent.
Patch by Karthikeyan Singaravelan.
- bpo-35513: :class:`~unittest.runner.TextTestRunner` of
:mod:`unittest.runner` now uses :func:`time.perf_counter` rather than
:func:`time.time` to measure the execution time of a test:
:func:`time.time` can go backwards, whereas :func:`time.perf_counter` is
monotonic.
- bpo-35502: Fixed reference leaks in
:class:`xml.etree.ElementTree.TreeBuilder` in case of unfinished building
of the tree (in particular when an error was raised during parsing XML).
- bpo-31446: Copy command line that was passed to CreateProcessW since this
function can change the content of the input buffer.
- bpo-20239: Allow repeated assignment deletion of
:class:`unittest.mock.Mock` attributes. Patch by Pablo Galindo.
- bpo-17185: Set ``__signature__`` on mock for :mod:`inspect` to get
signature. Patch by Karthikeyan Singaravelan.
- bpo-10496: :func:`~distutils.utils.check_environ` of
:mod:`distutils.utils` now catches :exc:`KeyError` on calling
:func:`pwd.getpwuid`: don't create the ``HOME`` environment variable in
this case.
- bpo-35066: Previously, calling the strftime() method on a datetime object
with a trailing '%' in the format string would result in an exception.
However, this only occured when the datetime C module was being used; the
python implementation did not match this behavior. Datetime is now PEP-399
compliant, and will not throw an exception on a trailing '%'.
- bpo-24746: Avoid stripping trailing whitespace in doctest fancy diff.
Orignial patch by R. David Murray & Jairo Trad. Enhanced by Sanyam
Khurana.
- bpo-35198: Fix C++ extension compilation on AIX
- bpo-28441: On Cygwin and MinGW, ensure that ``sys.executable`` always
includes the full filename in the path, including the ``.exe`` suffix
(unless it is a symbolic link).
- bpo-34572: Fix C implementation of pickle.loads to use importlib's locking
mechanisms, and thereby avoid using partially-loaded modules. Patch by Tim
Burgess.
- bpo-33687: Fix the call to ``os.chmod()`` for ``uu.decode()`` if a mode is
given or decoded. Patch by Timo Furrer.
- bpo-32146: Document the interaction between frozen executables and the
spawn and forkserver start methods in multiprocessing.
Documentation
-------------
- bpo-36083: Fix formatting of --check-hash-based-pycs options in the
manpage Synopsis.
- bpo-34764: Improve example of iter() with 2nd sentinel argument.
- bpo-21314: A new entry was added to the Core Language Section of the
Programming FAQ, which explaines the usage of slash(/) in the signature of
a function. Patch by Lysandros Nikolaou
- bpo-22062: Update documentation and docstrings for pathlib. Original patch
by Mike Short.
Tests
-----
- bpo-36234: test_posix.PosixUidGidTests: add tests for invalid uid/gid type
(str). Initial patch written by David Malcolm.
- bpo-29571: Fix ``test_re.test_locale_flag()``: use
``locale.getpreferredencoding()`` rather than ``locale.getlocale()`` to
get the locale encoding. With some locales, ``locale.getlocale()`` returns
the wrong encoding. On Windows, set temporarily the ``LC_CTYPE`` locale to
the user preferred encoding to ensure that it uses the ANSI code page, to
be consistent with ``locale.getpreferredencoding()``.
- bpo-36123: Fix race condition in test_socket.
- bpo-27313: Avoid test_ttk_guionly ComboboxTest failure with macOS Cocoa
Tk.
- bpo-36019: Add test.support.TEST_HTTP_URL and replace references of
http://www.example.com by this new constant. Contributed by Stéphane
Wirtel.
- bpo-36037: Fix test_ssl for strict OpenSSL configuration like RHEL8 strict
crypto policy. Use older TLS version for minimum TLS version of the server
SSL context if needed, to test TLS version older than default minimum TLS
version.
- bpo-35505: Make test_imap4_host_default_value independent on whether the
local IMAP server is running.
- bpo-35917: multiprocessing: provide unit tests for SyncManager and
SharedMemoryManager classes + all the shareable types which are supposed
to be supported by them. (patch by Giampaolo Rodola)
- bpo-35772: Fix sparse file tests of test_tarfile on ppc64 with the tmpfs
filesystem. Fix the function testing if the filesystem supports sparse
files: create a file which contains data and "holes", instead of creating
a file which contains no data. tmpfs effective block size is a page size
(tmpfs lives in the page cache). RHEL uses 64 KiB pages on aarch64, ppc64,
ppc64le, only s390x and x86_64 use 4 KiB pages, whereas the test punch
holes of 4 KiB.
- bpo-35045: Make ssl tests less strict and also accept TLSv1 as system
default. The changes unbreaks test_min_max_version on Fedora 29.
- bpo-31731: Fix a race condition in ``check_interrupted_write()`` of
test_io: create directly the thread with SIGALRM signal blocked, rather
than blocking the signal later from the thread. Previously, it was
possible that the thread gets the signal before the signal is blocked.
- bpo-35424: Fix test_multiprocessing_main_handling: use
:class:`multiprocessing.Pool` with a context manager and then explicitly
join the pool.
- bpo-35519: Rename :mod:`test.bisect` module to :mod:`test.bisect_cmd` to
avoid conflict with :mod:`bisect` module when running directly a test like
``./python Lib/test/test_xmlrpc.py``.
- bpo-35513: Replace :func:`time.time` with :func:`time.monotonic` in tests
to measure time delta.
- bpo-34279: :func:`test.support.run_unittest` no longer raise
:exc:`TestDidNotRun` if the test result contains skipped tests. The
exception is now only raised if no test have been run and no test have
been skipped.
- bpo-35412: Add testcase to ``test_future4``: check unicode literal.
- bpo-26704: Added test demonstrating double-patching of an instance method.
Patch by Anthony Sottile.
Build
-----
- bpo-34691: The _contextvars module is now built into the core Python
library on Windows.
- bpo-35683: Improved Azure Pipelines build steps and now verifying layouts
correctly
- bpo-35642: Remove asynciomodule.c from pythoncore.vcxproj
- bpo-35550: Fix incorrect Solaris #ifdef checks to look for __sun && __SVR4
instead of sun when compiling.
Windows
-------
- bpo-24643: Fix name collisions due to ``#define timezone _timezone`` in
PC/pyconfig.h.
- bpo-35692: ``pathlib`` no longer raises when checking file and directory
existence on drives that are not ready
- bpo-35872: Uses the base Python executable when invoking venv in a virtual
environment
- bpo-35873: Prevents venv paths being inherited by child processes
- bpo-35299: Fix sysconfig detection of the source directory and distutils
handling of pyconfig.h during PGO profiling
- bpo-32560: The ``py`` launcher now forwards its ``STARTUPINFO`` structure
to child processes.
- bpo-35854: Fix EnvBuilder and --symlinks in venv on Windows
- bpo-35811: Avoid propagating venv settings when launching via py.exe
- bpo-35797: Fix default executable used by the multiprocessing module
- bpo-29734: Fix handle leaks in os.stat on Windows.
- bpo-35596: Use unchecked PYCs for the embeddable distro to avoid zipimport
restrictions.
- bpo-35596: Fix vcruntime140.dll being added to embeddable distro multiple
times.
- bpo-35402: Update Windows build to use Tcl and Tk 8.6.9
- bpo-33316: PyThread_release_lock always fails
- bpo-1104: Correctly handle string length in
``msilib.SummaryInfo.GetProperty()`` to prevent it from truncating the
last character.
IDLE
----
- bpo-36176: Fix IDLE autocomplete & calltip popup colors. Prevent conflicts
with Linux dark themes (and slightly darken calltip background).
- bpo-36152: Remove colorizer.ColorDelegator.close_when_done and the
corresponding argument of .close(). In IDLE, both have always been None
or False since 2007.
- bpo-32129: Avoid blurry IDLE application icon on macOS with Tk 8.6. Patch
by Kevin Walzer.
- bpo-24310: IDLE -- Document settings dialog font tab sample.
- bpo-36096: Refactor class variables to instance variables in colorizer.
- bpo-35833: Revise IDLE doc for control codes sent to Shell. Add a code
example block.
- bpo-35770: IDLE macosx deletes Options => Configure IDLE. It previously
deleted Window => Zoom Height by mistake. (Zoom Height is now on the
Options menu). On Mac, the settings dialog is accessed via Preferences on
the IDLE menu.
- bpo-35769: Change IDLE's new file name from 'Untitled' to 'untitled'
- bpo-35689: Add docstrings and unittests for colorizer.py.
- bpo-35660: Fix imports in idlelib.window.
- bpo-35641: Proper format `calltip` when the function has no docstring.
- bpo-33987: Use ttk Frame for ttk widgets.
- bpo-34055: Fix erroneous 'smart' indents and newlines in IDLE Shell.
- bpo-35591: Find Selection now works when selection not found.
- bpo-35196: Speed up squeezer line counting.
- bpo-35598: Update config_key: use PEP 8 names and ttk widgets, make some
objects global, and add tests.
- bpo-28097: Add Previous/Next History entries to Shell menu.
- bpo-35208: Squeezer now properly counts wrapped lines before newlines.
- bpo-35555: Gray out Code Context menu entry when it's not applicable.
- bpo-35521: Document the IDLE editor code context feature. Add some
internal references within the IDLE doc.
- bpo-22703: The Code Context menu label now toggles between Show/Hide Code
Context. The Zoom Height menu now toggles between Zoom/Restore Height.
Zoom Height has moved from the Window menu to the Options menu.
Tools/Demos
-----------
- bpo-35132: Fix py-list and py-bt commands of python-gdb.py on gdb7.
C API
-----
- bpo-33817: Fixed :c:func:`_PyBytes_Resize` for empty bytes objects.
What's New in Python 3.7.2 final?
=================================
*Release date: 2018-12-23*
Library
-------
- bpo-31715: Associate ``.mjs`` file extension with
``application/javascript`` MIME Type.
Build
-----
- bpo-35499: ``make profile-opt`` no longer replaces ``CFLAGS_NODIST`` with
``CFLAGS``. It now adds profile-guided optimization (PGO) flags to
``CFLAGS_NODIST``: existing ``CFLAGS_NODIST`` flags are kept.
- bpo-35257: Avoid leaking the linker flags from Link Time Optimizations
(LTO) into distutils when compiling C extensions.
C API
-----
- bpo-35259: Conditionally declare :c:func:`Py_FinalizeEx()` (new in 3.6)
based on Py_LIMITED_API. Patch by Arthur Neufeld.
What's New in Python 3.7.2 release candidate 1?
===============================================
*Release date: 2018-12-11*
Security
--------
- bpo-34812: The :option:`-I` command line option (run Python in isolated
mode) is now also copied by the :mod:`multiprocessing` and
:mod:`distutils` modules when spawning child processes. Previously, only
:option:`-E` and :option:`-s` options (enabled by :option:`-I`) were
copied.
- bpo-34791: The xml.sax and xml.dom.domreg no longer use environment
variables to override parser implementations when
sys.flags.ignore_environment is set by -E or -I arguments.
Core and Builtins
-----------------
- bpo-35444: Fixed error handling in pickling methods when fail to look up
builtin "getattr".
- bpo-35436: Fix various issues with memory allocation error handling.
Patch by Zackery Spytz.
- bpo-35357: Internal attributes' names of unittest.mock._Call and
unittest.mock.MagicProxy (name, parent & from_kall) are now prefixed with
_mock_ in order to prevent clashes with widely used object attributes.
Fixed minor typo in test function name.
- bpo-35372: Fixed the code page decoder for input longer than 2 GiB
containing undecodable bytes.
- bpo-35336: Fix PYTHONCOERCECLOCALE=1 environment variable: only coerce the
C locale if the LC_CTYPE locale is "C".
- bpo-33954: For :meth:`str.format`, :meth:`float.__format__` and
:meth:`complex.__format__` methods for non-ASCII decimal point when using
the "n" formatter.
- bpo-35269: Fix a possible segfault involving a newly-created coroutine.
Patch by Zackery Spytz.
- bpo-35214: Fixed an out of bounds memory access when parsing a truncated
unicode escape sequence at the end of a string such as ``'\N'``. It would
read one byte beyond the end of the memory allocation.
- bpo-35214: The interpreter and extension modules have had annotations
added so that they work properly under clang's Memory Sanitizer. A new
configure flag --with-memory-sanitizer has been added to make test builds
of this nature easier to perform.
- bpo-35193: Fix an off by one error in the bytecode peephole optimizer
where it could read bytes beyond the end of bounds of an array when
removing unreachable code. This bug was present in every release of Python
3.6 and 3.7 until now.
- bpo-29341: Clarify in the docstrings of :mod:`os` methods that path-like
objects are also accepted as input parameters.
- bpo-35050: :mod:`socket`: Fix off-by-one bug in length check for
``AF_ALG`` name and type.
- bpo-34974: :class:`bytes` and :class:`bytearray` constructors no longer
convert unexpected exceptions (e.g. :exc:`MemoryError` and
:exc:`KeyboardInterrupt`) to :exc:`TypeError`.
- bpo-34973: Fixed crash in :func:`bytes` when the :class:`list` argument is
mutated while it is iterated.
- bpo-34824: Fix a possible null pointer dereference in Modules/_ssl.c.
Patch by Zackery Spytz.
- bpo-1621: Do not assume signed integer overflow behavior (C undefined
behavior) when performing set hash table resizing.
Library
-------
- bpo-35052: Fix xml.dom.minidom cloneNode() on a document with an entity:
pass the correct arguments to the user data handler of an entity.
- bpo-35330: When a :class:`Mock` instance was used to wrap an object, if
`side_effect` is used in one of the mocks of it methods, don't call the
original implementation and return the result of using the side effect the
same way that it is done with return_value.
- bpo-34172: Revert the fix for this issue previously released in 3.7.1
pending further investigation: Fix a reference issue inside
multiprocessing.Pool that caused the pool to remain alive if it was
deleted without being closed or terminated explicitly.
- bpo-10496: :func:`posixpath.expanduser` now returns the input *path*
unchanged if the ``HOME`` environment variable is not set and the current
user has no home directory (if the current user identifier doesn't exist
in the password database). This change fix the :mod:`site` module if the
current user doesn't exist in the password database (if the user has no
home directory).
- bpo-35310: Fix a bug in :func:`select.select` where, in some cases, the
file descriptor sequences were returned unmodified after a signal
interruption, even though the file descriptors might not be ready yet.
:func:`select.select` will now always return empty lists if a timeout has
occurred. Patch by Oran Avraham.
- bpo-35380: Enable TCP_NODELAY on Windows for proactor asyncio event loop.
- bpo-35341: Add generic version of ``collections.OrderedDict`` to the
``typing`` module. Patch by Ismo Toijala.
- bpo-35371: Fixed possible crash in ``os.utime()`` on Windows when pass
incorrect arguments.
- bpo-27903: Fix ``ResourceWarning`` in :func:`platform.dist` on SuSE and
Caldera OpenLinux. Patch by Ville Skyttä.
- bpo-35308: Fix regression in ``webbrowser`` where default browsers may be
preferred over browsers in the ``BROWSER`` environment variable.
- bpo-28604: :func:`locale.localeconv` now sets temporarily the ``LC_CTYPE``
locale to the ``LC_MONETARY`` locale if the two locales are different and
monetary strings are non-ASCII. This temporary change affects other
threads.
- bpo-35277: Update ensurepip to install pip 18.1 and setuptools 40.6.2.
- bpo-35226: Recursively check arguments when testing for equality of
:class:`unittest.mock.call` objects and add note that tracking of
parameters used to create ancestors of mocks in ``mock_calls`` is not
possible.
- bpo-29564: The warnings module now suggests to enable tracemalloc if the
source is specified, the tracemalloc module is available, but tracemalloc
is not tracing memory allocations.
- bpo-35189: Modify the following fnctl function to retry if interrupted by
a signal (EINTR): flock, lockf, fnctl
- bpo-35062: Fix incorrect parsing of
:class:`_io.IncrementalNewlineDecoder`'s *translate* argument.
- bpo-35079: Improve difflib.SequenceManager.get_matching_blocks doc by
adding 'non-overlapping' and changing '!=' to '<'.
- bpo-35017: :meth:`socketserver.BaseServer.serve_forever` now exits
immediately if it's :meth:`~socketserver.BaseServer.shutdown` method is
called while it is polling for new events.
- bpo-31047: Fix ``ntpath.abspath`` regression where it didn't remove a
trailing separator on Windows. Patch by Tim Graham.
- bpo-34794: Fixed a leak in Tkinter when pass the Python wrapper around
Tcl_Obj back to Tcl/Tk.
- bpo-35008: Fixed references leaks when call the ``__setstate__()`` method
of :class:`xml.etree.ElementTree.Element` in the C implementation for
already initialized element.
- bpo-23420: Verify the value for the parameter '-s' of the cProfile CLI.
Patch by Robert Kuska
- bpo-33947: dataclasses now handle recursive reprs without raising
RecursionError.
- bpo-16965: The :term:`2to3` :2to3fixer:`execfile` fixer now opens the file
with mode ``'rb'``. Patch by Zackery Spytz.
- bpo-34966: :mod:`pydoc` now supports aliases not only to methods defined
in the end class, but also to inherited methods. The docstring is not
duplicated for aliases.
- bpo-34941: Methods ``find()``, ``findtext()`` and ``findall()`` of the
``Element`` class in the :mod:`xml.etree.ElementTree` module are now able
to find children which are instances of ``Element`` subclasses.
- bpo-34936: Fix ``TclError`` in ``tkinter.Spinbox.selection_element()``.
Patch by Juliette Monsel.
- bpo-34866: Adding ``max_num_fields`` to ``cgi.FieldStorage`` to make DOS
attacks harder by limiting the number of ``MiniFieldStorage`` objects
created by ``FieldStorage``.
- bpo-34022: The :envvar:`SOURCE_DATE_EPOCH` environment variable no longer
overrides the value of the *invalidation_mode* argument to
:func:`py_compile.compile`, and determines its default value instead.
- bpo-34738: ZIP files created by :mod:`distutils` will now include entries
for directories.
- bpo-31177: Fix bug that prevented using :meth:`reset_mock
<unittest.mock.Mock.reset_mock>` on mock instances with deleted attributes
- bpo-34536: `Enum._missing_`: raise `ValueError` if None returned and
`TypeError` if non-member is returned.
- bpo-34604: Fix possible mojibake in the error message of `pwd.getpwnam`
and `grp.getgrnam` using string representation because of invisible
characters or trailing whitespaces. Patch by William Grzybowski.
- bpo-34574: OrderedDict iterators are not exhausted during pickling
anymore. Patch by Sergey Fedoseev.
- bpo-34052: :meth:`sqlite3.Connection.create_aggregate`,
:meth:`sqlite3.Connection.create_function`,
:meth:`sqlite3.Connection.set_authorizer`,
:meth:`sqlite3.Connection.set_progress_handler` methods raises TypeError
when unhashable objects are passed as callable. These methods now don't
pass such objects to SQLite API. Previous behavior could lead to
segfaults. Patch by Sergey Fedoseev.
- bpo-29877: compileall: import ProcessPoolExecutor only when needed,
preventing hangs on low resource platforms
- bpo-22005: Implemented unpickling instances of
:class:`~datetime.datetime`, :class:`~datetime.date` and
:class:`~datetime.time` pickled by Python 2. ``encoding='latin1'`` should
be used for successful decoding.
Documentation
-------------
- bpo-35089: Remove mention of ``typing.io`` and ``typing.re``. Their types
should be imported from ``typing`` directly.
- bpo-35038: Fix the documentation about an unexisting `f_restricted`
attribute in the frame object. Patch by Stéphane Wirtel
- bpo-35044: Fix the documentation with the role ``exc`` for the
appropriated exception. Patch by Stéphane Wirtel
- bpo-35035: Rename documentation for :mod:`email.utils` to
``email.utils.rst``.
- bpo-34967: Use app.add_object_type() instead of the deprecated Sphinx
function app.description_unit()
- bpo-11233: Create availability directive for documentation. Original
patch by Georg Brandl.
- bpo-33594: Document ``getargspec``, ``from_function`` and ``from_builtin``
as deprecated in their respective docstring, and include version since
deprecation in DeprecationWarning message.
- bpo-32613: Update the faq/windows.html to use the py command from PEP 397
instead of python.
Tests
-----
- bpo-33725: test_multiprocessing_fork may crash on recent versions of
macOS. Until the issue is resolved, skip the test on macOS.
- bpo-35352: Modify test_asyncio to use the certificate set from the test
directory.
- bpo-35317: Fix ``mktime()`` overflow error in ``test_email``: run
``test_localtime_daylight_true_dst_true()`` and
``test_localtime_daylight_false_dst_true()`` with a specific timezone.
- bpo-21263: After several reports that test_gdb does not work properly on
macOS and since gdb is not shipped by default anymore, test_gdb is now
skipped on macOS when LLVM Clang has been used to compile Python. Patch by
Lysandros Nikolaou
- bpo-34279: regrtest issue a warning when no tests have been executed in a
particular test file. Also, a new final result state is issued if no test
have been executed across all test files. Patch by Pablo Galindo.
Build
-----
- bpo-35296: The Windows installer (MSI) now also install internal header
files (``Include/internal/`` subdirectory).
- bpo-35351: When building Python with clang and LTO, LTO flags are no
longer passed into CFLAGS to build third-party C extensions through
distutils.
- bpo-35139: Fix a compiler error when statically linking `pyexpat` in
`Modules/Setup`.
- bpo-35011: Restores the use of pyexpatns.h to isolate our embedded copy of
the expat C library so that its symbols do not conflict at link or dynamic
loading time with an embedding application or other extension modules with
their own version of libexpat.
- bpo-28015: Have --with-lto works correctly with clang.
- bpo-33015: Fix an undefined behaviour in the pthread implementation of
:c:func:`PyThread_start_new_thread`: add a function wrapper to always
return ``NULL``.
Windows
-------
- bpo-35401: Updates Windows build to OpenSSL 1.1.0j
- bpo-34977: venv on Windows will now use a python.exe redirector rather
than copying the actual binaries from the base environment.
- bpo-34977: Adds support for building a Windows App Store package
- bpo-35067: Remove _distutils_findvs module and use vswhere.exe instead.
- bpo-34532: Fixes exit code of list version arguments for py.exe.
- bpo-32890: Fix usage of GetLastError() instead of errno in os.execve() and
os.truncate().
macOS
-----
- bpo-35402: Update macOS installer to use Tcl/Tk 8.6.9.1. [NOTE: This
change was reverted for the released python.org 3.7.2 macOS installers due
to regressions found in Tk 8.6.9.1. For now, the installers provide
Tcl/Tk 8.6.8.]
- bpo-35401: Update macOS installer to use OpenSSL 1.1.0j.
- bpo-35025: Properly guard the use of the ``CLOCK_GETTIME`` et al. macros
in ``timemodule`` on macOS.
- bpo-24658: On macOS, fix reading from and writing into a file with a size
larger than 2 GiB.
IDLE
----
- bpo-35213: Where appropriate, use 'macOS' in idlelib.
- bpo-34864: On macOS, warn if the system preference "Prefer tabs when
opening documents" is set to "Always".
- bpo-34864: Document two IDLE on MacOS issues. The System Preferences Dock
"prefer tabs always" setting disables some IDLE features. Menus are a bit
different than as described for Windows and Linux.
- bpo-35202: Remove unused imports from lib/idlelib
- bpo-33000: Document that IDLE's shell has no line limit. A program that
runs indefinitely can overfill memory.
- bpo-23220: Explain how IDLE's Shell displays output.
- bpo-35099: Improve the doc about IDLE running user code. The section is
renamed from "IDLE -- console differences" is renamed "Running user code".
It mostly covers the implications of using custom sys.stdxxx objects.
- bpo-35097: Add IDLE doc subsection explaining editor windows. Topics
include opening, title and status bar, .py* extension, and running.
- bpo-35093: Document the IDLE document viewer in the IDLE doc. Add a
paragraph in "Help and preferences", "Help sources" subsection.
- bpo-35088: Update idlelib.help.copy_string docstring. We now use git and
backporting instead of hg and forward merging.
- bpo-35087: Update idlelib help files for the current doc build. The main
change is the elimination of chapter-section numbers.
Tools/Demos
-----------
- bpo-34989: python-gdb.py now handles errors on computing the line number
of a Python frame.
C API
-----
- bpo-35322: Fix memory leak in :c:func:`PyUnicode_EncodeLocale` and
:c:func:`PyUnicode_EncodeFSDefault` on error handling.
- bpo-35296: ``make install`` now also installs the internal API:
``Include/internal/*.h`` header files.
- bpo-34725: Adds _Py_SetProgramFullPath so embedders may override
sys.executable
What's New in Python 3.7.1 final?
=================================
*Release date: 2018-10-20*
Library
-------
- bpo-34970: Protect tasks weak set manipulation in ``asyncio.all_tasks()``
What's New in Python 3.7.1 release candidate 2?
===============================================
*Release date: 2018-10-13*
Core and Builtins
-----------------
- bpo-34879: Fix a possible null pointer dereference in bytesobject.c.
Patch by Zackery Spytz.
- bpo-34854: Fixed a crash in compiling string annotations containing a
lambda with a keyword-only argument that doesn't have a default value.
- bpo-34320: Fix ``dict(od)`` didn't copy iteration order of OrderedDict.
Library
-------
- bpo-34769: Fix for async generators not finalizing when event loop is in
debug mode and garbage collector runs in another thread.
- bpo-34922: Fixed integer overflow in the :meth:`~hashlib.shake.digest()`
and :meth:`~hashlib.shake.hexdigest()` methods for the SHAKE algorithm in
the :mod:`hashlib` module.
- bpo-34909: Enum: fix grandchildren subclassing when parent mixed with
concrete data types.
- bpo-34900: Fixed :meth:`unittest.TestCase.debug` when used to call test
methods with subtests. Patch by Bruno Oliveira.
- bpo-34871: Fix inspect module polluted ``sys.modules`` when parsing
``__text_signature__`` of callable.
- bpo-34872: Fix self-cancellation in C implementation of asyncio.Task
- bpo-34819: Use a monotonic clock to compute timeouts in
:meth:`Executor.map` and :func:`as_completed`, in order to prevent
timeouts from deviating when the system clock is adjusted.
- bpo-34521: Use :func:`socket.CMSG_SPACE` to calculate ancillary data size
instead of :func:`socket.CMSG_LEN` in
:func:`multiprocessing.reduction.recvfds` as :rfc:`3542` requires the use
of the former for portable applications.
- bpo-34334: In :class:`QueueHandler`, clear `exc_text` from
:class:`LogRecord` to prevent traceback from being written twice.
- bpo-6721: Acquire the logging module's commonly used internal locks while
fork()ing to avoid deadlocks in the child process.
- bpo-34172: Fix a reference issue inside multiprocessing.Pool that caused
the pool to remain alive if it was deleted without being closed or
terminated explicitly.
Documentation
-------------
- bpo-32174: chm document displays non-ASCII charaters properly on some MBCS
Windows systems.
Tests
-----
- bpo-32962: Fixed test_gdb when Python is compiled with flags -mcet
-fcf-protection -O0.
macOS
-----
- bpo-34370: Revert to using the released Tk 8.6.8 with macOS installers
instead of the Tk 8.6.x development snapshot used with 3.7.1rc1 and
3.6.7rc1. The snapshot introduced at least one significant regression
(bpo-34927).
C API
-----
- bpo-34910: Ensure that :c:func:`PyObject_Print` always returns ``-1`` on
error. Patch by Zackery Spytz.
What's New in Python 3.7.1 release candidate 1?
===============================================
*Release date: 2018-09-26*
Security
--------
- bpo-17239: The xml.sax and xml.dom.minidom parsers no longer processes
external entities by default. External DTD and ENTITY declarations no
longer load files or create network connections.
- bpo-34623: CVE-2018-14647: The C accelerated _elementtree module now
initializes hash randomization salt from _Py_HashSecret instead of
libexpat's default CSPRNG.
- bpo-34405: Updated to OpenSSL 1.1.0i for Windows builds.
- bpo-33871: Fixed sending the part of the file in :func:`os.sendfile` on
macOS. Using the *trailers* argument could cause sending more bytes from
the input file than was specified.
- bpo-32533: Fixed thread-safety of error handling in _ssl.
Core and Builtins
-----------------
- bpo-34783: Fix a crash with musl libc (on Alpine Linux) when the script
filename specified on the command line doesn't exist.
- bpo-34762: Fix contextvars C API to use PyObject* pointer types.
- bpo-34735: Fix a memory leak in Modules/timemodule.c. Patch by Zackery
Spytz.
- bpo-34588: Fix an off-by-one in the recursive call pruning feature of
traceback formatting.
- bpo-34485: Standard streams like sys.stdout now use the "surrogateescape"
error handler, instead of "strict", on the POSIX locale (when the C locale
is not coerced and the UTF-8 Mode is disabled).
- bpo-34485: Fix the error handler of standard streams like sys.stdout:
PYTHONIOENCODING=":" is now ignored instead of setting the error handler
to "strict".
- bpo-34527: On FreeBSD, Py_DecodeLocale() and Py_EncodeLocale() now also
forces the ASCII encoding if the LC_CTYPE locale is "POSIX", not only if
the LC_CTYPE locale is "C".
- bpo-34527: The UTF-8 Mode is now also enabled by the "POSIX" locale, not
only by the "C" locale.
- bpo-34400: Fix undefined behavior in parsetok.c. Patch by Zackery Spytz.
- bpo-34377: Update valgrind suppression list to use