| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Calling builtin method is at most 10% faster.
|
|
|
|
| |
Rename also "l" argument to "nargs".
|
|
|
|
|
| |
Issue #29318: Caller and callee functions must not share the dictionary:
kwargs must be copied.
|
| |
|
|\
| |
| |
| | |
Patch by Erik Welch.
|
| |
| |
| |
| | |
possible. Patch is writen with Coccinelle.
|
| | |
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* 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.
|
| | |
| | |
| | |
| | | |
Issue #29259.
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
PyArg_ParseTupleAndKeywords(), _PyArg_ParseTupleAndKeywordsFast() and like.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Issue #29286. Run Argument Clinic to get the new faster METH_FASTCALL calling
convention for functions using "boring" positional arguments.
Manually fix _elementtree: _elementtree_XMLParser_doctype() must remain
consistent with the clinic code.
|
| | |
| | |
| | |
| | | |
Issue #29286.
|
| | |
| | |
| | |
| | |
| | | |
Issue #29286. Run Argument Clinic to get the new faster METH_FASTCALL calling
convention for functions using only positional arguments.
|
| | |
| | |
| | |
| | |
| | | |
Issue #29286. Similar to _PyArg_NoKeywords(), but expects a tuple of keyword
names, instead of a dict.
|
| | |
| | |
| | |
| | |
| | | |
Issue #29286. Function similar to PyArg_ParseTuple(), but uses a C array of
PyObject* to pass arguments. Don't support the compatibility mode.
|
| | |
| | |
| | |
| | | |
Issue #29286.
|
| | |
| | |
| | |
| | | |
Issue #29029. Patch written by Serhiy Storchaka.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Factorize argument checks in:
* vgetargskeywordsfast()
* vgetargskeywordsfast_impl()
|
| | | |
|
| | |
| | |
| | |
| | | |
Changed stack layout bit for "easy to explain."
|
| | |
| | |
| | |
| | | |
Replace the runtime check with an assertion (just in case).
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Issue #29227: Inline call_function() into _PyEval_EvalFrameDefault() using
Py_LOCAL_INLINE to reduce the stack consumption.
It reduces the stack consumption, bytes per call, before => after:
test_python_call: 1152 => 1040 (-112 B)
test_python_getitem: 1008 => 976 (-32 B)
test_python_iterator: 1232 => 1120 (-112 B)
=> total: 3392 => 3136 (- 256 B)
|
| | | |
|
| | |
| | |
| | |
| | | |
Issue #29157.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The glibc now implements getentropy() on Linux using the getrandom() syscall.
But getentropy() doesn't support non-blocking mode.
Since getrandom() is tried first, it's not more needed to explicitly exclude
getentropy() on Solaris. Replace:
if defined(HAVE_GETENTROPY) && !defined(sun)
with
if defined(HAVE_GETENTROPY)
|
| | |
| | |
| | |
| | |
| | |
| | | |
pyurandom() is now responsible to call getentropy() or getrandom().
Enhance also dev_urandom() and pyurandom() documentation.
|
| | |
| | |
| | |
| | |
| | | |
Prepare the fallback to support getentropy() failure and falls back on reading
from /dev/urandom.
|
| | |
| | |
| | |
| | |
| | | |
Issue #28839: Optimize _PyFunction_FastCallDict() when kwargs is an empty
dictionary, avoid the creation of an useless empty tuple.
|
| |\ \ |
|
| | |\ \ |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
Calling function is up to 5% faster.
|
| | |\ \ \ |
|
| | | |\ \ \ |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
collections.namedtuple() now supports tuples with more than 255 elements.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
dict.
|
| | | | |\ \ \ |
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Issue #28870: Add a new _PY_FASTCALL_SMALL_STACK constant, size of "small
stacks" allocated on the C stack to pass positional arguments to
_PyObject_FastCall().
_PyObject_Call_Prepend() now uses a small stack of 5 arguments (40 bytes)
instead of 8 (64 bytes), since it is modified to use _PY_FASTCALL_SMALL_STACK.
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Special thanks to INADA Naoki for pushing the patch through
the last mile, Serhiy Storchaka for reviewing the code, and to
Victor Stinner for suggesting the idea (originally implemented
in the PyPy project).
|
| | | | | |\ \ \ |
|
| | | | | | |\ \ \
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
by ast.literal_eval() even if they do not include subexpressions.
|
| | | | | | |\ \ \ \
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | | |
PyErr_SyntaxLocationEx() and PyErr_SyntaxLocationObject().
|
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | | |
The change broke test_gdb.
|
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | | |
Fix warn_explicit(): interpret source=None as source=NULL.
|