1. 16 Ara, 2017 1 kayıt (commit)
  2. 15 Ara, 2017 1 kayıt (commit)
  3. 03 Agu, 2017 1 kayıt (commit)
  4. 30 Mar, 2017 1 kayıt (commit)
  5. 14 Mar, 2017 1 kayıt (commit)
    • Victor Stinner's avatar
      bpo-29735: Optimize partial_call(): avoid tuple (#516) · 0f7b0b39
      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.
      0f7b0b39
  6. 09 Şub, 2017 1 kayıt (commit)
    • Victor Stinner's avatar
      Optimize slots: avoid temporary PyMethodObject · 516b9816
      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: 's avatarINADA Naoki <songofacandy@gmail.com>
      516b9816
  7. 24 Ock, 2017 1 kayıt (commit)
  8. 18 Ock, 2017 1 kayıt (commit)
  9. 17 Ock, 2017 2 kayıt (commit)
  10. 16 Ock, 2017 1 kayıt (commit)
  11. 10 Ock, 2017 1 kayıt (commit)
    • Victor Stinner's avatar
      call_method() now uses _PyObject_FastCall() · 434723f9
      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.
      434723f9
  12. 27 Ara, 2016 1 kayıt (commit)
  13. 19 Ara, 2016 1 kayıt (commit)
  14. 15 Ara, 2016 2 kayıt (commit)
    • Victor Stinner's avatar
      Add _PY_FASTCALL_SMALL_STACK constant · bc08ab45
      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.
      bc08ab45
    • Victor Stinner's avatar
      Issue #28838: Cleanup abstract.h · 5bef7cd7
      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.
      5bef7cd7
  15. 08 Ara, 2016 1 kayıt (commit)
  16. 06 Ara, 2016 3 kayıt (commit)
  17. 05 Ara, 2016 1 kayıt (commit)
    • Victor Stinner's avatar
      Issue #28858: Remove _PyObject_CallArg1() macro · 7bfb42d5
      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.
      7bfb42d5
  18. 02 Ara, 2016 1 kayıt (commit)
  19. 30 Kas, 2016 1 kayıt (commit)
  20. 29 Kas, 2016 1 kayıt (commit)
    • Victor Stinner's avatar
      Uniformize argument names of "call" functions · ebea9988
      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
      ebea9988
  21. 20 Kas, 2016 1 kayıt (commit)
  22. 26 Eyl, 2016 1 kayıt (commit)
  23. 12 Eyl, 2016 3 kayıt (commit)
  24. 11 Eyl, 2016 2 kayıt (commit)
  25. 10 Eyl, 2016 1 kayıt (commit)
    • Victor Stinner's avatar
      Add METH_FASTCALL calling convention · a9efb2f5
      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.
      a9efb2f5
  26. 09 Eyl, 2016 2 kayıt (commit)
    • Victor Stinner's avatar
      Issue #27810: Add _PyCFunction_FastCallKeywords() · ae8b69c4
      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.
      ae8b69c4
    • Victor Stinner's avatar
      Add _PyObject_FastCallKeywords() · d8735720
      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()
      d8735720
  27. 07 Eyl, 2016 1 kayıt (commit)
  28. 30 Agu, 2016 1 kayıt (commit)
  29. 25 Agu, 2016 1 kayıt (commit)
  30. 24 Agu, 2016 3 kayıt (commit)