Edit this page

Was this page helpful?

Open LLM text
Share with AI
Ask Claude Ask ChatGPT Ask Gemini Ask Copilot

Bengal 0.4.3

Free-threading hardening — build error reporting is now race-free on free-threaded Python, so parallel builds no longer crash or report wrong error counts in their summaries.

Key theme: Free-threading hardening. 0.4.3 closes a free-threading correctness gap in how Bengal reports build errors. On free-threaded CPython (3.14t) Bengal runs your build across cores — and the session that tracks errors across that build recorded them safely but read them without the same protection. This patch makes the reads safe too. No new features, no breaking changes.

What's fixed

Build error reporting is race-free under free-threading

  • Error summaries no longer crash or miscount on free-threaded Python. The build-error session indexed errors under a lock when recording them, but its readers — the end-of-build summary, the investigation hints, and the systemic-issue / most-common-error views — walked those shared indexes without one. On free-threaded CPython (python3.14t), a reader iterating an index while another thread recorded an error could raise RuntimeError: dictionary changed size during iteration or report wrong counts. Every reader now takes the session's re-entrant lock, and the per-file / per-code lookups return copies, so concurrent builds produce correct, stable error summaries (#439).

Changes at a glance

Fixed

  • Race-free error tracking: build error summaries and investigation hints no longer crash or report wrong counts during parallel builds on free-threaded Python (#439).

Upgrading

BASH
pip install --upgrade bengal-ssg

0.4.3 is a drop-in patch: no breaking changes and no config migration. The fix only affects builds running on free-threaded CPython (python3.14t); on the standard GIL build the behavior is unchanged.