In the course of refactoring, recently, WrathfulSpatula failed to test `QBdt` (QBDD), and, likely, a long-standing pattern of free-then-use-_copy_ became a use-after-free anti-pattern. As can be seen in the diff and tests of the affected versions, it seems unlikely that this very tight pattern of use-after-free would not go uncaught by the runtime, ever. This has been fixed.
Experimental support for "automatic circuit elision" (ACE) interoperability with `QBdt` has also been added. (While `QBdt` works in principle with SDRP, for example, the stability of this interoperability with high SDRP settings has historically been limited, maybe due to complex recursive behavior wholly on stack, by design of `QBdt`.)
(To break it down simply and colloquially: I realize these release notes sound like "WTF?" if you haven't used Qrack or `QBdt` before, but the long-and-short is, I've fixed the regression that broke `QBdt` in recent releases, since refactoring for general best-practice, and the ACE interoperability with `QBdt` should work in principle, but the "instability" with _approximation techniques_ is nothing new for `QBdt`, though you're free run stable ideal `QBdt` simulation or experiment with combining it with approximation techniques, like status quo. You might want to use small-magnitude approximation parameters with `QBdt`, per usual.)
**Full Changelog**:
https://github.com/unitaryfund/qrack/compare/vm6502q.v9.14.1...vm6502q.v9.15.0
https://github.com/unitaryfund/pyqrack/compare/v1.36.1...v1.37.0
sha1sum results:
50eefc625a9cf3d17297dcde9566c392fb9220d3 pyqrack-1.37.0-py3-none-macosx_13_0_x86_64.whl
fe99a7aa80174bca7a03e2add27d78db5e918d25 pyqrack-1.37.0-py3-none-macosx_14_0_arm64.whl
c572852622ab6d70b1ac52a608d1e6f11874b995 pyqrack-1.37.0-py3-none-macosx_15_0_arm64.whl
a03db951e4efa83f8fa92cacc18ee2570e2c3054 pyqrack-1.37.0-py3-none-manylinux_2_31_x86_64.whl
5ac1796abb7a1563b74ebfaf9e3ef6662f929dd5 pyqrack-1.37.0-py3-none-manylinux_2_35_x86_64.whl
69daa915f76789252ef490fd9d61360d96d3a1cd pyqrack-1.37.0-py3-none-manylinux_2_39_x86_64.whl
e103ba234a23f953f4fc6cdf44d4b6364f78bddd pyqrack-1.37.0-py3-none-win_amd64.whl
5f5d9f8db6dc3e9afcb67acb49604dd37c73e2b7 pyqrack-1.37.0.tar.gz
f8469db5db5f697e043898038a09617673452b9d pyqrack_cpu-1.37.0-py3-none-macosx_13_0_x86_64.whl
0dfecb054d13adfe2552ca8e3525e65213429a01 pyqrack_cpu-1.37.0-py3-none-manylinux_2_31_x86_64.whl
96d9392cf0787501ecb68527d7e42fd98b5b3241 pyqrack_cpu-1.37.0-py3-none-manylinux_2_35_x86_64.whl
c4c7fa393f38376601d39ea1444d94c73f17e83d pyqrack_cpu-1.37.0-py3-none-manylinux_2_39_x86_64.whl
7f8446137cbe9f5d31da27adb77d708460d9cc11 pyqrack_cpu-1.37.0-py3-none-win_amd64.whl
dfa98c58857ccab34b49768685799e4c56a00096 pyqrack_cpu-1.37.0.tar.gz
54389c5dff34575405b8b535a0c2d2ecfb1f8c99 pyqrack_cuda-1.37.0.tar.gz