Changes in 2.12.1 (October 21, 2026)
- Fixed compilation errors and warnings with MSVC for ARM64 and ARM64EC targets.
- Fixed incorrect results on big-endian AArch64 targets, and of libsais64 and libsais16x64 on all big-endian targets.
- Fixed byte-order detection on big-endian BSD targets.
- Big-endian targets now always use the portable (non-SIMD) code.

Changes in 2.12.0 (October 18, 2026)
- Changed license to Apache License 2.0 with LLVM Exceptions.
- Support for cyclic Burrows-Wheeler transform and inverse BWT construction (e.g. as used by bzip2).
- Significantly improved performance of inverse BWT, both single- and multi-threaded.
- Improved performance of suffix array and Burrows-Wheeler transform construction.
- Fixed crashes and incorrect results when OpenMP provides fewer threads than requested (e.g. under OMP_THREAD_LIMIT).
- Fixed out-of-bounds memory access in inverse BWT for inputs that are not a valid BWT.
- Fixed handling of invalid alphabet sizes, of alphabets larger than 2^31 symbols (libsais64, libsais16x64) and of very large thread counts in 32-bit builds.
- Resolved compiler warnings with GCC 16.

Changes in 2.10.4 (September 1, 2025)
- Tuned prefetch distance for improved throughput.

Changes in 2.10.3 (August 12, 2025)
- No functional changes, added CMake install and export package rules.

Changes in 2.10.2 (June 10, 2025)
- Improved performance of suffix array and burrows wheeler transform construction on degenerate inputs.

Changes in 2.10.1 (May 11, 2025)
- No functional changes, slightly improved performance.

Changes in 2.10.0 (April 12, 2025)
- Improved performance, with noticeable gains on ARM architecture.
- Fixed compiler warnings and addressed undefined behavior.

Changes in 2.9.1 (March 19, 2025)
- No functional changes, resolved compiler warnings & undefined behavior.

Changes in 2.9.0 (March 16, 2025)
- Support for generalized suffix array (GSA) construction.
- Support for longest common prefix array (LCP) construction for generalized suffix array (GSA).

Changes in 2.8.7 (January 16, 2025)
- Restore the input array after suffix array construction (libsais64 & libsais16x64).

Changes in 2.8.6 (November 18, 2024)
- Fixed out-of-bound memory access issue for large inputs.

Changes in 2.8.5 (July 31, 2024)
- Miscellaneous changes to reduce compiler warnings about implicit functions.

Changes in 2.8.4 (June 13, 2024)
- Additional OpenMP acceleration (libsais16 & libsais16x64).

Changes in 2.8.3 (June 11, 2024)
- Implemented suffix array construction of a long 16-bit array (libsais16x64).

Changes in 2.8.2 (May 27, 2024)
- Implemented suffix array construction of a long 64-bit array (libsais64).

Changes in 2.8.1 (April 5, 2024)
- Fixed out-of-bound memory access issue for large inputs (libsais64).

Changes in 2.8.0 (March 3, 2024)
- Implemented permuted longest common prefix array (PLCP) construction of an integer array.
- Fixed compilation error when compiling the library with OpenMP enabled.

Changes in 2.7.5 (February 26, 2024)
- Improved performance of suffix array and burrows wheeler transform construction on degenerate inputs.

Changes in 2.7.4 (February 23, 2024)
- Resolved strict aliasing violation resulted in invalid code generation by Intel compiler.

Changes in 2.7.3 (April 21, 2023)
- CMake script for library build and integration with other projects.

Changes in 2.7.2 (April 18, 2023)
- Fixed out-of-bound memory access issue for large inputs (libsais64).

Changes in 2.7.1 (June 19, 2022)
- Improved cache coherence for ARMv8 architecture.

Changes in 2.7.0 (April 12, 2022)
- Support for longest common prefix array (LCP) construction.

Changes in 2.6.5 (January 1, 2022)
- Exposed functions to construct suffix array of a given integer array.
- Improved detection of various compiler intrinsics.
- Capped free space parameter to avoid crashing due to 32-bit integer overflow.

Changes in 2.6.0 (October 21, 2021)
- libsais16 for 16-bit inputs.

Changes in 2.5.0 (October 15, 2021)
- Support for optional symbol frequency tables.

Changes in 2.4.0 (July 14, 2021)
- Reverse Burrows-Wheeler transform.

Changes in 2.3.0 (June 23, 2021)
- Burrows-Wheeler transform with auxiliary indexes.

Changes in 2.2.0 (April 27, 2021)
- libsais64 for inputs larger than 2GB.

Changes in 2.1.0 (April 19, 2021)
- Additional OpenMP acceleration.

Changes in 2.0.0 (April 4, 2021)
- OpenMP acceleration.

Changes in 1.0.0 (February 23, 2021)
- Initial Release.
