Changelog ========= .. rubric:: 1.10.0 - Support numpy 2.x. - Support pytest 8. - Drop support for Python versions older than 3.8, and update the code to use modern syntax. - Autoformat the code with ruff_, and use ruff for linting. .. _ruff: https://docs.astral.sh/ruff/ .. rubric:: 1.9.0 - Make :class:`.Fft` work with CUDA 12.9. Note that the ``work_area`` slot may now be absent in some cases. - Bring readthedocs configuration up to date. .. rubric:: 1.8.1 - Use :func:`np.prod` instead of deprecated :func:`np.product`. - Improve the exception display when accessing an unknown slot. .. rubric:: 1.8.0 - Add :envvar:`KATSDPSIGPROC_TUNE_DB` environment variable to override the location of the tuning database. - Remove use of deprecated :func:`numba.generated_jit` decorator. .. rubric:: 1.7.0 - Add :meth:`.Operation.ensure_bound`. - Remove dependency on deprecated :mod:`pkg_resources` and use :mod:`importlib.resources` instead. - Fix :func:`.autotuner` decorator for autotune functions with no parameters. - Update type annotations to allow :class:`os.PathLike` in the `extra_dirs` argument to :func:`.build`. .. rubric:: 1.6.1 - Fix a race condition that sometimes caused events passed to :func:`.async_wait_for_events` to be garbage-collected in a worker thread, and thus leak if the CUDA context could not be made current. .. rubric:: 1.6.0 - Add `bind` argument to :meth:`.IOSlotBase.allocate`. - Add :meth:`.IOSlotBase.allocate_host`. - Update tests to avoid triggering deprecation warnings. .. rubric:: 1.5.0 - Add :envvar:`KATSDPSIGPROC_TUNE_MATCH` environment variable to control use of partial matches from the autotuning database. .. rubric:: 1.4.3 - Switching testing from nose to pytest. - Some packaging modernisation. - Fix some links to other packages in the docs. - Fix the return annotation on :meth:`katsdpsigproc.resource.wait_until`. - Fix a spurious warning about a future exception not being consumed if an exception is thrown in the scope of a :class:`.ResourceAllocation` context manager. - Change return type annotations on the abstract base classes to work better with mypy. .. rubric:: 1.4.2 - Change some return type annotations on abstract base classes to work around mypy limitations. .. rubric:: 1.4.1 - Destroy cuFFT plan when FftTemplate is garbage collected. This lack was (for unknown reasons) causing segmentation faults when repeatedly creating and destroying contexts without cleaning up the plans. - Fix a potential failure of FftTemplate on 32-bit systems due to an incorrect type signature. - Fix documentation on readthedocs by updating sphinxcontrib-tikz. .. rubric:: 1.4 - Add a module for FFTs (using cuFFT). .. rubric:: 1.3 - Add a pytest plugin. .. rubric:: 1.2 - Add a user guide. - Update the dependencies. - Fix the type annotations to work with numpy 1.20. - Fix deprecated usage of ``np.bool``. - Fix handling of Context.compile when no extra flags are passed. - Fix enqueue_zero_buffer being run on the default CUDA stream. - Fix sequencing of SVMArray get and set operations with other commands in the provided command queue. .. rubric:: 1.1 - Use BLOCKING_SYNC for CUDA events, to avoid spinning on the CPU. - Drop support for Python 3.5. - Add type annotations for many classes. - Make some classes abstract base classes (they were already semantically, but now it's indicated using :py:mod:`abc`. - Introduce some abstract base classes to underly the CUDA and OpenCL implementations. .. rubric:: 1.0 This is the first versioned release.