Serhiy Storchaka [Wed, 25 Jan 2017 11:27:44 +0000 (13:27 +0200)]
Issue #27867: Function PySlice_GetIndicesEx() is deprecated and replaced with
a macro if Py_LIMITED_API is not set or set to the value between 0x03050400
and 0x03060000 (not including) or 0x03060100 or higher. Added functions
PySlice_Unpack() and PySlice_AdjustIndices().
Serhiy Storchaka [Wed, 25 Jan 2017 11:25:52 +0000 (13:25 +0200)]
Issue #27867: Function PySlice_GetIndicesEx() is replaced with a macro if
Py_LIMITED_API is not set or set to the value between 0x03050400
and 0x03060000 (not including) or 0x03060100 or higher.
Serhiy Storchaka [Wed, 25 Jan 2017 11:23:05 +0000 (13:23 +0200)]
Issue #27867: Function PySlice_GetIndicesEx() is replaced with a macro if
Py_LIMITED_API is not set or set to the value between 0x03050400
and 0x03060000 (not including) or 0x03060100 or higher.
Serhiy Storchaka [Tue, 24 Jan 2017 19:39:42 +0000 (21:39 +0200)]
Issue #29083: Fixed the declaration of some public API functions.
PyArg_VaParse() and PyArg_VaParseTupleAndKeywords() were not available in
limited API. PyArg_ValidateKeywordArguments(), PyArg_UnpackTuple() and
Py_BuildValue() were not available in limited API of version < 3.3 when
PY_SSIZE_T_CLEAN is defined.
Serhiy Storchaka [Tue, 24 Jan 2017 19:34:44 +0000 (21:34 +0200)]
Issue #29083: Fixed the declaration of some public API functions.
PyArg_VaParse() and PyArg_VaParseTupleAndKeywords() were not available in
limited API. PyArg_ValidateKeywordArguments(), PyArg_UnpackTuple() and
Py_BuildValue() were not available in limited API of version < 3.3 when
PY_SSIZE_T_CLEAN is defined.
Serhiy Storchaka [Tue, 24 Jan 2017 19:27:12 +0000 (21:27 +0200)]
Issue #29083: Fixed the declaration of some public API functions.
PyArg_VaParse() and PyArg_VaParseTupleAndKeywords() were not available in
limited API. PyArg_ValidateKeywordArguments(), PyArg_UnpackTuple() and
Py_BuildValue() were not available in limited API of version < 3.3 when
PY_SSIZE_T_CLEAN is defined.
Martin Panter [Mon, 23 Jan 2017 22:11:09 +0000 (22:11 +0000)]
Issue #29273: Remove unneeded workaround to restore locale
The “readline” module already has a workaround using setlocale(LC_CTYPE,
NULL). The code in test___all__ calls getlocale(), which can subtly alter
the locale string and cause the test framework to complain.
Larry Hastings [Fri, 20 Jan 2017 02:36:23 +0000 (18:36 -0800)]
Fix incorrect patchlevel information for 3.5.3+.
It got messed up when I merged my private 3.5.3 release
changes with new work happening in the 3.5 main branch.
(3.5 main branch was in "3.5.3rc1", my branch was "3.5.3+",
and Mercurial helpfully merged the two in a kind of nonsense way.)
INADA Naoki [Thu, 19 Jan 2017 11:50:34 +0000 (12:50 +0100)]
Issue #29296: convert print() to METH_FASTCALL
* Replace PyArg_ParseTupleAndKeywords() with _PyArg_ParseStackAndKeywords()
which is more efficient to parse keywords, since it decodes only keywords
(char*) from UTF-8 once, instead of decoding at each call.
* METH_FASTCALL avoids the creation of a temporary tuple to pass positional
arguments.
Patch written by INADA Naoki, pushed by Victor Stinner.
Victor Stinner [Thu, 19 Jan 2017 11:37:13 +0000 (12:37 +0100)]
dict.get() and dict.setdefault() now use AC
Issue #29311: dict.get() and dict.setdefault() methods now use Argument Clinic
to parse arguments. Their calling convention changes from METH_VARARGS to
METH_FASTCALL which avoids the creation of a temporary tuple.
The signature of docstrings is also enhanced. For example,
get(...)
becomes:
get(self, key, default=None, /)
Victor Stinner [Wed, 18 Jan 2017 16:20:01 +0000 (17:20 +0100)]
Update and enhance python-gdb.py
Issue #29259:
* Detect PyCFunction is the current frame, not only in the older frame
* Ignore PyCFunction_Call() since it now calls _PyCFunction_FastCallDict(), and
_PyCFunction_FastCallDict() is already detected
Victor Stinner [Wed, 18 Jan 2017 13:16:57 +0000 (14:16 +0100)]
Cleanup _PyMethodDef_RawFastCallDict()
Issue #29259: use a different case for METH_VARARGS and
METH_VARARGS|METH_KEYWORDS to avoid testing again flags to decide if keywords
should be checked or not.
* Move also the !PyErr_Occurred() assertion to the top, similar to
other functions.
* Fix also comment/error messages: the function was renamed to
_PyMethodDef_RawFastCallDict()