Creează un cont pentru a te abona la acest blog și a-i urmări articolele pe pagina Lectură.
-
In November 2025 at Pycon France (at Lyon), I watched the talk "Build a frozendict type (immutable dictionary)" by Antoine Rozo (video in French).
-
I'm writing an article series on Free Threading internals to learn more about Free Threading, explain how it works, and explain how it solved the "remove the GIL" issue where previous attempts failed.
-
I'm writing an article series on Free Threading internals to learn more about Free Threading, explain how it works, and explain how it solved the "remove the GIL" issue where previous attempts failed.
-
I'm writing an article series on Free Threading internals to learn more about Free Threading, explain how it works, and explain how it solved the "remove the GIL" issue where previous attempts failed.
-
In the Python C API, I dislike APIs modifying immutable objects such as _PyBytes_Resize().
-
Design an API can take time.
-
Here is a report on my 18 commits merged into Python in February 2025: Reorganize C API tests Use PyErr_FormatUnraisable() Reorganize includes C API: Remove PySequence_Fast() C API: Fix function signatures C API: Deprecate private _PyUnicodeWriter Documen…
-
PEP 741 story Sometimes, writing a PEP can be a wild ride.
-
In May, I designed a new C API to build a Python str object: the PyUnicodeWriter API.
-
In Python 3.13, I made multiple enhancements to make the limited C API more usable: Add 14 functions to the limited C API.
-
In Python 3.13 alpha 1, I removed more than 300 private C API functions.
-
Last June, I proposed adding a new PyDict_GetItemRef() function to Python 3.13 C API.
-
In 2023, between May 4 and July 8, I made 144 commits in the Python main branch.
-
Drawing: "L'oeil du cyclone" by Théo Grosjean.
-
This morning, I got this email from the buildbot-status mailing list: The Buildbot has detected a new failure on builder PPC64LE Fedora Rawhide Refleaks 3.x while building Python.
-
The PyObject structure prevents indirectly to optimize CPython.
-
I'm trying to enhance and to fix the Python C API for 5 years.
-
In 2020, I created a new pythoncapi_compat project to add Python 3.10 support to C extensions without losing support for old Python versions.
-
This article is about changes that I made, with the help other developers, in the Python C API in Python 3.8, 3.9 and 3.10 to avoid accessing structures members: prepare the C API to make structures opaque.
-
This article is about the work done in Python in 2019 and 2020 to better isolate subinterpreters.
-
This article is the history of Python C API discussions over the last 4 years, and the creation of C API projects: pythoncapi website, pythoncapi_compat.h header file and HPy (new clean C API).
-
This article is about old reference leaks discovered or caused by the work on isolating subinterpreters: leaks in 6 different modules (gc, _weakref, _abc, _signal, _ast and _thread).
-
My previous article Daemon threads and the Python finalization in Python 3.2 and 3.3 introduces issues caused by daemon threads in the Python finalization and past changes to make them work.
-
This article is about a race condition in threading shutdown that I fixed in Python 3.9 in March 2019.
-
At exit, the Python finalization calls Python objects finalizers (the __del__() method) and deallocates memory.
-
This article describes the discussion on the design of the development mode (-X dev) that I added to Python 3.7 and how it has been implemented.
-
Keeping Python competitive I'm trying to find ways to make Python more efficient for many years, see for example my discussion at the Language Summit during Pycon US 2017: Keeping Python competitive (LWN article); slides.
-
After explaining how to Debug Hybrid Graphics issues on Linux, here is the story of four graphics bugs that I had in GNOME and Firefox on my Fedora 30 between May 2018 and September 2019: bugs in gnome-shell, Gtk, Firefox and mutter. gnome-shell freezes In
-
Hybrid Graphics is a complex hardware and software solution to achieve longer laptop battery life: an integrated graphics device is used by default, and a discrete graphics device with higher graphics performances is enabled on demand.
-
In September 2017, during the CPython sprint at Facebook, I proposed my idea to create A New C API for CPython.
-
I added a new sys.unraisablehook function to allow to set a custom hook to control how "unraisable exceptions" are handled.
-
I fixed multiple bugs in asyncio ProactorEventLoop previously.
-
In December 2017, Yury Selivanov pushed the long awaited start_tls() function.
-
Between December 2014 and January 2015, once I succeeded to fix the root issue of the random asyncio crashes on Windows (Proactor Cancellation From Hell), I fixed more race conditions and bugs in ProactorEventLoop: ConnectPipe() Race Condition Race Condit…
-
Between 2014 and 2015, I was working on the new shiny asyncio module (module added to Python 3.4 released in March 2014).
-
This article describes a few locales bugs that I fixed in Python 3 between 2012 (Python 3.3) and 2018 (Python 3.7): Support non-ASCII decimal point and thousands separator Crash with non-ASCII decimal point LC_NUMERIC encoding different than LC_CTYPE enco…
-
Recently, I worked on a change which looked simple: move the code to initialize the sys.stdout encoding before Py_Initialize().
-
Since Python 3.0 was released in 2008, each time an user reported an encoding issue, someone showed up and asked why Python does not "simply" always use UTF-8.
-
During the childhood of Python 3, encodings issues were common, even on well configured systems.
-
September 2016, a few days before the CPython core dev sprint, Steve Dower proposed two major backward incompatible changes for Python 3.6 on Windows: PEP 528: Change Windows console encoding to UTF-8 and PEP 529: Change Windows filesystem encoding to UTF…
-
Between Python 3.0 released in 2008 and Python 3.4 released in 2014, the Python filesystem encoding changed multiple times.
-
In my previous article, I wrote that os.listdir(str) ignored silently undecodable filenames in Python 3.0 and that lying on the real content of a directory looks like a very bad idea.
-
Ten years ago, when Python 3.0 final was released, os.listdir(str) ignored silently undecodable filenames: $ python3.0 >>> os.mkdir(b'x') >>> open(b'x/nonascii\xff', 'w').close() >>> os.listdir('x') [] You had to use bytes to see all filenames: >>> os.li…
-
It took me 4 years to fix a nasty bug in the famous Python GIL (Global Interpreter Lock), one of the most critical part of Python.
-
Thanks to my latest change on time.perf_counter(), all Python 3.7 clocks now use nanoseconds as integer internally.
-
Since 2012, I have been trying to convert all Python clocks to use internally nanoseconds.
-
My contributions to CPython during 2017 Q3 (july, august, september), Part 3 (funny bugs).
-
My contributions to CPython during 2017 Q3 (july, august, september), Part 2: "Dangling threads".
-
My contributions to CPython during 2017 Q3 (july, august, september), Part 1.
-
I am working on the Python security for years, but I never wrote anything about that.