]> git.ipfire.org Git - thirdparty/Python/cpython.git/log
thirdparty/Python/cpython.git
5 years agoLink to list of keywords in the laguage reference (GH-18024)
Борис Верховский [Sat, 14 Mar 2020 19:09:15 +0000 (15:09 -0400)] 
Link to list of keywords in the laguage reference (GH-18024)

5 years agobpo-38576: Disallow control characters in hostnames in http.client (GH-18995)
Ashwin Ramaswami [Sat, 14 Mar 2020 18:56:06 +0000 (14:56 -0400)] 
bpo-38576: Disallow control characters in hostnames in http.client (GH-18995)

Add host validation for control characters for more CVE-2019-18348 protection.

5 years agobpo-39677: dis: rename the operand of MAKE_FUNCTION from `argc` to `flags` for 3...
Taine Zhao [Sat, 14 Mar 2020 14:24:06 +0000 (23:24 +0900)] 
bpo-39677: dis: rename the operand of MAKE_FUNCTION from `argc` to `flags` for 3.6+ (GC-18550)

5 years agobpo-39509: Update HTTP status code to follow IANA (GH-18294)
Dong-hee Na [Sat, 14 Mar 2020 14:12:01 +0000 (23:12 +0900)] 
bpo-39509: Update HTTP status code to follow IANA (GH-18294)

Add status codes 103 EARLY_HINTS and 425 TOO_EARLY.

5 years agobpo-39582: ossaudiodev module update helpers signature for ioctl calls. (GH-18412)
David CARLIER [Sat, 14 Mar 2020 13:48:56 +0000 (13:48 +0000)] 
bpo-39582: ossaudiodev module update helpers signature for ioctl calls. (GH-18412)

5 years agobpo-39585: Delete a pending comment in _warning.c (GH-18414)
Hai Shi [Sat, 14 Mar 2020 13:40:58 +0000 (21:40 +0800)] 
bpo-39585: Delete a pending comment in _warning.c (GH-18414)

