<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/cpython-git.git/Modules/_operator.c, branch enum-lost-fixes</title>
<subtitle>github.com: python/cpython.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/'/>
<entry>
<title>bpo-44558: Match countOf `is`/`==` treatment to c (GH-27007)</title>
<updated>2021-07-07T13:50:41+00:00</updated>
<author>
<name>Miss Islington (bot)</name>
<email>31488909+miss-islington@users.noreply.github.com</email>
</author>
<published>2021-07-07T13:50:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=9f431dd0a59c9ac2de46772a4dbd7db2199ef26a'/>
<id>9f431dd0a59c9ac2de46772a4dbd7db2199ef26a</id>
<content type='text'>
(cherry picked from commit 6bd3ecfc272b122b55a6adec50dd7a7c868f262f)

Co-authored-by: Rupert Tombs &lt;rupert.tombs@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(cherry picked from commit 6bd3ecfc272b122b55a6adec50dd7a7c868f262f)

Co-authored-by: Rupert Tombs &lt;rupert.tombs@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-43908: Make heap types converted during 3.10 alpha immutable (GH-26351) (GH-26766)</title>
<updated>2021-06-17T10:19:44+00:00</updated>
<author>
<name>Miss Islington (bot)</name>
<email>31488909+miss-islington@users.noreply.github.com</email>
</author>
<published>2021-06-17T10:19:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=7297d74251de3b1c02dcdb9ca281461cc7fb4535'/>
<id>7297d74251de3b1c02dcdb9ca281461cc7fb4535</id>
<content type='text'>
* Make functools types immutable

* Multibyte codec types are now immutable

* pyexpat.xmlparser is now immutable

* array.arrayiterator is now immutable

* _thread types are now immutable

* _csv types are now immutable

* _queue.SimpleQueue is now immutable

* mmap.mmap is now immutable

* unicodedata.UCD is now immutable

* sqlite3 types are now immutable

* _lsprof.Profiler is now immutable

* _overlapped.Overlapped is now immutable

* _operator types are now immutable

* winapi__overlapped.Overlapped is now immutable

* _lzma types are now immutable

* _bz2 types are now immutable

* _dbm.dbm and _gdbm.gdbm are now immutable
(cherry picked from commit 00710e6346fd2394aa020b2dfae170093effac98)

Co-authored-by: Erlend Egeberg Aasland &lt;erlend.aasland@innova.no&gt;

Co-authored-by: Erlend Egeberg Aasland &lt;erlend.aasland@innova.no&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Make functools types immutable

* Multibyte codec types are now immutable

* pyexpat.xmlparser is now immutable

* array.arrayiterator is now immutable

* _thread types are now immutable

* _csv types are now immutable

* _queue.SimpleQueue is now immutable

* mmap.mmap is now immutable

* unicodedata.UCD is now immutable

* sqlite3 types are now immutable

* _lsprof.Profiler is now immutable

* _overlapped.Overlapped is now immutable

* _operator types are now immutable

* winapi__overlapped.Overlapped is now immutable

* _lzma types are now immutable

* _bz2 types are now immutable

* _dbm.dbm and _gdbm.gdbm are now immutable
(cherry picked from commit 00710e6346fd2394aa020b2dfae170093effac98)

Co-authored-by: Erlend Egeberg Aasland &lt;erlend.aasland@innova.no&gt;

Co-authored-by: Erlend Egeberg Aasland &lt;erlend.aasland@innova.no&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-42972: Fully support GC protocol for _operator heap types (GH-26371) (GH-26413)</title>
<updated>2021-05-27T21:49:43+00:00</updated>
<author>
<name>Miss Islington (bot)</name>
<email>31488909+miss-islington@users.noreply.github.com</email>
</author>
<published>2021-05-27T21:49:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=d1c732912e20e89815aca2d986442d349e82e31f'/>
<id>d1c732912e20e89815aca2d986442d349e82e31f</id>
<content type='text'>
(cherry picked from commit f4b70c22c8e37dd7a06702e30b121a6651683421)

Co-authored-by: Erlend Egeberg Aasland &lt;erlend.aasland@innova.no&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(cherry picked from commit f4b70c22c8e37dd7a06702e30b121a6651683421)

Co-authored-by: Erlend Egeberg Aasland &lt;erlend.aasland@innova.no&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-40137: Add pycore_moduleobject.h internal header (GH-25507)</title>
<updated>2021-04-21T22:52:52+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>vstinner@python.org</email>
</author>
<published>2021-04-21T22:52:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=cdad2724e6f7426372901cc5dedd8a462ba046a6'/>
<id>cdad2724e6f7426372901cc5dedd8a462ba046a6</id>
<content type='text'>
Add pycore_moduleobject.h internal header file with static inline
functions to access module members:

* _PyModule_GetDict()
* _PyModule_GetDef()
* _PyModule_GetState()

These functions don't check at runtime if their argument has a valid
type and can be inlined even if Python is not built with LTO.

_PyType_GetModuleByDef() uses _PyModule_GetDef().

Replace PyModule_GetState() with _PyModule_GetState() in the
extension modules, considered as performance sensitive:

* _abc
* _functools
* _operator
* _pickle
* _queue
* _random
* _sre
* _struct
* _thread
* _winapi
* array
* posix

The following extensions are now built with the Py_BUILD_CORE_MODULE
macro defined, to be able to use the internal pycore_moduleobject.h
header: _abc, array, _operator, _queue, _sre, _struct.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add pycore_moduleobject.h internal header file with static inline
functions to access module members:

