41554 blogs · [ { "id": "01a08c5f-b069-7163-aa5f-9038d94b7fda", "title": "PEP 814: Add frozendict built-in type", "url": "https://vstinner.github.io/pep-814-add-frozendict-builtin-type.html", "published_at": "2026-07-04T12:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038d99083b7", "title": "Free Threading internals: PyMutex", "url": "https://vstinner.github.io/free-threading-pymutex.html", "published_at": "2026-06-18T10:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038d9c77642", "title": "Free Threading internals: deferred reference counting", "url": "https://vstinner.github.io/free-threading-deferred-reference-counting.html", "published_at": "2026-06-04T15:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038daac947e", "title": "Free Threading internals: reference counting", "url": "https://vstinner.github.io/free-threading-reference-counting.html", "published_at": "2026-06-03T14:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038db4795da", "title": "PEP 782 – Add PyBytesWriter C API", "url": "https://vstinner.github.io/pep-782-pybyteswriter-c-api.html", "published_at": "2025-10-17T11:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038dc4682c4", "title": "PEP 757 – C API to import-export Python integers", "url": "https://vstinner.github.io/pep-757-c-api-import-export-integers.html", "published_at": "2025-09-11T14:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038dd43d30f", "title": "My Python commits: February 2025", "url": "https://vstinner.github.io/python-commits-february-2025.html", "published_at": "2025-03-11T14:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038ddf90c90", "title": "PEP 741: C API to configure Python initialization", "url": "https://vstinner.github.io/pyconfig-pep-741.html", "published_at": "2024-09-24T15:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038de14819e", "title": "Add PyUnicodeWriter C API", "url": "https://vstinner.github.io/pyunicodewriter-c-api.html", "published_at": "2024-07-04T16:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038df139c2e", "title": "Status of the Python Limited C API (March 2024)", "url": "https://vstinner.github.io/status-limited-c-api-march-2024.html", "published_at": "2024-03-20T16:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038df911be6", "title": "Remove private C API functions", "url": "https://vstinner.github.io/remove-c-api-funcs-313.html", "published_at": "2023-12-15T22:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038dfe1cf56", "title": "Design the API of a new PyDict_GetItemRef() function", "url": "https://vstinner.github.io/c-api-dict-getitemref.html", "published_at": "2023-11-16T19:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038e086e2bf", "title": "My contributions to Python (July 2023)", "url": "https://vstinner.github.io/contrib-python-july-2023.html", "published_at": "2023-07-08T21:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038e0db6c24", "title": "Convert macros to functions in the Python C API", "url": "https://vstinner.github.io/c-api-convert-macros-functions.html", "published_at": "2022-12-12T22:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038e13a52ac", "title": "Debug a Python reference leak", "url": "https://vstinner.github.io/debug-python-refleak.html", "published_at": "2022-11-04T12:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038e21dd5fa", "title": "Python C API: Add functions to access PyObject", "url": "https://vstinner.github.io/c-api-abstract-pyobject.html", "published_at": "2021-10-05T12:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038e31330c4", "title": "C API changes between Python 3.5 to 3.10", "url": "https://vstinner.github.io/c-api-python3_10-changes.html", "published_at": "2021-10-04T13:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038e32342cd", "title": "Creation of the pythoncapi_compat project", "url": "https://vstinner.github.io/pythoncapi_compat.html", "published_at": "2021-03-30T18:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038e40b8ef9", "title": "Make structures opaque in the Python C API", "url": "https://vstinner.github.io/c-api-opaque-structures.html", "published_at": "2021-03-26T11:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038e4358caf", "title": "Isolate Python Subinterpreters", "url": "https://vstinner.github.io/isolate-subinterpreters.html", "published_at": "2020-12-27T21:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038e45c6dcf", "title": "Hide implementation details from the Python C API", "url": "https://vstinner.github.io/hide-implementation-details-python-c-api.html", "published_at": "2020-12-25T21:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038e536a663", "title": "Leaks discovered by subinterpreters", "url": "https://vstinner.github.io/subinterpreter-leaks.html", "published_at": "2020-12-23T13:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038e5fac7f7", "title": "GIL bugfixes for daemon threads in Python 3.9", "url": "https://vstinner.github.io/gil-bugfixes-daemon-threads-python39.html", "published_at": "2020-04-04T20:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038e6329d3b", "title": "Threading shutdown race condition", "url": "https://vstinner.github.io/threading-shutdown-race-condition.html", "published_at": "2020-04-03T18:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038e70699ff", "title": "Daemon threads and the Python finalization in Python 3.2 and 3.3", "url": "https://vstinner.github.io/daemon-threads-python-finalization-python32.html", "published_at": "2020-03-26T21:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038e7983861", "title": "Python 3.7 Development Mode", "url": "https://vstinner.github.io/python37-dev-mode.html", "published_at": "2020-01-16T11:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038e855f5f2", "title": "Pass the Python thread state explicitly", "url": "https://vstinner.github.io/cpython-pass-tstate.html", "published_at": "2020-01-08T14:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038e8baa755", "title": "Graphics bugs in Firefox and GNOME", "url": "https://vstinner.github.io/graphics-bugs-firefox-gnome.html", "published_at": "2019-10-10T15:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038e951607f", "title": "Debug Hybrid Graphics issues on Linux", "url": "https://vstinner.github.io/debug-hybrid-graphics-issues-linux.html", "published_at": "2019-09-11T13:50:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038e9a1a66f", "title": "Split Include/ directory in Python 3.8", "url": "https://vstinner.github.io/split-include-directory-python38.html", "published_at": "2019-06-19T10:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038ea410ef9", "title": "Python 3.8 sys.unraisablehook", "url": "https://vstinner.github.io/sys-unraisablehook-python38.html", "published_at": "2019-06-14T23:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038eafd6a42", "title": "asyncio WSASend() memory leak", "url": "https://vstinner.github.io/asyncio-proactor-wsasend-memory-leak.html", "published_at": "2019-03-06T19:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038ebc9b851", "title": "asyncio: WSARecv() cancellation causing data loss", "url": "https://vstinner.github.io/asyncio-proactor-wsarecv-cancellation-data-loss.html", "published_at": "2019-01-31T14:20:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038eca75ec2", "title": "Asyncio: Proactor ConnectPipe() Race Condition", "url": "https://vstinner.github.io/asyncio-proactor-connect-pipe-race-condition.html", "published_at": "2019-01-30T17:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038ed8aaae7", "title": "Asyncio: Proactor Cancellation From Hell", "url": "https://vstinner.github.io/asyncio-proactor-cancellation-from-hell.html", "published_at": "2019-01-28T19:20:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038edd5aa02", "title": "Locale Bugfixes in Python 3", "url": "https://vstinner.github.io/locale-bugfixes-python3.html", "published_at": "2019-01-08T23:30:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038ee086fe8", "title": "Python 3, locales and encodings", "url": "https://vstinner.github.io/python3-locales-encodings.html", "published_at": "2018-09-06T14:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038eea08489", "title": "Python 3.7 UTF-8 Mode", "url": "https://vstinner.github.io/python37-new-utf8-mode.html", "published_at": "2018-03-27T18:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038eeb6055f", "title": "Python 3.7 and the POSIX locale", "url": "https://vstinner.github.io/posix-locale.html", "published_at": "2018-03-23T12:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038eee2b709", "title": "Python 3.6 now uses UTF-8 on Windows", "url": "https://vstinner.github.io/python36-utf8-windows.html", "published_at": "2018-03-22T16:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038ef545d15", "title": "Python 3.2 Painful History of the Filesystem Encoding", "url": "https://vstinner.github.io/painful-history-python-filesystem-encoding.html", "published_at": "2018-03-15T22:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038f02b2d61", "title": "Python 3.1 surrogateescape error handler (PEP 383)", "url": "https://vstinner.github.io/pep-383.html", "published_at": "2018-03-15T17:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038f02ced13", "title": "Python 3.0 listdir() Bug on Undecodable Filenames", "url": "https://vstinner.github.io/python30-listdir-undecodable-filenames.html", "published_at": "2018-03-09T12:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038f109800a", "title": "How I fixed a very old GIL race condition in Python 3.7", "url": "https://vstinner.github.io/python37-gil-change.html", "published_at": "2018-03-08T09:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038f1580614", "title": "Python 3.7 nanoseconds", "url": "https://vstinner.github.io/python37-pep-564-nanoseconds.html", "published_at": "2018-03-06T15:30:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038f1faf776", "title": "Python 3.7 perf_counter() nanoseconds", "url": "https://vstinner.github.io/python37-perf-counter-nanoseconds.html", "published_at": "2018-03-06T14:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038f2c95746", "title": "My contributions to CPython during 2017 Q3: Part 3 (funny bugs)", "url": "https://vstinner.github.io/contrib-cpython-2017q3-part3.html", "published_at": "2017-10-19T14:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038f39d2b4a", "title": "My contributions to CPython during 2017 Q3: Part 2 (dangling threads)", "url": "https://vstinner.github.io/contrib-cpython-2017q3-part2.html", "published_at": "2017-10-19T13:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038f44e8d2f", "title": "My contributions to CPython during 2017 Q3: Part 1", "url": "https://vstinner.github.io/contrib-cpython-2017q3-part1.html", "published_at": "2017-10-18T13:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038f4f8b525", "title": "Python Security", "url": "https://vstinner.github.io/python-security.html", "published_at": "2017-09-15T20:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038f5ae0f5e", "title": "A New C API for CPython", "url": "https://vstinner.github.io/new-python-c-api.html", "published_at": "2017-09-07T16:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038f6234665", "title": "My contributions to CPython during 2017 Q2 (part 3)", "url": "https://vstinner.github.io/contrib-cpython-2017q2-part3.html", "published_at": "2017-07-13T15:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038f640fd66", "title": "My contributions to CPython during 2017 Q2 (part 2)", "url": "https://vstinner.github.io/contrib-cpython-2017q2-part2.html", "published_at": "2017-07-13T14:30:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038f6f313b6", "title": "My contributions to CPython during 2017 Q2 (part 1)", "url": "https://vstinner.github.io/contrib-cpython-2017q2-part1.html", "published_at": "2017-07-13T14:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038f7f2fb55", "title": "Work on Python buildbots, 2017 Q2", "url": "https://vstinner.github.io/python-buildbots-2017q2.html", "published_at": "2017-07-13T07:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038f81d2603", "title": "New Python test.bisect tool", "url": "https://vstinner.github.io/python-test-bisect.html", "published_at": "2017-07-12T13:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038f828e6cd", "title": "My contributions to CPython during 2017 Q1", "url": "https://vstinner.github.io/contrib-cpython-2017q1.html", "published_at": "2017-07-05T10:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038f83fec5a", "title": "speed.python.org results: March 2017", "url": "https://vstinner.github.io/speed-python-org-march-2017.html", "published_at": "2017-03-28T22:40:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038f88c6071", "title": "FASTCALL issues", "url": "https://vstinner.github.io/fastcall-issues.html", "published_at": "2017-02-24T23:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038f8bf025d", "title": "FASTCALL microbenchmarks", "url": "https://vstinner.github.io/fastcall-microbenchmarks.html", "published_at": "2017-02-24T21:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038f9aedefe", "title": "The start of the FASTCALL project", "url": "https://vstinner.github.io/start-fastcall-project.html", "published_at": "2017-02-16T16:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038fa14638f", "title": "My contributions to CPython during 2016 Q4", "url": "https://vstinner.github.io/contrib-cpython-2016q4.html", "published_at": "2017-02-16T10:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038fa1b4f23", "title": "My contributions to CPython during 2016 Q3", "url": "https://vstinner.github.io/contrib-cpython-2016q3.html", "published_at": "2017-02-14T18:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038fa4216c3", "title": "CPython sprint, september 2016", "url": "https://vstinner.github.io/cpython-sprint-2016.html", "published_at": "2017-02-14T17:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038facb9e45", "title": "PEP 524: os.urandom() now blocks on Linux in Python 3.6", "url": "https://vstinner.github.io/pep-524-os-urandom-blocking.html", "published_at": "2017-02-14T11:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038fb40ac2f", "title": "My contributions to CPython during 2016 Q2", "url": "https://vstinner.github.io/contrib-cpython-2016q2.html", "published_at": "2017-02-12T17:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038fb442e02", "title": "My contributions to CPython during 2016 Q1", "url": "https://vstinner.github.io/contrib-cpython-2016q1.html", "published_at": "2017-02-09T16:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038fb89bfa2", "title": "Analysis of a Python performance issue", "url": "https://vstinner.github.io/analysis-python-performance-issue.html", "published_at": "2016-11-18T23:30:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038fc86ea0e", "title": "Intel CPUs (part 2): Turbo Boost, temperature, frequency and Pstate C0 bug", "url": "https://vstinner.github.io/intel-cpus-part2.html", "published_at": "2016-09-23T21:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038fcca2c53", "title": "Intel CPUs: P-state, C-state, Turbo Boost, CPU frequency, etc.", "url": "https://vstinner.github.io/intel-cpus.html", "published_at": "2016-07-15T10:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038fcefd930", "title": "Visualize the system noise using perf and CPU isolation", "url": "https://vstinner.github.io/perf-visualize-system-noise-with-cpu-isolation.html", "published_at": "2016-06-16T11:30:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038fd74be62", "title": "My journey to stable benchmark, part 3 (average)", "url": "https://vstinner.github.io/journey-to-stable-benchmark-average.html", "published_at": "2016-05-23T21:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038fdbd38d0", "title": "My journey to stable benchmark, part 2 (deadcode)", "url": "https://vstinner.github.io/journey-to-stable-benchmark-deadcode.html", "published_at": "2016-05-22T20:00:00+00:00" }, { "id": "01a08c5f-b069-7163-aa5f-9038fe2d5ed4", "title": "My journey to stable benchmark, part 1 (system)", "url": "https://vstinner.github.io/journey-to-stable-benchmark-system.html", "published_at": "2016-05-21T14:50:00+00:00" }, { "id": "01a08c5f-b06a-71ed-9fed-800ad95ea51b", "title": "Status of Python 3 in OpenStack Mitaka", "url": "https://vstinner.github.io/openstack_mitaka_python3.html", "published_at": "2016-03-02T13:00:00+00:00" }, { "id": "01a08c5f-b06a-71ed-9fed-800ad9ba9701", "title": "Fast _PyAccu, _PyUnicodeWriter and_PyBytesWriter APIs to produce strings in CPython", "url": "https://vstinner.github.io/pybyteswriter.html", "published_at": "2016-03-01T15:00:00+00:00" }, { "id": "01a08c5f-b06a-71ed-9fed-800ada6d7d96", "title": "My contributions to CPython during 2015 Q4", "url": "https://vstinner.github.io/contrib-cpython-2015q4.html", "published_at": "2016-03-01T14:00:00+00:00" }, { "id": "01a08c5f-b06a-71ed-9fed-800adb0c498e", "title": "My contributions to CPython during 2015 Q3", "url": "https://vstinner.github.io/contrib-cpython-2015q3.html", "published_at": "2016-02-18T00:00:00+00:00" }, { "id": "01a08c5f-b06a-71ed-9fed-800adbd21270", "title": "History of the Python private C API _PyTime", "url": "https://vstinner.github.io/pytime.html", "published_at": "2016-02-17T21:00:00+00:00" }, { "id": "01a08c5f-b06a-71ed-9fed-800adc4f2262", "title": "Status of the FAT Python project, January 12, 2016", "url": "https://vstinner.github.io/fat-python-status-janv12-2016.html", "published_at": "2016-01-12T12:42:00+00:00" }, { "id": "01a08c5f-b06a-71ed-9fed-800adccb08f2", "title": "Status of the FAT Python project, November 26, 2015", "url": "https://vstinner.github.io/fat-python-status-nov26-2015.html", "published_at": "2015-11-26T16:30:00+00:00" }, { "id": "01a08c5f-b06a-71ed-9fed-800add21e8a0", "title": "Port your Python 2 applications to Python 3 with sixer", "url": "https://vstinner.github.io/python3-sixer.html", "published_at": "2015-06-16T13:00:00+00:00" } ] posts Claim your blog
Back to vstinner.github.io
Blog · corpus.blog/blogs/vstinner.github.io/posts

vstinner.github.io

vstinner.github.io

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015