<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/cpython.git/Include, branch master</title>
<subtitle>
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython.git/'/>
<entry>
<title>Backed out changeset f23fa1f7b68f</title>
<updated>2017-02-10T13:19:36+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2017-02-10T13:19:36+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython.git/commit/?id=ec7729dfc2425044ab4d508165b4fb0a00c065d0'/>
<id>ec7729dfc2425044ab4d508165b4fb0a00c065d0</id>
<content type='text'>
Sorry, I didn't want to push this change before the review :-( I was pushing a
change into the 2.7 branch.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Sorry, I didn't want to push this change before the review :-( I was pushing a
change into the 2.7 branch.
</pre>
</div>
</content>
</entry>
<entry>
<title>Issue #29465: Add Objects/call.c file</title>
<updated>2017-02-10T12:32:29+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2017-02-10T12:32:29+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython.git/commit/?id=d3f4d3fd74ca4924bbca57433ba13435c164978e'/>
<id>d3f4d3fd74ca4924bbca57433ba13435c164978e</id>
<content type='text'>
* Move all functions to call objects in a new Objects/call.c file.
* Rename fast_function() to _PyFunction_FastCallKeywords().
* Copy null_error() from Objects/abstract.c
* Inline type_error() in call.c to not have to copy it, it was only
  called once.
* Export _PyEval_EvalCodeWithName() since it is now called
  from call.c.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Move all functions to call objects in a new Objects/call.c file.
* Rename fast_function() to _PyFunction_FastCallKeywords().
* Copy null_error() from Objects/abstract.c
* Inline type_error() in call.c to not have to copy it, it was only
  called once.
* Export _PyEval_EvalCodeWithName() since it is now called
  from call.c.
</pre>
</div>
</content>
</entry>
<entry>
<title>Optimize slots: avoid temporary PyMethodObject</title>
<updated>2017-02-09T21:53:47+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2017-02-09T21:53:47+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython.git/commit/?id=18bedc08c9a8216c93476e3da1cc4a3922d4cba6'/>
<id>18bedc08c9a8216c93476e3da1cc4a3922d4cba6</id>
<content type='text'>
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 -&gt; 82.8 ns +- 1.0 ns: 1.46x faster (-31%)

Co-Authored-by: INADA Naoki &lt;songofacandy@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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 -&gt; 82.8 ns +- 1.0 ns: 1.46x faster (-31%)

Co-Authored-by: INADA Naoki &lt;songofacandy@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Issue #29460: _PyArg_NoKeywords(), _PyArg_NoStackKeywords() and</title>
<updated>2017-02-06T08:41:46+00:00</updated>
<author>
<name>Serhiy Storchaka</name>
<email>storchaka@gmail.com</email>
</author>
<published>2017-02-06T08:41:46+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython.git/commit/?id=54ab9ca906471f8a49e22c7f85d4f34c2ef7212c'/>
<id>54ab9ca906471f8a49e22c7f85d4f34c2ef7212c</id>
<content type='text'>
_PyArg_NoPositional() now are macros.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
_PyArg_NoPositional() now are macros.
</pre>
</div>
</content>
</entry>
<entry>
<title>Issue #27867: Silenced may-be-used-uninitialized warnings after</title>
<updated>2017-02-04T09:08:04+00:00</updated>
<author>
<name>Serhiy Storchaka</name>
<email>storchaka@gmail.com</email>
</author>
<published>2017-02-04T09:08:04+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython.git/commit/?id=18911ec8482d0c193affe0f968d7ee1d8dae5805'/>
<id>18911ec8482d0c193affe0f968d7ee1d8dae5805</id>
<content type='text'>
using PySlice_GetIndicesEx() in debug builds.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
using PySlice_GetIndicesEx() in debug builds.
</pre>
</div>
</content>
</entry>
<entry>
<title>Issue #27867: Silenced may-be-used-uninitialized warnings after</title>
<updated>2017-02-04T09:07:17+00:00</updated>
<author>
<name>Serhiy Storchaka</name>
<email>storchaka@gmail.com</email>
</author>
<published>2017-02-04T09:07:17+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython.git/commit/?id=eefce02ea410dc1dcb95167c3a62c9dfaaa5bf29'/>
<id>eefce02ea410dc1dcb95167c3a62c9dfaaa5bf29</id>
<content type='text'>
using PySlice_GetIndicesEx() in debug builds.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
using PySlice_GetIndicesEx() in debug builds.
</pre>
</div>
</content>
</entry>
<entry>
<title>Issue #27867: Silenced may-be-used-uninitialized warnings after</title>
<updated>2017-02-04T09:04:00+00:00</updated>
<author>
<name>Serhiy Storchaka</name>
<email>storchaka@gmail.com</email>
</author>
<published>2017-02-04T09:04:00+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython.git/commit/?id=f33994ff67ea221a49cfad06338d2d6758ae4d89'/>
<id>f33994ff67ea221a49cfad06338d2d6758ae4d89</id>
<content type='text'>
using PySlice_GetIndicesEx() in debug builds.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
using PySlice_GetIndicesEx() in debug builds.
</pre>
</div>
</content>
</entry>
<entry>
<title>Issue #29263: LOAD_METHOD support for C methods</title>
<updated>2017-02-02T22:43:03+00:00</updated>
<author>
<name>INADA Naoki</name>
<email>songofacandy@gmail.com</email>
</author>
<published>2017-02-02T22:43:03+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython.git/commit/?id=99c092a531abf57a8f5c37356dc6971cdfed497a'/>
<id>99c092a531abf57a8f5c37356dc6971cdfed497a</id>
<content type='text'>
Calling builtin method is at most 10% faster.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Calling builtin method is at most 10% faster.
</pre>
</div>
</content>
</entry>
<entry>
<title>Issue #27867: Function PySlice_GetIndicesEx() is deprecated and replaced with</title>
<updated>2017-01-25T11:27:44+00:00</updated>
<author>
<name>Serhiy Storchaka</name>
<email>storchaka@gmail.com</email>
</author>
<published>2017-01-25T11:27:44+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython.git/commit/?id=19b1c3b04e2b01bd3b35b9e14c1735959d3b65e8'/>
<id>19b1c3b04e2b01bd3b35b9e14c1735959d3b65e8</id>
<content type='text'>
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().
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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().
</pre>
</div>
</content>
</entry>
<entry>
<title>Issue #27867: Function PySlice_GetIndicesEx() is replaced with a macro if</title>
<updated>2017-01-25T11:25:52+00:00</updated>
<author>
<name>Serhiy Storchaka</name>
<email>storchaka@gmail.com</email>
</author>
<published>2017-01-25T11:25:52+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython.git/commit/?id=3f19a274c28567afb39ba46ea8a2ebdeab816b0b'/>
<id>3f19a274c28567afb39ba46ea8a2ebdeab816b0b</id>
<content type='text'>
Py_LIMITED_API is not set or set to the value between 0x03050400
and 0x03060000 (not including) or 0x03060100 or higher.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Py_LIMITED_API is not set or set to the value between 0x03050400
and 0x03060000 (not including) or 0x03060100 or higher.
</pre>
</div>
</content>
</entry>
</feed>
