Skip to content

Commit 98b9bc4

Browse files
committed
Restore the input array after suffix array construction (libsais64 & libsais16x64).
1 parent 5265154 commit 98b9bc4

12 files changed

+26
-19
lines changed

CHANGES

+3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
Changes in 2.8.7 (January 16, 2025)
2+
- Restore the input array after suffix array construction (libsais64 & libsais16x64).
3+
14
Changes in 2.8.6 (November 18, 2024)
25
- Fixed out-of-bound memory access issue for large inputs.
36

CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cmake_minimum_required(VERSION 3.10)
22

3-
project(libsais VERSION 2.8.6 LANGUAGES C DESCRIPTION "libsais is a library for linear time suffix array, longest common prefix array and burrows wheeler transform construction based on induced sorting algorithm.")
3+
project(libsais VERSION 2.8.7 LANGUAGES C DESCRIPTION "libsais is a library for linear time suffix array, longest common prefix array and burrows wheeler transform construction based on induced sorting algorithm.")
44

55
set(CMAKE_C_STANDARD 99)
66
set(CMAKE_C_STANDARD_REQUIRED ON)

README.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ The libsais is a library for fast (see [Benchmarks](#benchmarks) below) linear t
66
* Nataliya Timoshevskaya, Wu-chun Feng *SAIS-OPT: On the characterization and optimization of the SA-IS algorithm for suffix array construction*, 2014
77
* Jing Yi Xie, Ge Nong, Bin Lao, Wentao Xu *Scalable Suffix Sorting on a Multicore Machine*, 2020
88

9-
Copyright (c) 2021-2024 Ilya Grebnov <ilya.grebnov@gmail.com>
9+
Copyright (c) 2021-2025 Ilya Grebnov <ilya.grebnov@gmail.com>
1010

1111
>The libsais is inspired by [libdivsufsort](https://github.com/y-256/libdivsufsort), [sais](https://sites.google.com/site/yuta256/sais) libraries by Yuta Mori and [msufsort](https://github.com/michaelmaniscalco/msufsort) by Michael Maniscalco.
1212
@@ -23,6 +23,8 @@ The libsais provides simple C99 API to construct suffix array and Burrows-Wheele
2323
The libsais is released under the [Apache License Version 2.0](LICENSE "Apache license")
2424

2525
## Changes
26+
* January 16, 2025 (2.8.7)
27+
* Restore the input array after suffix array construction (libsais64 & libsais16x64).
2628
* November 18, 2024 (2.8.6)
2729
* Fixed out-of-bound memory access issue for large inputs.
2830
* July 31, 2024 (2.8.5)

VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.8.6
1+
2.8.7

include/libsais.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
This file is a part of libsais, a library for linear time suffix array,
44
longest common prefix array and burrows wheeler transform construction.
55
6-
Copyright (c) 2021-2024 Ilya Grebnov <ilya.grebnov@gmail.com>
6+
Copyright (c) 2021-2025 Ilya Grebnov <ilya.grebnov@gmail.com>
77
88
Licensed under the Apache License, Version 2.0 (the "License");
99
you may not use this file except in compliance with the License.
@@ -26,8 +26,8 @@ Please see the file LICENSE for full copyright information.
2626

2727
#define LIBSAIS_VERSION_MAJOR 2
2828
#define LIBSAIS_VERSION_MINOR 8
29-
#define LIBSAIS_VERSION_PATCH 6
30-
#define LIBSAIS_VERSION_STRING "2.8.6"
29+
#define LIBSAIS_VERSION_PATCH 7
30+
#define LIBSAIS_VERSION_STRING "2.8.7"
3131

3232
#ifdef _WIN32
3333
#ifdef LIBSAIS_SHARED

include/libsais16.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
This file is a part of libsais, a library for linear time suffix array,
44
longest common prefix array and burrows wheeler transform construction.
55
6-
Copyright (c) 2021-2024 Ilya Grebnov <ilya.grebnov@gmail.com>
6+
Copyright (c) 2021-2025 Ilya Grebnov <ilya.grebnov@gmail.com>
77
88
Licensed under the Apache License, Version 2.0 (the "License");
99
you may not use this file except in compliance with the License.
@@ -26,8 +26,8 @@ Please see the file LICENSE for full copyright information.
2626

2727
#define LIBSAIS16_VERSION_MAJOR 2
2828
#define LIBSAIS16_VERSION_MINOR 8
29-
#define LIBSAIS16_VERSION_PATCH 6
30-
#define LIBSAIS16_VERSION_STRING "2.8.6"
29+
#define LIBSAIS16_VERSION_PATCH 7
30+
#define LIBSAIS16_VERSION_STRING "2.8.7"
3131

3232
#ifdef _WIN32
3333
#ifdef LIBSAIS_SHARED

include/libsais16x64.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
This file is a part of libsais, a library for linear time suffix array,
44
longest common prefix array and burrows wheeler transform construction.
55
6-
Copyright (c) 2021-2024 Ilya Grebnov <ilya.grebnov@gmail.com>
6+
Copyright (c) 2021-2025 Ilya Grebnov <ilya.grebnov@gmail.com>
77
88
Licensed under the Apache License, Version 2.0 (the "License");
99
you may not use this file except in compliance with the License.
@@ -26,8 +26,8 @@ Please see the file LICENSE for full copyright information.
2626

2727
#define LIBSAIS16X64_VERSION_MAJOR 2
2828
#define LIBSAIS16X64_VERSION_MINOR 8
29-
#define LIBSAIS16X64_VERSION_PATCH 6
30-
#define LIBSAIS16X64_VERSION_STRING "2.8.6"
29+
#define LIBSAIS16X64_VERSION_PATCH 7
30+
#define LIBSAIS16X64_VERSION_STRING "2.8.7"
3131

3232
#ifdef _WIN32
3333
#ifdef LIBSAIS_SHARED

include/libsais64.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
This file is a part of libsais, a library for linear time suffix array,
44
longest common prefix array and burrows wheeler transform construction.
55
6-
Copyright (c) 2021-2024 Ilya Grebnov <ilya.grebnov@gmail.com>
6+
Copyright (c) 2021-2025 Ilya Grebnov <ilya.grebnov@gmail.com>
77
88
Licensed under the Apache License, Version 2.0 (the "License");
99
you may not use this file except in compliance with the License.
@@ -26,8 +26,8 @@ Please see the file LICENSE for full copyright information.
2626

2727
#define LIBSAIS64_VERSION_MAJOR 2
2828
#define LIBSAIS64_VERSION_MINOR 8
29-
#define LIBSAIS64_VERSION_PATCH 6
30-
#define LIBSAIS64_VERSION_STRING "2.8.6"
29+
#define LIBSAIS64_VERSION_PATCH 7
30+
#define LIBSAIS64_VERSION_STRING "2.8.7"
3131

3232
#ifdef _WIN32
3333
#ifdef LIBSAIS_SHARED

src/libsais.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
This file is a part of libsais, a library for linear time suffix array,
44
longest common prefix array and burrows wheeler transform construction.
55
6-
Copyright (c) 2021-2024 Ilya Grebnov <ilya.grebnov@gmail.com>
6+
Copyright (c) 2021-2025 Ilya Grebnov <ilya.grebnov@gmail.com>
77
88
Licensed under the Apache License, Version 2.0 (the "License");
99
you may not use this file except in compliance with the License.

src/libsais16.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
This file is a part of libsais, a library for linear time suffix array,
44
longest common prefix array and burrows wheeler transform construction.
55
6-
Copyright (c) 2021-2024 Ilya Grebnov <ilya.grebnov@gmail.com>
6+
Copyright (c) 2021-2025 Ilya Grebnov <ilya.grebnov@gmail.com>
77
88
Licensed under the Apache License, Version 2.0 (the "License");
99
you may not use this file except in compliance with the License.

src/libsais16x64.c

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
This file is a part of libsais, a library for linear time suffix array,
44
longest common prefix array and burrows wheeler transform construction.
55
6-
Copyright (c) 2021-2024 Ilya Grebnov <ilya.grebnov@gmail.com>
6+
Copyright (c) 2021-2025 Ilya Grebnov <ilya.grebnov@gmail.com>
77
88
Licensed under the Apache License, Version 2.0 (the "License");
99
you may not use this file except in compliance with the License.
@@ -6298,6 +6298,7 @@ static sa_sint_t libsais16x64_main_32s_recursion(sa_sint_t * RESTRICT T, sa_sint
62986298
if (index >= 0)
62996299
{
63006300
libsais16x64_convert_inplace_32u_to_64u_omp((uint32_t *)SA, n, threads);
6301+
libsais16x64_convert_inplace_32u_to_64u_omp((uint32_t *)T, n, threads);
63016302
}
63026303

63036304
return index;

src/libsais64.c

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
This file is a part of libsais, a library for linear time suffix array,
44
longest common prefix array and burrows wheeler transform construction.
55
6-
Copyright (c) 2021-2024 Ilya Grebnov <ilya.grebnov@gmail.com>
6+
Copyright (c) 2021-2025 Ilya Grebnov <ilya.grebnov@gmail.com>
77
88
Licensed under the Apache License, Version 2.0 (the "License");
99
you may not use this file except in compliance with the License.
@@ -6320,6 +6320,7 @@ static sa_sint_t libsais64_main_32s_recursion(sa_sint_t * RESTRICT T, sa_sint_t
63206320
if (index >= 0)
63216321
{
63226322
libsais64_convert_inplace_32u_to_64u_omp((uint32_t *)SA, n, threads);
6323+
libsais64_convert_inplace_32u_to_64u_omp((uint32_t *)T, n, threads);
63236324
}
63246325

63256326
return index;

0 commit comments

Comments
 (0)