Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dhnsw::detail::query_engine is incompatible with recent changes to cereal::YGMInputArchive #84

Open
bwpriest opened this issue Dec 19, 2024 · 0 comments

Comments

@bwpriest
Copy link
Member

Saltatlas DHNSW executables can no longer compile due to the following error:

  603 |     cereal::YGMOutputArchive oarchive(to_return);  // Create an output archive
      |                              ^~~~~~~~
In file included from /Users/priest2/workspace/nisenemarks/repos/saltatlas/build/_deps/ygm-src/include/ygm/comm.hpp:22,
                 from /Users/priest2/workspace/nisenemarks/repos/saltatlas/build/_deps/ygm-src/include/ygm/collective.hpp:8,
                 from /Users/priest2/workspace/nisenemarks/repos/saltatlas/build/_deps/ygm-src/include/ygm/container/detail/base_count.hpp:10,
                 from /Users/priest2/workspace/nisenemarks/repos/saltatlas/build/_deps/ygm-src/include/ygm/container/bag.hpp:12,
                 from /Users/priest2/workspace/nisenemarks/repos/saltatlas/include/saltatlas/dhnsw/detail/utility.hpp:11,
                 from /Users/priest2/workspace/nisenemarks/repos/saltatlas/examples/dhnsw_big_ann.cpp:2:
/Users/priest2/workspace/nisenemarks/repos/saltatlas/build/_deps/ygm-src/include/ygm/detail/ygm_cereal_archive.hpp:46:3: note: candidate: 'cereal::YGMOutputArchive::YGMOutputArchive(ygm::detail::byte_vector&)'
   46 |   YGMOutputArchive(ygm::detail::byte_vector &stream)
      |   ^~~~~~~~~~~~~~~~
/Users/priest2/workspace/nisenemarks/repos/saltatlas/build/_deps/ygm-src/include/ygm/detail/ygm_cereal_archive.hpp:46:46: note:   no known conversion for argument 1 from 'std::vector<std::byte>' to 'ygm::detail::byte_vector&'
   46 |   YGMOutputArchive(ygm::detail::byte_vector &stream)
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~

This appears to happen because saltatlas::dhnsw::detail::query_engine reasons about raw std::vector<std::byte> buffers. Meanwhile, it appears that a recent commit to ygm/v0.7-dev (520916642aab511ce7261801812f5f10b88f8ee6) updated YGM to internally use ygm::detail::byte_vector. This means that cereal::YGMOutputArchive can no longer accept a raw std::vector<std::byte> in its constructor.

I fiddled with a few simple fixes, but I think that either ygm::detail::byte_vector needs to have const iterator accessors and an interface for inserting new bytes, or there need to be major changes made to saltatlas::dhnsw::detail::query_engine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant