Commit Graph

97807 Commits

Author SHA1 Message Date
Xavier de Gaye
5ca2b10213 Issue #28849: Merge 3.6. 2016-12-10 17:34:46 +01:00
Xavier de Gaye
32cf1acda8 Issue #28849: Do not define sys.implementation._multiarch on Android. 2016-12-10 17:31:28 +01:00
Antoine Pitrou
5c7198d464 Issue #28779: multiprocessing.set_forkserver_preload() would crash the forkserver process if a preloaded module instantiated some multiprocessing objects such as locks. 2016-12-10 17:19:21 +01:00
Antoine Pitrou
ebb39bcc04 Issue #28779: multiprocessing.set_forkserver_preload() would crash the forkserver process if a preloaded module instantiated some multiprocessing objects such as locks. 2016-12-10 17:16:17 +01:00
Antoine Pitrou
cd2a201e5b Issue #28779: multiprocessing.set_forkserver_preload() would crash the forkserver process if a preloaded module instantiated some multiprocessing objects such as locks. 2016-12-10 17:13:16 +01:00
Xavier de Gaye
c1a26a2e47 Issue #28918: Merge 3.6. 2016-12-10 16:48:07 +01:00
Xavier de Gaye
13f1c331a5 Issue #28918: Fix the cross compilation of xxlimited when Python
has been built with Py_DEBUG defined.
2016-12-10 16:45:53 +01:00
Martin Panter
b5e3959e5f Issue #28771: Merge C API doc fix from 3.6 2016-12-10 05:57:49 +00:00
Martin Panter
21799618ec Issue #28771: Merge C API doc fix from 3.5 2016-12-10 05:57:38 +00:00
Martin Panter
7a44783b42 Issue #28771: Update tp_get/setattr signature documentation 2016-12-10 05:56:13 +00:00
Martin Panter
9bcaa37e1c Issue #28820: Merge typo fixes from 3.6 2016-12-10 05:39:12 +00:00
Martin Panter
186b204997 Fix typos in comment and documentation 2016-12-10 05:32:55 +00:00
Martin Panter
b7880b067b Issue #28820: Merge spelling fixes from 3.5 2016-12-10 05:38:25 +00:00
Martin Panter
898573a734 Issue #28820: Fix spelling of “practice” as a noun 2016-12-10 05:12:56 +00:00
Martin Panter
e5a0946aa5 Issue #28755: Merge Arg Clinic howto from 3.6 2016-12-10 04:22:27 +00:00
Martin Panter
2fed8cd6f0 Issues #28755, #28753: Merge Arg Clinic howto from 3.5 2016-12-10 04:14:02 +00:00
Martin Panter
cfa9bad4b2 Issue #28755: Improve syntax highlighting in Arg Clinic howto 2016-12-10 04:10:45 +00:00
Martin Panter
a277c130f7 Issue 28753: Argument Clinic howto docfix, courtesy Julien Palard. 2016-12-10 03:49:12 +00:00
Victor Stinner
59a73276e9 Backed out changeset 99c34e47348b
The change broke test_gdb.
2016-12-09 18:51:13 +01:00
Victor Stinner
22f18750a5 Issue #20185: Convert _warnings.warn() to Argument Clinic
Fix warn_explicit(): interpret source=None as source=NULL.
2016-12-09 18:08:18 +01:00
Victor Stinner
0ca246c5e7 Inline PyEval_EvalFrameEx() in callers
The PEP 523 modified PyEval_EvalFrameEx(): it's now an indirection to
interp->eval_frame().

Inline the call in performance critical code. Leave PyEval_EvalFrame()
unchanged, this function is only kept for backward compatibility.
2016-12-09 17:12:17 +01:00
Victor Stinner
14e6d09547 Remove useless variable initialization
Don't initialize variables which are not used before they are assigned.
2016-12-09 17:08:59 +01:00
Victor Stinner
b110dad9ab Initialize variables to fix compiler warnings
Warnings seen on the "AMD64 Debian PGO 3.x" buildbot. Warnings are false
positive, but variable initialization should not harm performances.
2016-12-09 17:06:43 +01:00
Victor Stinner
5abaa2b139 Use PyObject_CallFunctionObjArgs()
Issue #28915: Replace PyObject_CallFunction() with
PyObject_CallFunctionObjArgs() when the format string was only made of "O"
formats, PyObject* arguments.

