- Added support for the Scientific Python version of OpenBLAS (https://github.com/MacPython/openblas-libs), which exposes symbols with different names than the ones of the original OpenBLAS library. https://github.com/joblib/threadpoolctl/pull/175
3.4.0
==================
- Added support for Python interpreters statically linked against libc or linked against alternative implementations of libc like musl (on Alpine Linux for instance). https://github.com/joblib/threadpoolctl/pull/171
- Added support for Pyodide https://github.com/joblib/threadpoolctl/pull/169
3.3.0
==================
- Extended FlexiBLAS support to be able to switch backend at runtime. https://github.com/joblib/threadpoolctl/pull/163
- Added support for FlexiBLAS https://github.com/joblib/threadpoolctl/pull/156
- Fixed a bug where an unsupported library would be detected because it shares a common prefix with one of the supported libraries. Now the symbols are also checked to identify the supported libraries. https://github.com/joblib/threadpoolctl/pull/151
3.2.0
==================
- Dropped support for Python 3.6 and 3.7.
- Added support for custom library controllers. Custom controllers must inherit from the `threadpoolctl.LibController` class and be registered to threadpoolctl using the `threadpoolctl.register` function. https://github.com/joblib/threadpoolctl/pull/138
- A warning is raised on macOS when threadpoolctl finds both Intel OpenMP and LLVM OpenMP runtimes loaded simultaneously by the same Python program. See details and workarounds at https://github.com/joblib/threadpoolctl/blob/master/multiple_openmp.md. https://github.com/joblib/threadpoolctl/pull/142
3.1.0
==================
- Fixed a detection issue of the BLAS libraires packaged by conda-forge on Windows. https://github.com/joblib/threadpoolctl/pull/112
- `threadpool_limits` and `ThreadpoolController.limit` now accept the string "sequential_blas_under_openmp" for the `limits` parameter. It should only be used for the specific case when one wants to have sequential BLAS calls within an OpenMP parallel region. It takes into account the unexpected behavior of OpenBLAS with the OpenMP threading layer. https://github.com/joblib/threadpoolctl/pull/114
3.0.0
==================
- New object `threadpooctl.ThreadpoolController` which holds controllers for all the supported native libraries. The states of these libraries is accessible through the `info` method (equivalent to `threadpoolctl.threadpool_info()`) and their number of threads can be limited with the `limit` method which can be used as a context manager (equivalent to `threadpoolctl.threadpool_limits()`). This is especially useful to avoid searching through all loaded shared libraries each time. https://github.com/joblib/threadpoolctl/pull/95
- Added support for OpenBLAS built for 64bit integers in Fortran. https://github.com/joblib/threadpoolctl/pull/101
- Added the possibility to use `threadpoolctl.threadpool_limits` and `threadpooctl.ThreadpoolController` as decorators through their `wrap` method. https://github.com/joblib/threadpoolctl/pull/102
- Fixed an attribute error when using old versions of OpenBLAS or BLIS that are missing version query functions. https://github.com/joblib/threadpoolctl/pull/88 https://github.com/joblib/threadpoolctl/pull/91
- Fixed an attribute error when python is run with -OO. https://github.com/joblib/threadpoolctl/pull/87