* _PyModule_GetDict()
* _PyModule_GetDef()
* _PyModule_GetState()

These functions don't check at runtime if their argument has a valid
type and can be inlined even if Python is not built with LTO.

_PyType_GetModuleByDef() uses _PyModule_GetDef().

Replace PyModule_GetState() with _PyModule_GetState() in the
extension modules, considered as performance sensitive:

* _abc
* _functools
* _operator
* _pickle
* _queue
* _random
* _sre
* _struct
* _thread
* _winapi
* array
* posix

The following extensions are now built with the Py_BUILD_CORE_MODULE
macro defined, to be able to use the internal pycore_moduleobject.h
header: _abc, array, _operator, _queue, _sre, _struct.</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-40791: Make compare_digest more constant-time. (GH-20444)</title>
<updated>2020-11-21T08:55:23+00:00</updated>
<author>
<name>Devin Jeanpierre</name>
<email>jeanpierreda@google.com</email>
</author>
<published>2020-11-21T08:55:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=31729366e2bc09632e78f3896dbce0ae64914f28'/>
<id>31729366e2bc09632e78f3896dbce0ae64914f28</id>
<content type='text'>
* bpo-40791: Make compare_digest more constant-time.

The existing volatile `left`/`right` pointers guarantee that the reads will all occur, but does not guarantee that they will be _used_. So a compiler can still short-circuit the loop, saving e.g. the overhead of doing the xors and especially the overhead of the data dependency between `result` and the reads. That would change performance depending on where the first unequal byte occurs. This change removes that optimization.

(This is change #1 from https://bugs.python.org/issue40791 .)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* bpo-40791: Make compare_digest more constant-time.

The existing volatile `left`/`right` pointers guarantee that the reads will all occur, but does not guarantee that they will be _used_. So a compiler can still short-circuit the loop, saving e.g. the overhead of doing the xors and especially the overhead of the data dependency between `result` and the reads. That would change performance depending on where the first unequal byte occurs. This change removes that optimization.

(This is change #1 from https://bugs.python.org/issue40791 .)
</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-40077: Convert _operator to use PyType_FromSpec (GH-21954)</title>
<updated>2020-08-26T17:22:27+00:00</updated>
<author>
<name>Dong-hee Na</name>
<email>donghee.na92@gmail.com</email>
</author>
<published>2020-08-26T17:22:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=31967fd8d0220af84e2698172d1378bffc8cd851'/>
<id>31967fd8d0220af84e2698172d1378bffc8cd851</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-40791: Use CRYPTO_memcmp() for compare_digest (#20456)</title>
<updated>2020-05-27T19:50:06+00:00</updated>
<author>
<name>Christian Heimes</name>
<email>christian@python.org</email>
</author>
<published>2020-05-27T19:50:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=db5aed931f8a617f7b63e773f62db468fe9c5ca1'/>
<id>db5aed931f8a617f7b63e773f62db468fe9c5ca1</id>
<content type='text'>
hashlib.compare_digest uses OpenSSL's CRYPTO_memcmp() function
when OpenSSL is available.

Note: The _operator module is a builtin module. I don't want to add
libcrypto dependency to libpython. Therefore I duplicated the wrapper
function and added a copy to _hashopenssl.c.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
hashlib.compare_digest uses OpenSSL's CRYPTO_memcmp() function
when OpenSSL is available.

Note: The _operator module is a builtin module. I don't want to add
libcrypto dependency to libpython. Therefore I duplicated the wrapper
function and added a copy to _hashopenssl.c.</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-39943: Add the const qualifier to pointers on non-mutable PyUnicode data. (GH-19345)</title>
<updated>2020-04-11T07:48:40+00:00</updated>
<author>
<name>Serhiy Storchaka</name>
<email>storchaka@gmail.com</email>
</author>
<published>2020-04-11T07:48:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=cd8295ff758891f21084a6a5ad3403d35dda38f7'/>
<id>cd8295ff758891f21084a6a5ad3403d35dda38f7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-1635741: Port operator module to multiphase initialization (PEP 489) (GH-19150)</title>
<updated>2020-03-25T02:18:47+00:00</updated>
<author>
<name>Paulo Henrique Silva</name>
<email>ph.silva@carta.com</email>
</author>
<published>2020-03-25T02:18:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=f3d5ac47720045a72f7ef5af13046d9531e6007b'/>
<id>f3d5ac47720045a72f7ef5af13046d9531e6007b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-40024: Update C extension modules to use PyModule_AddType() (GH-19119)</title>
<updated>2020-03-24T22:08:51+00:00</updated>
<author>
<name>Dong-hee Na</name>
<email>donghee.na92@gmail.com</email>
</author>
<published>2020-03-24T22:08:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/cpython-git.git/commit/?id=37fcbb65d4589fbb5a72153e9338cf8e6495f64f'/>
<id>37fcbb65d4589fbb5a72153e9338cf8e6495f64f</id>
<content type='text'>
Update _asyncio, _bz2, _csv, _curses, _datetime,
_io, _operator, _pickle, _queue, blake2,
multibytecodec and overlapped C extension modules
to use PyModule_AddType().</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Update _asyncio, _bz2, _csv, _curses, _datetime,
_io, _operator, _pickle, _queue, blake2,
multibytecodec and overlapped C extension modules
to use PyModule_AddType().</pre>
</div>
</content>
</entry>
</feed>
