diff --git a/bindings/cpp/CMakeLists.txt b/bindings/cpp/CMakeLists.txt index 3fe0cb85..dc416efc 100644 --- a/bindings/cpp/CMakeLists.txt +++ b/bindings/cpp/CMakeLists.txt @@ -34,6 +34,7 @@ set(SVS_RUNTIME_SOURCES src/IndexSVSFlatImpl.cpp src/IndexSVSVamanaImpl.cpp src/training.cpp + src/vamana_index.cpp src/dynamic_vamana_index.cpp src/flat_index.cpp ) @@ -114,7 +115,7 @@ if ((SVS_RUNTIME_ENABLE_LVQ_LEANVEC)) else() # Links to LTO-enabled static library, requires GCC/G++ 11.2 if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "11.2" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "11.3") - set(SVS_URL "https://github.com/intel/ScalableVectorSearch/releases/download/v1.0.0-dev/svs-shared-library-1.0.0-NIGHTLY-20251106-762.tar.gz" + set(SVS_URL "https://github.com/intel/ScalableVectorSearch/releases/download/v1.0.0-dev/svs-shared-library-1.0.0-NIGHTLY-20251106-766.tar.gz" CACHE STRING "URL to download SVS shared library") else() message(WARNING diff --git a/bindings/cpp/src/dynamic_vamana_index.cpp b/bindings/cpp/src/dynamic_vamana_index.cpp index b79a66d7..50b4de23 100644 --- a/bindings/cpp/src/dynamic_vamana_index.cpp +++ b/bindings/cpp/src/dynamic_vamana_index.cpp @@ -133,9 +133,6 @@ using DynamicVamanaIndexLeanVecImplManager = } // namespace -// VamanaIndex interface implementation -VamanaIndex::~VamanaIndex() = default; - // DynamicVamanaIndex interface implementation Status DynamicVamanaIndex::build( DynamicVamanaIndex** index, diff --git a/bindings/cpp/src/training.cpp b/bindings/cpp/src/training.cpp index a6680b2d..d3794c04 100644 --- a/bindings/cpp/src/training.cpp +++ b/bindings/cpp/src/training.cpp @@ -21,6 +21,8 @@ namespace svs { namespace runtime { +LeanVecTrainingData::~LeanVecTrainingData() = default; + Status LeanVecTrainingData::build( LeanVecTrainingData** training_data, size_t dim, @@ -43,6 +45,11 @@ Status LeanVecTrainingData::destroy(LeanVecTrainingData* training_data) noexcept SVS_RUNTIME_TRY_END } +Status LeanVecTrainingData::save(std::ostream& /*out*/) const noexcept { + // providing an implementation of a virtual function to anchor vtable + return {ErrorCode::NOT_IMPLEMENTED, "Not implemented"}; +} + Status LeanVecTrainingData::load(LeanVecTrainingData** training_data, std::istream& in) noexcept { SVS_RUNTIME_TRY_BEGIN diff --git a/bindings/cpp/src/vamana_index.cpp b/bindings/cpp/src/vamana_index.cpp new file mode 100644 index 00000000..c0ffb292 --- /dev/null +++ b/bindings/cpp/src/vamana_index.cpp @@ -0,0 +1,25 @@ +/* + * Copyright 2025 Intel Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "vamana_index.h" + +namespace svs { +namespace runtime { + +VamanaIndex::~VamanaIndex() = default; + +} +} // namespace svs