Other articles

  1. asyncio: WSARecv() cancellation causing data loss

    In December 2017, Yury Selivanov pushed the long awaited start_tls() function.

    A newly added test failed on Windows. Later, the test started to fail randomly on Linux as well. In fact, it was a well hidden race condition in the asynchronous handshake of SSLProtocol which will take 5 months of …

    read more
  2. Asyncio: Proactor Cancellation From Hell

    Between 2014 and 2015, I was working on the new shiny asyncio module (module added to Python 3.4 released in March 2014). I helped to stabilize the Windows implementation because... well, nobody else was paying attention to it, and I was worried that test_asyncio randomly crashed on Windows.

    One …

    read more
  3. Locale Bugfixes in Python 3

    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 encoding
    • LC_MONETARY encoding different than LC_CTYPE encoding
    • Tests non-ASCII locales …
    read more
  4. Python 3, locales and encodings

    Recently, I worked on a change which looked simple: move the code to initialize the sys.stdout encoding before Py_Initialize(). While I was on it, I also decided to move the code which selects the Python "filesystem encoding". I didn't expect that I would spend 2 weeks on these issues …

    read more