- 16 Ara, 2017 1 kayıt (commit)
-
-
Andrew Svetlov yazdı
-
- 15 Ara, 2017 1 kayıt (commit)
-
-
Serhiy Storchaka yazdı
-
- 03 Agu, 2017 1 kayıt (commit)
-
-
Ville Skyttä yazdı
-
- 30 Mar, 2017 1 kayıt (commit)
-
-
Serhiy Storchaka yazdı
if pass `accept={int, NoneType}`.
-
- 14 Mar, 2017 1 kayıt (commit)
-
-
Victor Stinner yazdı
* Add _PyObject_HasFastCall() * partial_call() now avoids temporary tuple to pass positional arguments if the callable supports the FASTCALL calling convention for positional arguments. * Fix also a performance regression in partial_call() if the callable doesn't support FASTCALL.
-
- 09 Şub, 2017 1 kayıt (commit)
-
-
Victor Stinner yazdı
Issue #29507: Optimize slots calling Python methods. For Python methods, get the unbound Python function and prepend arguments with self, rather than calling the descriptor which creates a temporary PyMethodObject. Add a new _PyObject_FastCall_Prepend() function used to call the unbound Python method with self. It avoids the creation of a temporary tuple to pass positional arguments. Avoiding temporary PyMethodObject and avoiding temporary tuple makes Python slots up to 1.46x faster. Microbenchmark on a __getitem__() method implemented in Python: Median +- std dev: 121 ns +- 5 ns -> 82.8 ns +- 1.0 ns: 1.46x faster (-31%) Co-Authored-by: INADA Naoki <songofacandy@gmail.com>
-
- 24 Ock, 2017 1 kayıt (commit)
-
-
Victor Stinner yazdı
Remove two assertions which can fail on legit code. Keyword arguments are checked later with better tests and raise a regular (TypeError) exception.
-
- 18 Ock, 2017 1 kayıt (commit)
-
-
Victor Stinner yazdı
Issue #29259.
-
- 17 Ock, 2017 2 kayıt (commit)
-
-
Victor Stinner yazdı
Issue #29286. Change _PyStack_UnpackDict() prototype to be able to notify of failure when args is NULL.
-
Victor Stinner yazdı
Issue #29286.
-
- 16 Ock, 2017 1 kayıt (commit)
-
-
Victor Stinner yazdı
-
- 10 Ock, 2017 1 kayıt (commit)
-
-
Victor Stinner yazdı
Issue #29233: Replace the inefficient _PyObject_VaCallFunctionObjArgs() with _PyObject_FastCall() in call_method() and call_maybe(). Only a few functions call call_method() and call it with a fixed number of arguments. Avoid the complex and expensive _PyObject_VaCallFunctionObjArgs() function, replace it with an array allocated on the stack with the exact number of argumlents. It reduces the stack consumption, bytes per call, before => after: test_python_call: 1168 => 1152 (-16 B) test_python_getitem: 1344 => 1008 (-336 B) test_python_iterator: 1568 => 1232 (-336 B) Remove the _PyObject_VaCallFunctionObjArgs() function which became useless. Rename it to object_vacall() and make it private.
-
- 27 Ara, 2016 1 kayıt (commit)
-
-
Serhiy Storchaka yazdı
available only when Py_LIMITED_API is set to the PY_VERSION_HEX value of the minimum Python version supporting this API.
-
- 19 Ara, 2016 1 kayıt (commit)
-
-
Victor Stinner yazdı
Issue #28838: The documentation is of the Python C API is more complete and more up to date than this old comment. Removal suggested by Antoine Pitrou.
-
- 15 Ara, 2016 2 kayıt (commit)
-
-
Victor Stinner yazdı
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.
-
Victor Stinner yazdı
Rewrite all comments to use the same style than other Python header files: comment functions *before* their declaration, no newline between the comment and the declaration. Reformat some comments, add newlines, to make them easier to read. Quote argument like 'arg' to mention an argument in a comment.
-
- 08 Ara, 2016 1 kayıt (commit)
-
-
Victor Stinner yazdı
Issue #28915: Similar to _PyObject_CallFunctionObjArgs() but use va_list to pass arguments.
-
- 06 Ara, 2016 3 kayıt (commit)
-
-
Victor Stinner yazdı
Remove most indentation to move code at the left.
-
Victor Stinner yazdı
Issue #28838: Rename parameters of the "calls" functions of the Python C API. * Rename 'callable_object' and 'func' to 'callable': any Python callable object is accepted, not only Python functions * Rename 'method' and 'nameid' to 'name' (method name) * Rename 'o' to 'obj' * Move, fix and update documentation of PyObject_CallXXX() functions in abstract.h * Update also the documentaton of the C API (update parameter names)
-
Serhiy Storchaka yazdı
-
- 05 Ara, 2016 1 kayıt (commit)
-
-
Victor Stinner yazdı
Replace _PyObject_CallArg1(func, arg) with PyObject_CallFunctionObjArgs(func, arg, NULL) Using the _PyObject_CallArg1() macro increases the usage of the C stack, which was unexpected and unwanted. PyObject_CallFunctionObjArgs() doesn't have this issue.
-
- 02 Ara, 2016 1 kayıt (commit)
-
-
Benjamin Peterson yazdı
-
- 30 Kas, 2016 1 kayıt (commit)
-
-
Victor Stinner yazdı
-
- 29 Kas, 2016 1 kayıt (commit)
-
-
Victor Stinner yazdı
* Callable object: callable, o, callable_object => func * Object for method calls: o => obj * Method name: name or nameid => method Cleanup also the C code: * Don't initialize variables to NULL if they are not used before their first assignement * Add braces for readability
-
- 20 Kas, 2016 1 kayıt (commit)
-
-
Serhiy Storchaka yazdı
functions.
-
- 26 Eyl, 2016 1 kayıt (commit)
-
-
Serhiy Storchaka yazdı
PyMapping_Keys and PyMapping_Values. Based on patch by Xiang Zhang.
-
- 12 Eyl, 2016 3 kayıt (commit)
-
-
Victor Stinner yazdı
Issue #27213.
-
Victor Stinner yazdı
Revert change "Issue #27213: Reintroduce checks in _PyStack_AsDict()", pushed by mistake.
-
Victor Stinner yazdı
-
- 11 Eyl, 2016 2 kayıt (commit)
-
-
Serhiy Storchaka yazdı
* BUILD_TUPLE_UNPACK and BUILD_MAP_UNPACK_WITH_CALL no longer generated with single tuple or dict. * Restored more informative error messages for incorrect var-positional and var-keyword arguments. * Removed code duplications in _PyEval_EvalCodeWithName(). * Removed redundant runtime checks and parameters in _PyStack_AsDict(). * Added a workaround and enabled previously disabled test in test_traceback. * Removed dead code from the dis module.
-
Serhiy Storchaka yazdı
-
- 10 Eyl, 2016 1 kayıt (commit)
-
-
Victor Stinner yazdı
Issue #27810: Add a new calling convention for C functions: PyObject* func(PyObject *self, PyObject **args, Py_ssize_t nargs, PyObject *kwnames); Where args is a C array of positional arguments followed by values of keyword arguments. nargs is the number of positional arguments, kwnames are keys of keyword arguments. kwnames can be NULL.
-
- 09 Eyl, 2016 2 kayıt (commit)
-
-
Victor Stinner yazdı
Use _PyCFunction_FastCallKeywords() in ceval.c: it allows to remove a lot of code from ceval.c which was only used to call C functions.
-
Victor Stinner yazdı
Issue #27830: Add _PyObject_FastCallKeywords(): avoid the creation of a temporary dictionary for keyword arguments. Other changes: * Cleanup call_function() and fast_function() (ex: rename nk to nkwargs) * Remove now useless do_call(), replaced with _PyObject_FastCallKeywords()
-
- 07 Eyl, 2016 1 kayıt (commit)
-
-
Martin Panter yazdı
-
- 30 Agu, 2016 1 kayıt (commit)
-
-
Raymond Hettinger yazdı
-
- 25 Agu, 2016 1 kayıt (commit)
-
-
Victor Stinner yazdı
-
- 24 Agu, 2016 3 kayıt (commit)
-
-
Victor Stinner yazdı
Issue #27841: Add _PyObject_Call_Prepend() helper function to prepend an argument to existing arguments to call a function. This helper uses fast calls. Modify method_call() and slot_tp_new() to use _PyObject_Call_Prepend().
-
Victor Stinner yazdı
Issue #27830: Similar to _PyObject_FastCallDict(), but keyword arguments are also passed in the same C array than positional arguments, rather than being passed as a Python dict.
-
Victor Stinner yazdı
Issue #27848: use Py_ssize_t rather than C int for the number of function positional and keyword arguments.
-