5 years agoMake cpython/abstract.h compatible with C90 (#18481)
Peter Eisentraut [Sat, 14 Mar 2020 11:47:09 +0000 (12:47 +0100)] 
Make cpython/abstract.h compatible with C90 (#18481)

Some inline functions use mixed declarations and code.  These end up
visible in third-party code that includes Python.h, which might not be
using a C99 compiler.  Fix by moving the declarations first, like in
the old days.

5 years agobpo-39871: Fix possible SystemError in atan2, copysign and remainder (GH-18806)
Zackery Spytz [Sat, 14 Mar 2020 10:45:32 +0000 (04:45 -0600)] 
bpo-39871: Fix possible SystemError in atan2, copysign and remainder (GH-18806)

In math_2(), the first PyFloat_AsDouble() call should be checked
for failure before the second call.

Co-authored-by: Mark Dickinson <dickinsm@gmail.com>
5 years agoRevert "bpo-39087: Add _PyUnicode_GetUTF8Buffer()" (GH-18985)
Inada Naoki [Sat, 14 Mar 2020 06:59:27 +0000 (15:59 +0900)] 
Revert "bpo-39087: Add _PyUnicode_GetUTF8Buffer()" (GH-18985)

* Revert "bpo-39087: Add _PyUnicode_GetUTF8Buffer() (GH-17659)"

This reverts commit c7ad974d341d3edb6b9d2a2dcae4d3d4794ada6b.

* Update unicodeobject.h

5 years agobpo-39937: Improve suggestions for removal of getchildren and getiterator in changelo...
Rahul Kumaresan [Sat, 14 Mar 2020 05:50:24 +0000 (11:20 +0530)] 
bpo-39937: Improve suggestions for removal of getchildren and getiterator in changelog (GH-18937)

Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
5 years agobpo-39087: Add _PyUnicode_GetUTF8Buffer() (GH-17659)
Inada Naoki [Sat, 14 Mar 2020 03:43:18 +0000 (12:43 +0900)] 
bpo-39087: Add _PyUnicode_GetUTF8Buffer() (GH-17659)

Co-authored-by: Victor Stinner <vstinner@python.org>
5 years agobpo-39947: Add PyThreadState_GetInterpreter() (GH-18981)
Victor Stinner [Fri, 13 Mar 2020 22:38:08 +0000 (23:38 +0100)] 
bpo-39947: Add PyThreadState_GetInterpreter() (GH-18981)

Add PyThreadState_GetInterpreter(tstate): get the interpreter of a
Python thread state.

5 years agobpo-39947: Add PyInterpreterState_Get() function (GH-18979)
Victor Stinner [Fri, 13 Mar 2020 17:15:33 +0000 (18:15 +0100)] 
bpo-39947: Add PyInterpreterState_Get() function (GH-18979)

* Rename _PyInterpreterState_Get() to PyInterpreterState_Get() and
  move it the limited C API.
* Add _PyInterpreterState_Get() alias to PyInterpreterState_Get() for
  backward compatibility with Python 3.8.

5 years agobpo-39947: Use _PyInterpreterState_GET_UNSAFE() (GH-18978)
Victor Stinner [Fri, 13 Mar 2020 17:03:56 +0000 (18:03 +0100)] 
bpo-39947: Use _PyInterpreterState_GET_UNSAFE() (GH-18978)

Replace _PyInterpreterState_Get() function call with
_PyInterpreterState_GET_UNSAFE() macro which is more efficient but
don't check if tstate or interp is NULL.

_Py_GetConfigsAsDict() now uses _PyThreadState_GET().

5 years agobpo-36144: OrderedDict Union (PEP 584) (#18967)
Brandt Bucher [Fri, 13 Mar 2020 16:06:04 +0000 (09:06 -0700)] 
bpo-36144: OrderedDict Union (PEP 584) (#18967)

5 years agobpo-36144: Update os.environ and os.environb for PEP 584 (#18911)
Charles Burkland [Fri, 13 Mar 2020 16:04:43 +0000 (09:04 -0700)] 
bpo-36144: Update os.environ and os.environb for PEP 584  (#18911)

5 years agobpo-39947: Hide implementation detail of trashcan macros (GH-18971)
Victor Stinner [Fri, 13 Mar 2020 15:51:52 +0000 (16:51 +0100)] 
bpo-39947: Hide implementation detail of trashcan macros (GH-18971)

Py_TRASHCAN_BEGIN_CONDITION and Py_TRASHCAN_END macro no longer
access PyThreadState attributes, but call new private
_PyTrash_begin() and _PyTrash_end() functions which hide
implementation details.

5 years agobpo-35370: Add _PyEval_SetTrace() function (GH-18975)
Victor Stinner [Fri, 13 Mar 2020 15:39:12 +0000 (16:39 +0100)] 
bpo-35370: Add _PyEval_SetTrace() function (GH-18975)

* sys.settrace(), sys.setprofile() and _lsprof.Profiler.enable() now
  properly report PySys_Audit() error if "sys.setprofile" or
  "sys.settrace" audit event is denied.
* Add _PyEval_SetProfile() and _PyEval_SetTrace() function: similar
  to PyEval_SetProfile() and PyEval_SetTrace() but take a tstate
  parameter and return -1 on error.
* Add _PyObject_FastCallTstate() function.

5 years agobpo-37207: Use PEP 590 vectorcall to speed up tuple() (GH-18936)
Dong-hee Na [Fri, 13 Mar 2020 13:57:00 +0000 (22:57 +0900)] 
bpo-37207: Use PEP 590 vectorcall to speed up tuple() (GH-18936)

Master:

./python.exe -m pyperf timeit "tuple((1, 2, 3, 4, 5))"
Mean +- std dev: 361 ns +- 15 ns

PEP-590:

./python.exe -m pyperf timeit "tuple((1, 2, 3, 4, 5))"
Mean +- std dev: 203 ns +- 13 ns

5 years agobpo-39947: Move get_recursion_depth() to _testinternalcapi (GH-18974)
Victor Stinner [Fri, 13 Mar 2020 12:07:31 +0000 (13:07 +0100)] 
bpo-39947: Move get_recursion_depth() to _testinternalcapi (GH-18974)

Move get_recursion_depth() function from _testcapi to
_testinternalcapi to avoid accessing PyThreadState attributes
directly in _testcapi.

5 years agobpo-39947: Move Py_EnterRecursiveCall() to internal C API (GH-18972)
Victor Stinner [Fri, 13 Mar 2020 09:19:38 +0000 (10:19 +0100)] 
bpo-39947: Move Py_EnterRecursiveCall() to internal C API (GH-18972)

Move the static inline function flavor of Py_EnterRecursiveCall() and
Py_LeaveRecursiveCall() to the internal C API: they access
PyThreadState attributes. The limited C API provides regular
functions which hide implementation details.

5 years agobpo-38500: Add _PyInterpreterState_SetEvalFrameFunc() (GH-17340)
Victor Stinner [Thu, 12 Mar 2020 22:18:39 +0000 (23:18 +0100)] 
bpo-38500: Add _PyInterpreterState_SetEvalFrameFunc() (GH-17340)

PyInterpreterState.eval_frame function now requires a tstate (Python
thread state) parameter.

Add private functions to the C API to get and set the frame
evaluation function:

* Add tstate parameter to _PyFrameEvalFunction function type.
* Add _PyInterpreterState_GetEvalFrameFunc() and
  _PyInterpreterState_SetEvalFrameFunc() functions.
* Add tstate parameter to _PyEval_EvalFrameDefault().

5 years agobpo-39936: _aix_support uses _bootsubprocess (GH-18970)
Victor Stinner [Thu, 12 Mar 2020 22:15:34 +0000 (23:15 +0100)] 
bpo-39936: _aix_support uses _bootsubprocess (GH-18970)

AIX: Fix _aix_support module when the subprocess is not available,
when building Python from scratch. It now uses new private
_bootsubprocess module, rather than having two implementations
depending if subprocess is available or not. So
_aix_support.aix_platform() result is now the same if subprocess is
available or not.

5 years agobpo-39689: Do not test undefined casts to _Bool (GH-18964)
Stefan Krah [Thu, 12 Mar 2020 18:35:38 +0000 (19:35 +0100)] 
bpo-39689: Do not test undefined casts to _Bool (GH-18964)

- When casting to _Bool, arrays should only contain zeros or ones.

5 years agoDoc: Fix grammar in PyErr_ResourceWarning (GH-18879)
Daniel Hahler [Thu, 12 Mar 2020 17:09:30 +0000 (18:09 +0100)] 
Doc: Fix grammar in PyErr_ResourceWarning (GH-18879)

5 years agobpo-1294959: Fix typo for new attribute platlibdir. (GH-18960)
Raúl Cumplido [Thu, 12 Mar 2020 14:38:19 +0000 (15:38 +0100)] 
bpo-1294959: Fix typo for new attribute platlibdir. (GH-18960)

Received email on the docs mailing list to fix a typo from `sys.platlitdir` which doesn't exist to the correct new attribute `sys.platlibdir`

Automerge-Triggered-By: @vstinner
5 years agoRemove unused args from two pylifecycle.c functions (GH-18867)
Andy Lester [Thu, 12 Mar 2020 07:49:05 +0000 (02:49 -0500)] 
Remove unused args from two pylifecycle.c functions (GH-18867)

* Remove unused tstate argument from init_set_builtins_open()
* Replace fd (int) with tstate (PyThreadState *) in in _Py_FatalError_PrintExc()

5 years agobpo-39884: Add method name in "bad call flags" error (GH-18944)
Victor Stinner [Thu, 12 Mar 2020 07:38:11 +0000 (08:38 +0100)] 
bpo-39884: Add method name in "bad call flags" error (GH-18944)

PyDescr_NewMethod() and PyCFunction_NewEx() now include the method
name in the SystemError "bad call flags" error message to ease debug.

5 years agoSimplify defaultdict.__or__ (#18931)
Brandt Bucher [Thu, 12 Mar 2020 04:06:46 +0000 (21:06 -0700)] 
Simplify defaultdict.__or__ (#18931)

5 years agoFix syntax error in an example in the ast documentation and sync docstrings (GH-18946)
Pablo Galindo [Thu, 12 Mar 2020 00:48:19 +0000 (00:48 +0000)] 
Fix syntax error in an example in the ast documentation and sync docstrings (GH-18946)

5 years agobpo-38080: Added "getproxies" to urllib fixes in the 2to3 tool (GH-16167)
José Roberto Meza Cabrera [Wed, 11 Mar 2020 23:51:20 +0000 (18:51 -0500)] 
bpo-38080: Added "getproxies" to urllib fixes in the 2to3 tool (GH-16167)

5 years agobpo-39847: EnterNonRecursiveMutex() uses GetTickCount64() (GH-18780)
bobince [Wed, 11 Mar 2020 23:39:02 +0000 (23:39 +0000)] 
bpo-39847: EnterNonRecursiveMutex() uses GetTickCount64() (GH-18780)

The 32-bit (49-day) TickCount relied on in EnterNonRecursiveMutex can overflow
in the gap between the 'target' time and the 'now' time WaitForSingleObjectEx
returns, causing the loop to think it needs to wait another 49 days. This is
most likely to happen when the machine is hibernated during
WaitForSingleObjectEx.

This makes acquiring a lock/event/etc from the _thread or threading module
appear to never timeout.

Replace with GetTickCount64 - this is OK now Python no longer supports XP which
lacks it, and is in use for time.monotonic().

Co-authored-by: And Clover <and.clover@bromium.com>
5 years agobpo-39930: Fix MSBuild detection for Build Tools (GH-18938)
Steve Dower [Wed, 11 Mar 2020 23:24:30 +0000 (23:24 +0000)] 
bpo-39930: Fix MSBuild detection for Build Tools (GH-18938)

Ensure we detect Build Tools installs using the newer logic, and skip looking in the registry for VS 2017.

5 years agobpo-1635741: Fix refleaks of time module error handling (GH-18486)
Hai Shi [Wed, 11 Mar 2020 16:56:08 +0000 (00:56 +0800)] 
bpo-1635741: Fix refleaks of time module error handling (GH-18486)

5 years agobpo-1635741: Fix potential refleaks in binascii module (GH-18613)
Hai Shi [Wed, 11 Mar 2020 16:50:52 +0000 (00:50 +0800)] 
bpo-1635741: Fix potential refleaks in binascii module (GH-18613)

5 years agobpo-1635741: Port audioop extension module to multiphase initialization (PEP 489...
Hai Shi [Wed, 11 Mar 2020 16:49:11 +0000 (00:49 +0800)] 
bpo-1635741: Port audioop extension module to multiphase initialization (PEP 489) (GH-18608)

Co-authored-by: Victor Stinner <vstinner@python.org>
5 years agobpo-1635741: Port _locale extension module to multiphase initialization (PEP 489...
Hai Shi [Wed, 11 Mar 2020 16:46:06 +0000 (00:46 +0800)] 
bpo-1635741: Port _locale extension module to multiphase initialization (PEP 489) (GH-18358)

Co-authored-by: Petr Viktorin <pviktori@redhat.com>
5 years agobpo-39916: Use os.scandir() as context manager in Path.glob(). (GH-18880)
Serhiy Storchaka [Wed, 11 Mar 2020 16:42:03 +0000 (18:42 +0200)] 
bpo-39916: Use os.scandir() as context manager in Path.glob(). (GH-18880)

5 years agobpo-39915: Ensure await_args_list is updated according to the order in which coroutin...
Karthikeyan Singaravelan [Wed, 11 Mar 2020 15:06:12 +0000 (20:36 +0530)] 
bpo-39915: Ensure await_args_list is updated according to the order in which coroutines were awaited (GH-18924)

Create call objects with awaited arguments instead of using call_args which has only last call value.

5 years agobpo-39930: Convert error to warning for more silent failure (GH-18921)
Steve Dower [Wed, 11 Mar 2020 14:12:31 +0000 (14:12 +0000)] 
bpo-39930: Convert error to warning for more silent failure (GH-18921)

Makes it an error to create a layout without vcruntime DLL

5 years agobpo-39761: Fix dtrace build with empty $DFLAGS (GH-18766)
Petr Viktorin [Wed, 11 Mar 2020 13:27:42 +0000 (14:27 +0100)] 
bpo-39761: Fix dtrace build with empty $DFLAGS (GH-18766)

This fixes a regression introduced in bpo-38960.

When DFLAGS was empty, "$DFLAGS" results in an empty argument ("").
Without the quotes, an empty variable will be ignored by the shell.

5 years agobpo-39930: Ensure vcruntime140.dll is included in all Windows packages (GH-18918)
Steve Dower [Wed, 11 Mar 2020 11:18:12 +0000 (11:18 +0000)] 
bpo-39930: Ensure vcruntime140.dll is included in all Windows packages (GH-18918)

Also adds GitHub CI test for Windows installer changes

5 years agoFix download.html (GH-18902)
Inada Naoki [Wed, 11 Mar 2020 04:23:24 +0000 (13:23 +0900)] 
Fix download.html (GH-18902)

`<tt>` is not allowed.

Co-authored-by: Kyle Stanley <aeros167@gmail.com>
5 years agobpo-39926: Update unicodedata checksum tests for Unicode 13.0 update. (GH-18913)
Benjamin Peterson [Wed, 11 Mar 2020 04:18:33 +0000 (21:18 -0700)] 
bpo-39926: Update unicodedata checksum tests for Unicode 13.0 update. (GH-18913)

I forget these tests required the cpu resource.

5 years agoUpdate some www.unicode.org URLs to use HTTPS. (GH-18912)
Benjamin Peterson [Wed, 11 Mar 2020 04:10:59 +0000 (21:10 -0700)] 
Update some www.unicode.org URLs to use HTTPS. (GH-18912)

5 years agocloses bpo-39926: Update Unicode to 13.0.0. (GH-18910)
Benjamin Peterson [Wed, 11 Mar 2020 03:41:34 +0000 (20:41 -0700)] 
closes bpo-39926: Update Unicode to 13.0.0. (GH-18910)

5 years agocloses bpo-39922: Remove unused args from four functions. (GH-18893)
Andy Lester [Wed, 11 Mar 2020 02:18:12 +0000 (21:18 -0500)] 
closes bpo-39922: Remove unused args from four functions. (GH-18893)

5 years agoUpdates functools.py with consistent quotes (GH-18825)
Nikita Sobolev [Wed, 11 Mar 2020 00:32:15 +0000 (03:32 +0300)] 
Updates functools.py with consistent quotes (GH-18825)

I have noticed that `'` quotes are used everywhere except this particular case,
which was introduced in https://github.com/python/cpython/pull/18726

So, this is a trivial fix to enforce better consistency.

5 years agobpo-38631: _PyGILState_Init() returns PyStatus (GH-18908)
Victor Stinner [Tue, 10 Mar 2020 22:49:16 +0000 (23:49 +0100)] 
bpo-38631: _PyGILState_Init() returns PyStatus (GH-18908)

_PyGILState_Init() now returns PyStatus rather than calling
Py_FatalError() on failure.

5 years agobpo-38662: ensurepip invokes pip via runpy (GH-18901)
Miro Hrončok [Tue, 10 Mar 2020 21:16:28 +0000 (22:16 +0100)] 
bpo-38662: ensurepip invokes pip via runpy (GH-18901)

The ensurepip module now invokes pip via the runpy module.
Hence it is no longer tightly coupled with the internal API of the bundled
pip version, allowing easier updates to a newer pip version both
internally and for distributors.

This way, any changes to the internal pip API won't mean ensurepip needs to be
changed as well. Also, distributors can update their pip wheels independent on
CPython release schedule.

Co-Authored-By: Pradyun Gedam <pradyunsg@gmail.com>
Co-Authored-By: Miro Hrončok <miro@hroncok.cz>
5 years agotracemalloc: 'pretty top' example no longer changes the filename (GH-18903)
Adam Johnson [Tue, 10 Mar 2020 18:18:50 +0000 (18:18 +0000)] 
tracemalloc: 'pretty top' example no longer changes the filename (GH-18903)

I've used this recipe a couple times and the filename editing has always
been less than useful and something I've removed. This is because many
modules end up losing which package they are located in, e.g. `util/date.py`.

5 years agobpo-34822: Simplify AST for subscription. (GH-9605)
Serhiy Storchaka [Tue, 10 Mar 2020 16:52:34 +0000 (18:52 +0200)] 
bpo-34822: Simplify AST for subscription. (GH-9605)

* Remove the slice type.
* Make Slice a kind of the expr type instead of the slice type.
* Replace ExtSlice(slices) with Tuple(slices, Load()).
* Replace Index(value) with a value itself.

All non-terminal nodes in AST for expressions are now of the expr type.

5 years agobpo-39869: Fix typo in 'Instance objects' section. (GH-18889)
Antoine [Tue, 10 Mar 2020 14:17:40 +0000 (15:17 +0100)] 
bpo-39869: Fix typo in 'Instance objects' section. (GH-18889)

5 years agobpo-38075: Fix random_seed(): use PyObject_CallOneArg() (GH-18897)
Victor Stinner [Tue, 10 Mar 2020 14:15:14 +0000 (15:15 +0100)] 
bpo-38075: Fix random_seed(): use PyObject_CallOneArg() (GH-18897)

Fix the random.Random.seed() method when a bool is passed as the
seed.

PyObject_Vectorcall() was misused: use PyObject_CallOneArg() instead.

5 years agobpo-1294959: Add sys.platlibdir attribute (GH-18381)
Victor Stinner [Tue, 10 Mar 2020 08:53:09 +0000 (09:53 +0100)] 
bpo-1294959: Add sys.platlibdir attribute (GH-18381)

Add --with-platlibdir option to the configure script: name of the
platform-specific library directory, stored in the new sys.platlitdir
attribute. It is used to build the path of platform-specific dynamic
libraries and the path of the standard library.

It is equal to "lib" on most platforms. On Fedora and SuSE, it is
equal to "lib64" on 64-bit systems.

Co-Authored-By: Jan Matějek <jmatejek@suse.com>
Co-Authored-By: Matěj Cepl <mcepl@cepl.eu>
Co-Authored-By: Charalampos Stratakis <cstratak@redhat.com>
5 years agobpo-39828: Fix json.tool to catch BrokenPipeError (GH-18779)
Dong-hee Na [Tue, 10 Mar 2020 07:41:44 +0000 (16:41 +0900)] 
bpo-39828: Fix json.tool to catch BrokenPipeError (GH-18779)

5 years agobpo-39877: Deprecate PyEval_InitThreads() (GH-18892)
Victor Stinner [Tue, 10 Mar 2020 00:28:54 +0000 (01:28 +0100)] 
bpo-39877: Deprecate PyEval_InitThreads() (GH-18892)

Deprecated PyEval_InitThreads() and PyEval_ThreadsInitialized().
Calling PyEval_InitThreads() now does nothing.

5 years agobpo-39877: PyGILState_Ensure() don't call PyEval_InitThreads() (GH-18891)
Victor Stinner [Mon, 9 Mar 2020 23:37:48 +0000 (00:37 +0100)] 
bpo-39877: PyGILState_Ensure() don't call PyEval_InitThreads() (GH-18891)

PyGILState_Ensure() doesn't call PyEval_InitThreads() anymore when a
new Python thread state is created. The GIL is created by
Py_Initialize() since Python 3.7, it's not needed to call
PyEval_InitThreads() explicitly.

Add an assertion to ensure that the GIL is already created.

5 years agobpo-39763: Add _bootsubprocess to build Python on AIX (GH-18872)
Victor Stinner [Mon, 9 Mar 2020 22:45:59 +0000 (23:45 +0100)] 
bpo-39763: Add _bootsubprocess to build Python on AIX (GH-18872)

Add _bootsubprocess module to bootstrap Python: subprocess
implementation which only uses the os module.

On AIX, distutils.util uses _aix_support which calls
subprocess.check_output(), before the _posixsubprocess module is
built. Implement check_output() with os.system() in _bootsubprocess.

5 years agobpo-19466: Py_Finalize() clears daemon threads earlier (GH-18848)
Victor Stinner [Mon, 9 Mar 2020 22:37:49 +0000 (23:37 +0100)] 
bpo-19466: Py_Finalize() clears daemon threads earlier (GH-18848)

Clear the frames of daemon threads earlier during the Python shutdown to
call objects destructors. So "unclosed file" resource warnings are now
emitted for daemon threads in a more reliable way.

Cleanup _PyThreadState_DeleteExcept() code: rename "garbage" to
"list".

5 years agobpo-28577: Special case added to IP v4 and v6 hosts for /32 and /128 networks (GH...
Pete Wicken [Mon, 9 Mar 2020 22:33:45 +0000 (22:33 +0000)] 
bpo-28577: Special case added to IP v4 and v6 hosts for /32 and /128 networks (GH-18757)

The `.hosts()` method now returns the single address present in a /32 or /128 network.

5 years agobpo-39877: take_gil() checks tstate_must_exit() twice (GH-18890)
Victor Stinner [Mon, 9 Mar 2020 22:10:53 +0000 (23:10 +0100)] 
bpo-39877: take_gil() checks tstate_must_exit() twice (GH-18890)

take_gil() now also checks tstate_must_exit() after acquiring
the GIL: exit the thread if Py_Finalize() has been called.

5 years agobpo-36287: Make ast.dump() not output optional fields and attributes with default...
Serhiy Storchaka [Mon, 9 Mar 2020 22:07:47 +0000 (00:07 +0200)] 
bpo-36287: Make ast.dump() not output optional fields and attributes with default values. (GH-18843)

The default values for optional fields and attributes of AST nodes are now set
as class attributes (e.g. Constant.kind is set to None).

5 years agobpo-39877: Refactor take_gil() function (GH-18885)
Victor Stinner [Mon, 9 Mar 2020 21:12:04 +0000 (22:12 +0100)] 
bpo-39877: Refactor take_gil() function (GH-18885)

* Remove ceval parameter of take_gil(): get it from tstate.
* Move exit_thread_if_finalizing() call inside take_gil(). Replace
  exit_thread_if_finalizing() with tstate_must_exit(): the caller is
  now responsible to call PyThread_exit_thread().
* Move is_tstate_valid() assertion inside take_gil(). Remove
  is_tstate_valid(): inline code into take_gil().
* Move gil_created() assertion inside take_gil().

5 years agobpo-27115: Use Query subclass for IDLE editor Goto (GH-18871)
Terry Jan Reedy [Mon, 9 Mar 2020 20:51:20 +0000 (16:51 -0400)] 
bpo-27115: Use Query subclass for IDLE editor Goto (GH-18871)

Replace tkinter tkSimpleDialog.askinteger with a standard IDLE query dialog.
The new box checks for positivity before returning.

5 years agobpo-38870: Simplify sequence interleaves in ast.unparse (GH-17892)
Batuhan Taşkaya [Mon, 9 Mar 2020 20:27:03 +0000 (23:27 +0300)] 
bpo-38870: Simplify sequence interleaves in ast.unparse (GH-17892)

5 years agobpo-39877: Py_Initialize() pass tstate to PyEval_InitThreads() (GH-18884)
Victor Stinner [Mon, 9 Mar 2020 20:24:14 +0000 (21:24 +0100)] 
bpo-39877: Py_Initialize() pass tstate to PyEval_InitThreads() (GH-18884)

5 years agobpo-39877: Remove useless PyEval_InitThreads() calls (GH-18883)
Victor Stinner [Mon, 9 Mar 2020 19:56:57 +0000 (20:56 +0100)] 
bpo-39877: Remove useless PyEval_InitThreads() calls (GH-18883)

Py_Initialize() calls PyEval_InitThreads() since Python 3.7. It's no
longer needed to call it explicitly.

5 years agobpo-38249: Expand Py_UNREACHABLE() to __builtin_unreachable() in the release mode...
Serhiy Storchaka [Mon, 9 Mar 2020 18:49:52 +0000 (20:49 +0200)] 
bpo-38249: Expand Py_UNREACHABLE() to __builtin_unreachable() in the release mode. (GH-16329)

Co-authored-by: Victor Stinner <vstinner@python.org>
5 years agobpo-36184: Port python-gdb.py to FreeBSD (GH-18873)
Victor Stinner [Mon, 9 Mar 2020 18:35:26 +0000 (19:35 +0100)] 
bpo-36184: Port python-gdb.py to FreeBSD (GH-18873)

python-gdb.py now checks for "take_gil" function name to check if a
frame tries to acquire the GIL, instead of checking for
"pthread_cond_timedwait" which is specific to Linux and can be a
different condition than the GIL.

5 years agobpo-38643: Raise SystemError instead of crashing when PyNumber_ToBase is called with...
Serhiy Storchaka [Mon, 9 Mar 2020 18:03:38 +0000 (20:03 +0200)] 
bpo-38643: Raise SystemError instead of crashing when PyNumber_ToBase is called with invalid base. (GH-18863)

5 years agobpo-39904: Move handling of one-argument call of type() from type.__new__() to type...
Serhiy Storchaka [Mon, 9 Mar 2020 17:59:03 +0000 (19:59 +0200)] 
bpo-39904: Move handling of one-argument call of type() from type.__new__() to type.__call__(). (GH-18852)

5 years agobpo-39850: Add support for abstract sockets in multiprocessing (GH-18866)
Pablo Galindo [Mon, 9 Mar 2020 13:48:01 +0000 (13:48 +0000)] 
bpo-39850: Add support for abstract sockets in multiprocessing (GH-18866)

5 years agobpo-39822: Use NULL instead of None for empty attrib in Element. (GH-18735)
Serhiy Storchaka [Mon, 9 Mar 2020 13:12:41 +0000 (15:12 +0200)] 
bpo-39822: Use NULL instead of None for empty attrib in Element. (GH-18735)

5 years agobpo-39903: Fix double decref in _elementtree.Element.__getstate__ (GH-18850)
Serhiy Storchaka [Mon, 9 Mar 2020 12:37:08 +0000 (14:37 +0200)] 
bpo-39903: Fix double decref in _elementtree.Element.__getstate__ (GH-18850)

5 years agobpo-38691: importlib ignores PYTHONCASEOK if -E is used (GH-18627)
idomic [Mon, 9 Mar 2020 11:57:53 +0000 (07:57 -0400)] 
bpo-38691: importlib ignores PYTHONCASEOK if -E is used (GH-18627)

The importlib module now ignores the PYTHONCASEOK
environment variable when the -E or -I command line
options are being used.

5 years agobpo-27115: Move IDLE Query error blanking (GH-18868)
Terry Jan Reedy [Mon, 9 Mar 2020 05:38:07 +0000 (01:38 -0400)] 
bpo-27115: Move IDLE Query error blanking (GH-18868)

Move required blanking of error text to non-overridden entry_ok().
(Omit news item.)

5 years agoFix typo in the parser generator (GH-18603)
xatier [Mon, 9 Mar 2020 02:58:24 +0000 (19:58 -0700)] 
Fix typo in the parser generator (GH-18603)

5 years agobpo-39517: Allow runpy.run_path() to accept path-like objects (GH-18699)
Maor Kleinberger [Sun, 8 Mar 2020 20:43:17 +0000 (22:43 +0200)] 
bpo-39517: Allow runpy.run_path() to accept path-like objects (GH-18699)

5 years ago bpo-39885: IDLE context menu clears selection (#18859)
Terry Jan Reedy [Sun, 8 Mar 2020 19:30:04 +0000 (15:30 -0400)] 
 bpo-39885: IDLE context menu clears selection  (#18859)

Since clicking to get an IDLE context menu moves the cursor,
any text selection should be and now is cleared.

5 years agobpo-39852: IDLE 'Go to line' deletes selection, updates status (GH-18801)
Terry Jan Reedy [Sun, 8 Mar 2020 18:32:42 +0000 (14:32 -0400)] 
bpo-39852: IDLE 'Go to line' deletes selection, updates status (GH-18801)

It appears standard that moving the text insert cursor away from a selection clears the
selection.  Clearing prevents accidental deletion of a possibly off-screen bit of text.
The update is for Ln and Col on the status bar.

5 years agofix typo: add space (GH-18853)
Julin S [Sun, 8 Mar 2020 17:52:15 +0000 (23:22 +0530)] 
fix typo: add space (GH-18853)

Fix typo in cmdline.rst
Add space between the `-m` option and the module name (`timeit`).

5 years agocloses bpo-39898: Remove unused arg from append_formattedvalue. (GH-18840)
Andy Lester [Sun, 8 Mar 2020 16:53:59 +0000 (11:53 -0500)] 
closes bpo-39898: Remove unused arg from append_formattedvalue. (GH-18840)

5 years agobpo-39567: Document audit for os.walk, os.fwalk, Path.glob and Path.rglob. (GH-18499)
Serhiy Storchaka [Sun, 8 Mar 2020 12:31:47 +0000 (14:31 +0200)] 
bpo-39567: Document audit for os.walk, os.fwalk, Path.glob and Path.rglob. (GH-18499)

5 years agobpo-39877: Fix PyEval_RestoreThread() for daemon threads (GH-18811)
Victor Stinner [Sun, 8 Mar 2020 10:57:45 +0000 (11:57 +0100)] 
bpo-39877: Fix PyEval_RestoreThread() for daemon threads (GH-18811)

* exit_thread_if_finalizing() does now access directly _PyRuntime
  variable, rather than using tstate->interp->runtime since tstate
  can be a dangling pointer after Py_Finalize() has been called.
* exit_thread_if_finalizing() is now called *before* calling
  take_gil(). _PyRuntime.finalizing is an atomic variable,
  we don't need to hold the GIL to access it.
* Add ensure_tstate_not_null() function to check that tstate is not
  NULL at runtime. Check tstate earlier. take_gil() does not longer
  check if tstate is NULL.

Cleanup:

* PyEval_RestoreThread() no longer saves/restores errno: it's already
  done inside take_gil().
* PyEval_AcquireLock(), PyEval_AcquireThread(),
  PyEval_RestoreThread() and _PyEval_EvalFrameDefault() now check if
  tstate is valid with the new is_tstate_valid() function which uses
  _PyMem_IsPtrFreed().

5 years agobpo-39890: Don't mutate the AST when compiling starred assignments (GH-18833)
Brandt Bucher [Sun, 8 Mar 2020 03:44:18 +0000 (19:44 -0800)] 
bpo-39890: Don't mutate the AST when compiling starred assignments (GH-18833)

5 years agobpo-36144: Update MappingProxyType with PEP 584's operators (#18814)
Brandt Bucher [Sat, 7 Mar 2020 19:03:09 +0000 (11:03 -0800)] 
bpo-36144: Update MappingProxyType with PEP 584's operators (#18814)

We make `|=` raise TypeError, since it would be surprising if `C.__dict__ |= {'x': 0}` silently did nothing, while `C.__dict__.update({'x': 0})` is an error.

5 years agobpo-39702: Update the Language Reference (PEP 614) (GH-18802)
Brandt Bucher [Sat, 7 Mar 2020 18:23:49 +0000 (10:23 -0800)] 
bpo-39702: Update the Language Reference (PEP 614) (GH-18802)

5 years agobpo-39199: Use 'eval' mode for the examples with expression nodes (GH-18828)
Pablo Galindo [Sat, 7 Mar 2020 18:22:58 +0000 (18:22 +0000)] 
bpo-39199: Use 'eval' mode for the examples with expression nodes (GH-18828)

Co-Authored-By: Serhiy Storchaka <storchaka@gmail.com>
5 years agobpo-38894: Fix pathlib.Path.glob in the presence of symlinks and insufficient permiss...
Pablo Galindo [Sat, 7 Mar 2020 17:53:20 +0000 (17:53 +0000)] 
bpo-38894: Fix pathlib.Path.glob in the presence of symlinks and insufficient permissions (GH-18815)

Co-authored-by: Matt Wozniski <mwozniski@bloomberg.net>
5 years agocloses bpo-39886: Remove unused arg from config_get_stdio_errors. (GH-18823)
Andy Lester [Sat, 7 Mar 2020 17:36:04 +0000 (11:36 -0600)] 
closes bpo-39886: Remove unused arg from config_get_stdio_errors. (GH-18823)

5 years agocloses bpo-39878: Remove unused arguments from static functions. (GH-18822)
Andy Lester [Sat, 7 Mar 2020 17:29:10 +0000 (11:29 -0600)] 
closes bpo-39878: Remove unused arguments from static functions. (GH-18822)

calc_number_widths -> PyObject *number

fill_number -> Py_ssize_t d_end

5 years agobpo-39889: Fix ast.unparse() for subscript. (GH-18824)
Serhiy Storchaka [Sat, 7 Mar 2020 15:25:32 +0000 (17:25 +0200)] 
bpo-39889: Fix ast.unparse() for subscript. (GH-18824)

5 years agobpo-39837: Disable macOS tests on Azure Pipelines (GH-18818)
Steve Dower [Sat, 7 Mar 2020 00:11:47 +0000 (00:11 +0000)] 
bpo-39837: Disable macOS tests on Azure Pipelines (GH-18818)

5 years agobpo-39882: Py_FatalError() logs the function name (GH-18819)
Victor Stinner [Fri, 6 Mar 2020 23:54:20 +0000 (00:54 +0100)] 
bpo-39882: Py_FatalError() logs the function name (GH-18819)

The Py_FatalError() function is replaced with a macro which logs
automatically the name of the current function, unless the
Py_LIMITED_API macro is defined.

Changes:

* Add _Py_FatalErrorFunc() function.
* Remove the function name from the message of Py_FatalError() calls
  which included the function name.
* Update tests.

5 years agobpo-39877: _PyRuntimeState.finalizing becomes atomic (GH-18816)
Victor Stinner [Fri, 6 Mar 2020 23:24:23 +0000 (00:24 +0100)] 
bpo-39877: _PyRuntimeState.finalizing becomes atomic (GH-18816)

Convert _PyRuntimeState.finalizing field to an atomic variable:

* Rename it to _finalizing
* Change its type to _Py_atomic_address
* Add _PyRuntimeState_GetFinalizing() and _PyRuntimeState_SetFinalizing()
  functions
* Remove _Py_CURRENTLY_FINALIZING() function: replace it with testing
  directly _PyRuntimeState_GetFinalizing() value

Convert _PyRuntimeState_GetThreadState() to static inline function.

5 years ago bpo-39573: Use Py_IS_TYPE() macro to check for types (GH-18809)
Andy Lester [Fri, 6 Mar 2020 22:53:17 +0000 (16:53 -0600)] 
 bpo-39573: Use Py_IS_TYPE() macro to check for types (GH-18809)

Co-authored-by: Victor Stinner <vstinner@python.org>
5 years agobpo-17422: slightly more precise language (GH-18682)
Caleb Donovick [Fri, 6 Mar 2020 18:20:48 +0000 (10:20 -0800)] 
bpo-17422: slightly more precise language (GH-18682)

5 years agobpo-39873: Cleanup _PyObject_CheckConsistency() (GH-18807)
Victor Stinner [Fri, 6 Mar 2020 17:57:48 +0000 (18:57 +0100)] 
bpo-39873: Cleanup _PyObject_CheckConsistency() (GH-18807)

Remove redundant check on Py_TYPE() value: it's already checked
inside _PyType_CheckConsistency().

5 years agobpo-36144: Implement defaultdict union (GH-18729)
Brandt Bucher [Fri, 6 Mar 2020 17:24:08 +0000 (09:24 -0800)] 
bpo-36144: Implement defaultdict union (GH-18729)

For PEP 585 (this isn't in the PEP but is an obvious follow-up).