PyObject_CallFunctionObjArgs() avoids the creation of a temporary tuple and
doesn't have to parse a format string.
2016-12-09 16:22:32 +01:00
Victor Stinner
55ba38a480 Use _PyObject_CallMethodIdObjArgs()
Issue #28915: Replace _PyObject_CallMethodId() with
_PyObject_CallMethodIdObjArgs() in various modules when the format string was
only made of "O" formats, PyObject* arguments.

_PyObject_CallMethodIdObjArgs() avoids the creation of a temporary tuple and
doesn't have to parse a format string.
2016-12-09 16:09:30 +01:00
Victor Stinner
61bdb0d319 Use _PyObject_CallMethodIdObjArgs() in _io
Issue #28915: Replace _PyObject_CallMethodId() with
_PyObject_CallMethodIdObjArgs() when the format string was only made of "O"
formats, PyObject* arguments.

_PyObject_CallMethodIdObjArgs() avoids the creation of a temporary tuple and
doesn't have to parse a format string.
2016-12-09 15:39:28 +01:00
Victor Stinner
20401deae2 Use _PyObject_CallMethodIdObjArgs() in _datetime
Issue #28915: Replace _PyObject_CallMethodId() with
_PyObject_CallMethodIdObjArgs() when the format string was only made of "O"
formats, PyObject* arguments.

_PyObject_CallMethodIdObjArgs() avoids the creation of a temporary tuple and
doesn't have to parse a format string.
2016-12-09 15:24:31 +01:00
Victor Stinner
f561634c82 Use _PyObject_CallMethodIdObjArgs() in _elementtree
Issue #28915: Replace _PyObject_CallMethodId() with
_PyObject_CallMethodIdObjArgs() when the format string was only made of "O"
formats, PyObject* arguments.

_PyObject_CallMethodIdObjArgs() avoids the creation of a temporary tuple and
doesn't have to parse a format string.
2016-12-09 15:26:00 +01:00
Victor Stinner
5670764812 Use _PyObject_CallMethodIdObjArgs() in _ctypes
Issue #28915: Replace _PyObject_CallMethodId() with
_PyObject_CallMethodIdObjArgs() in unpickle(). _PyObject_CallMethodIdObjArgs()
avoids the creation of a temporary tuple and doesn't have to parse a format
string.

Replace _PyObject_CallMethodId() with _PyObject_GetAttrId()+PyObject_Call() for
the second call since it requires to "unpack" a tuple.

Add also a check in the type of the second parameter (state): it must be a
tuple.
2016-12-09 15:18:31 +01:00
Victor Stinner
ddc120f4cf Fix refleak introduced in change 032cbdb596fe
Issue #28915.
2016-12-09 15:35:40 +01:00
Victor Stinner
c24217e144 regrtest --fromfile now accepts a list of filenames 2016-12-09 16:05:51 +01:00
Victor Stinner
b6ed57d980 Use _PyObject_CallMethodIdObjArgs() in _asyncio
Issue #28915: Replace _PyObject_CallMethodId() with
_PyObject_CallMethodIdObjArgs() when the format string was only made of "O"
formats, PyObject* arguments.

