You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Adding a mode of error handling that does not rely on C++ exceptions,
with Abseil-like Status and StatusOr return types (but not adding a
dependency on Abseil). The old exceptions-based API is still available,
and the new functions are suffixed with "NoExceptions".
Refactoring the CMake build system. Organizing examples and tests and
reducing repetition. Adding the HNSWLIB_ENABLE_EXCEPTIONS option (ON by
default). Exceptions are also enabled when building Python bindings, and
in a few examples/tests where the code currently relies on exception
handling, even if HNSWLIB_ENABLE_EXCEPTIONS is set to OFF.
Adding ctest support. The only tests not supported by ctest are
test_updates invoked with and without the "update" argument, because
that requires installing numpy and running a data generation script and
doing that from a CMake test might be controversial. Those tests are
still run as part of GitHub Actions CI.
Enabling sanitizer support using ENABLE_ASAN / ENABLE_UBSAN /
ENABLE_TSAN / ENABLE_MSAN CMake options. Adding a combined ASAN/UBSAN
build type to the C++ test matrix in GitHub Actions in non-Windows
builds. Also adding Clang compiler on Ubuntu to the build matrix.
Making sure that assertions are enabled during tests. Using the
RelWithDebInfo build type and customizing it to remove the NDEBUG flag.
Also removing the default /EHsc flag when building with MSVC and instead
enabling exceptions when needed.
Fixing race conditions when accessing random number generators and
distributions from multiple threads in multiThreadLoad_test. These race
conditions were caught using ASAN/UBSAN.
0 commit comments