Skip to content

v0.0.9 - Free-threaded CPython and runtime hardening

Choose a tag to compare

@Kludex Kludex released this 27 Aug 06:06
7075423

🧵 Free-threaded CPython and runtime hardening

zuvloop 0.0.9 adds supported free-threaded CPython wheels and hardens lifecycle, networking, and cross-thread scheduling paths.

pip install zuvloop==0.0.9
  • Free-threaded CPython 3.14 wheels now ship for Linux, macOS, and Windows, with explicit critical sections, thread-state handling, atomic reference counting, and dedicated compatibility coverage (#123).
  • Loop shutdown races no longer admit new work while resolving DNS, spawning processes, adopting datagrams, or creating poll watchers (#101, #103, #104, #105).
  • Networking setup and error paths settle predictably across STARTTLS, getnameinfo, buffered reads, stream and datagram closure, process exit, and timer delivery (#102, #106, #110, #111, #112, #113, #114, #115).
  • UDP and resolver behavior aligns more closely with the standard library by delivering connection setup before reads, preserving adopted-socket reuse options, normalizing Unicode hostnames with IDNA, and rejecting embedded NULs (#107, #108, #109, #116, #117).
  • Cross-thread scheduling does less work by coalescing wakeups and allocating empty callback contexts only when needed (#119, #120).

Full changelog: v0.0.8...v0.0.9