Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.5.0] - 2026-07-16¶
Performance¶
__slots__on core classes: Added__slots__toMapAdapter,RepeatArray, andSlNode, saving ~176 bytes per instance for each. (#f4d6f8c)Compact BPQueue buckets: Replaced per-bucket
Dllist([i, 4848])with bareDllinksentinels, eliminating the per-bucketDllistwrapper object + list — saving ~168 bytes per bucket (~150 MB for large circuits with pmax=50K). (#f4d6f8c)
Documentation¶
svgbob doubly-linked list diagram: Added ASCII-to-SVG diagram to
dllist.pymodule docstring. (#b275f30)
Fixed¶
mypy errors: Resolved type annotation errors in config and
bpqueue. (#69e04ae)Robin precondition: Enforced
num_parts >= 2precondition, replaced empty-cycle guard with assertion. (#5411bce)Python 3.9 compat: Added
from __future__ import annotationsfor PEP 604 syntax. (#f99e33d)
Testing¶
Coverage raised 95%→98%: Deduped redundant tests, added slice and iterator coverage tests. (#71de094)
Code Cleanup¶
Removed PyScaffold boilerplate: Deleted
skeleton.py/test_skeleton.py, dropped Python < 3.9 compat, removed dead entry points and duplicateLICENSE. (#bde6f85)
Build & CI¶
CI repair: Fixed broken entry_points and remaining skeleton imports. (#551afd2)