_PyObject_CallMethodIdObjArgs() avoids the creation of a temporary tuple and
doesn't have to parse a format string.
2016-12-09 14:24:02 +01:00
Victor Stinner
070c4d7ca7 Issue #28915: Use _PyObject_CallNoArg()
Replace PyObject_CallFunction(func, NULL) with _PyObject_CallNoArg(func).
2016-12-09 12:29:18 +01:00
Xavier de Gaye
ec80ba4693 Issue #26937: Merge 3.6. 2016-12-09 09:35:49 +01:00
Xavier de Gaye
f44abdab1e Issue #26937: The chown() method of the tarfile.TarFile class does not fail now
when the grp module cannot be imported, as for example on Android platforms.
2016-12-09 09:33:09 +01:00
Victor Stinner
887b4307b6 Use _PyObject_FastCallVa() in type slots
Issue #28915: Replace Py_VaBuildValue()+PyObject_Call() with
_PyObject_FastCallVa() to avoid the creation of temporary tuple.
2016-12-09 00:41:46 +01:00
Victor Stinner
7f39c0ccfc Add _PyObject_VaCallFunctionObjArgs() private function
Issue #28915: Similar to _PyObject_CallFunctionObjArgs() but use va_list to
pass arguments.
2016-12-09 00:40:33 +01:00
Victor Stinner
dbe28d26b4 time_strptime() uses PyObject_Call()
Issue #28915: Use PyObject_Call() to pass a tuple of positional arguments,
instead of relying on _PyObject_CallMethodId() weird behaviour to unpack the
tuple.
2016-12-09 00:38:53 +01:00
Victor Stinner
2b635971e7 build_struct_time() uses Py_BuildValue()
Issue #28915: Avoid calling _PyObject_CallMethodId() with "(...)" format to
avoid the creation of a temporary tuple: use Py_BuildValue() with
_PyObject_CallMethodIdObjArgs().
2016-12-09 00:38:16 +01:00
Victor Stinner
7e42541d08 Use _PyObject_CallMethodIdObjArgs()
Issue #28915: Replace _PyObject_CallMethodId() with
_PyObject_CallMethodIdObjArgs() when the format string only use the format 'O'
for objects, like "(O)".

_PyObject_CallMethodIdObjArgs() avoids the code to parse a format string and
avoids the creation of a temporary tuple.
2016-12-09 00:36:19 +01:00
Victor Stinner
4c38154a43 Don't parenthesis in _PyObject_CallMethodId() format
Issue #28915: Without parenthesis, _PyObject_CallMethodId() avoids the creation
a temporary tuple, and so is more efficient.
2016-12-09 00:33:39 +01:00
Victor Stinner
ef7def94c7 _PyObject_CallFunctionVa() uses fast call
Issue #28915: Use _Py_VaBuildStack() to build a C array of PyObject* and then
use _PyObject_FastCall().

The function has a special case if the stack only contains one parameter and
the parameter is a tuple: "unpack" the tuple of arguments in this case.
2016-12-09 00:31:47 +01:00
Victor Stinner
e9abde4642 Add _Py_VaBuildStack() function
Issue #28915: Similar to Py_VaBuildValue(), but work on a C array of PyObject*,
instead of creating a tuple.
2016-12-09 00:29:49 +01:00
Victor Stinner
b551b6c9f0 modsupport: replace int with Py_ssize_t
Issue #28915: Py_ssize_t type is better for indexes. The compiler might emit
more efficient code for i++. Py_ssize_t is the type of a PyTuple index for
example.

Replace also "int endchar" with "char endchar".
2016-12-09 00:27:22 +01:00
Victor Stinner
e9aae2dcc5 modsupport: replace int with Py_ssize_t
Issue #28915.
2016-12-09 00:24:47 +01:00
Victor Stinner
e83aab12b0 Add _PyObject_CallFunctionVa() helper
Issue #28915: Add _PyObject_CallFunctionVa() helper to factorize code of
functions:

* PyObject_CallFunction()
* _PyObject_CallFunction_SizeT()
* callmethod()
2016-12-09 00:22:56 +01:00
Victor Stinner
3bb711998d Add _PyObject_FastCallVa() helper
Issue #28915: Add _PyObject_FastCallVa() helper to factorize code of functions:

* PyObject_CallFunctionObjArgs()
* PyObject_CallMethodObjArgs()
* _PyObject_CallMethodIdObjArgs()

Inline objargs_mkstack() into _PyObject_FastCallVa(), remove
objargs_mkstack().
2016-12-09 00:21:55 +01:00
Steve Dower
3b3a7c01bc Issue #28896: Deprecate WindowsRegistryFinder 2016-12-08 09:01:39 -08:00
Victor Stinner
808e47ee0c Null merge 3.6 2016-12-08 17:17:17 +01:00
Xavier de Gaye
f434111332 Issue #26941: Merge 3.6. 2016-12-08 12:21:53 +01:00