elixir-nx / hnswlib

Elixir binding for the hnswlib library.
Apache License 2.0
52 stars 9 forks source link

Failed to build: error: ‘uint64_t’ was not declared in this scope #19

Open knewter opened 7 months ago

knewter commented 7 months ago

Not really sure the culprit, felt obligated to report the build failure. happy to help sort it out if i can, i'm sure it's just something janky on my end

# mix.exs
  defp deps do
    [
      {:hnswlib, github: "elixir-nx/hnswlib"},
    ]
  end
==> hnswlib
Error happened while installing hnswlib from precompiled binary: "missing checksum.exs file".

Attempting to compile hnswlib from source...
CMake Warning:
  Ignoring empty string ("") provided on the command line.

Not searching for unused variables given on the command line.

-- The C compiler identification is GNU 13.2.1
-- The CXX compiler identification is GNU 13.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Using PRIV_DIR: /home/jadams/tmp/hnswlib_playground/foo/_build/dev/lib/hnswlib/priv
-- Using ERTS_INCLUDE_DIR: /home/jadams/.asdf/installs/erlang/26.2.2/erts-14.2.2/include
-- CMAKE_TOOLCHAIN_FILE:
-- Configuring done (0.3s)
-- Generating done (0.0s)
-- Build files have been written to: /home/jadams/tmp/hnswlib_playground/foo/_build/dev/lib/hnswlib/cmake_hnswlib
make[1]: Entering directory '/home/jadams/tmp/hnswlib_playground/foo/_build/dev/lib/hnswlib/cmake_hnswlib'
make[1]: warning: -j1 forced in submake: resetting jobserver mode.
[ 33%] Building CXX object CMakeFiles/hnswlib_nif.dir/c_src/nif_utils.cpp.o
In file included from /home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:5:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp: In function ‘int erlang::nif::make_u64_list_from_c_array(ErlNifEnv*, size_t, T*, ERL_NIF_TERM&)’:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:80:43: error: ‘uint64_t’ was not declared in this scope
   80 |         terms[i] = enif_make_uint64(env, (uint64_t)(data[i]));
      |                                           ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:12:1: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
   11 | #include <vector>
  +++ |+#include <cstdint>
   12 |
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp: In function ‘int erlang::nif::make_u32_list_from_c_array(ErlNifEnv*, size_t, T*, ERL_NIF_TERM&)’:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:118:41: error: ‘uint32_t’ was not declared in this scope
  118 |         terms[i] = enif_make_uint(env, (uint32_t)(data[i]));
      |                                         ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:118:41: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp: At global scope:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:149:35: error: ‘uint32_t’ has not been declared
  149 | ERL_NIF_TERM make(ErlNifEnv *env, uint32_t var);
      |                                   ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:163:44: error: ‘uint8_t’ was not declared in this scope
  163 | int make(ErlNifEnv *env, const std::vector<uint8_t>& array, ERL_NIF_TERM &out);
      |                                            ^~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:163:44: note: ‘uint8_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:163:51: error: template argument 1 is invalid
  163 | int make(ErlNifEnv *env, const std::vector<uint8_t>& array, ERL_NIF_TERM &out);
      |                                                   ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:163:51: error: template argument 2 is invalid
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:164:44: error: ‘uint16_t’ was not declared in this scope
  164 | int make(ErlNifEnv *env, const std::vector<uint16_t>& array, ERL_NIF_TERM &out);
      |                                            ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:164:44: note: ‘uint16_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:164:52: error: template argument 1 is invalid
  164 | int make(ErlNifEnv *env, const std::vector<uint16_t>& array, ERL_NIF_TERM &out);
      |                                                    ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:164:52: error: template argument 2 is invalid
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:165:44: error: ‘uint32_t’ was not declared in this scope
  165 | int make(ErlNifEnv *env, const std::vector<uint32_t>& array, ERL_NIF_TERM &out);
      |                                            ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:165:44: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:165:52: error: template argument 1 is invalid
  165 | int make(ErlNifEnv *env, const std::vector<uint32_t>& array, ERL_NIF_TERM &out);
      |                                                    ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:165:52: error: template argument 2 is invalid
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:271:61: error: ‘uint64_t’ was not declared in this scope
  271 | int get_list(ErlNifEnv *env, ERL_NIF_TERM list, std::vector<uint64_t> &var);
      |                                                             ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:271:61: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:271:69: error: template argument 1 is invalid
  271 | int get_list(ErlNifEnv *env, ERL_NIF_TERM list, std::vector<uint64_t> &var);
      |                                                                     ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.hpp:271:69: error: template argument 2 is invalid
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:160:35: error: ‘uint32_t’ has not been declared
  160 | ERL_NIF_TERM make(ErlNifEnv *env, uint32_t var) {
      |                                   ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:160:14: error: redefinition of ‘ERL_NIF_TERM erlang::nif::make(ErlNifEnv*, int)’
  160 | ERL_NIF_TERM make(ErlNifEnv *env, uint32_t var) {
      |              ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:152:14: note: ‘ERL_NIF_TERM erlang::nif::make(ErlNifEnv*, int32_t)’ previously defined here
  152 | ERL_NIF_TERM make(ErlNifEnv *env, int32_t var) {
      |              ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:219:44: error: ‘uint8_t’ was not declared in this scope
  219 | int make(ErlNifEnv *env, const std::vector<uint8_t>& array, ERL_NIF_TERM &out) {
      |                                            ^~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:6:1: note: ‘uint8_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
    5 | #include "nif_utils.hpp"
  +++ |+#include <cstdint>
    6 |
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:219:51: error: template argument 1 is invalid
  219 | int make(ErlNifEnv *env, const std::vector<uint8_t>& array, ERL_NIF_TERM &out) {
      |                                                   ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:219:51: error: template argument 2 is invalid
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp: In function ‘int erlang::nif::make(ErlNifEnv*, const int&, ERL_NIF_TERM&)’:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:220:26: error: request for member ‘size’ in ‘array’, which is of non-class type ‘const int’
  220 |     size_t count = array.size();
      |                          ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:221:5: error: ‘uint8_t’ was not declared in this scope
  221 |     uint8_t * data = (uint8_t *)array.data();
      |     ^~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:221:5: note: ‘uint8_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:221:15: error: ‘data’ was not declared in this scope
  221 |     uint8_t * data = (uint8_t *)array.data();
      |               ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:221:32: error: expected primary-expression before ‘)’ token
  221 |     uint8_t * data = (uint8_t *)array.data();
      |                                ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp: At global scope:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:225:44: error: ‘uint16_t’ was not declared in this scope
  225 | int make(ErlNifEnv *env, const std::vector<uint16_t>& array, ERL_NIF_TERM &out) {
      |                                            ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:225:44: note: ‘uint16_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:225:52: error: template argument 1 is invalid
  225 | int make(ErlNifEnv *env, const std::vector<uint16_t>& array, ERL_NIF_TERM &out) {
      |                                                    ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:225:52: error: template argument 2 is invalid
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:225:5: error: redefinition of ‘int erlang::nif::make(ErlNifEnv*, const int&, ERL_NIF_TERM&)’
  225 | int make(ErlNifEnv *env, const std::vector<uint16_t>& array, ERL_NIF_TERM &out) {
      |     ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:219:5: note: ‘int erlang::nif::make(ErlNifEnv*, const int&, ERL_NIF_TERM&)’ previously defined here
  219 | int make(ErlNifEnv *env, const std::vector<uint8_t>& array, ERL_NIF_TERM &out) {
      |     ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp: In function ‘int erlang::nif::make(ErlNifEnv*, const int&, ERL_NIF_TERM&)’:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:226:26: error: request for member ‘size’ in ‘array’, which is of non-class type ‘const int’
  226 |     size_t count = array.size();
      |                          ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:227:5: error: ‘uint16_t’ was not declared in this scope
  227 |     uint16_t * data = (uint16_t *)array.data();
      |     ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:227:5: note: ‘uint16_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:227:16: error: ‘data’ was not declared in this scope
  227 |     uint16_t * data = (uint16_t *)array.data();
      |                ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:227:34: error: expected primary-expression before ‘)’ token
  227 |     uint16_t * data = (uint16_t *)array.data();
      |                                  ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp: At global scope:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:231:44: error: ‘uint32_t’ was not declared in this scope
  231 | int make(ErlNifEnv *env, const std::vector<uint32_t>& array, ERL_NIF_TERM &out) {
      |                                            ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:231:44: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:231:52: error: template argument 1 is invalid
  231 | int make(ErlNifEnv *env, const std::vector<uint32_t>& array, ERL_NIF_TERM &out) {
      |                                                    ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:231:52: error: template argument 2 is invalid
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:231:5: error: redefinition of ‘int erlang::nif::make(ErlNifEnv*, const int&, ERL_NIF_TERM&)’
  231 | int make(ErlNifEnv *env, const std::vector<uint32_t>& array, ERL_NIF_TERM &out) {
      |     ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:219:5: note: ‘int erlang::nif::make(ErlNifEnv*, const int&, ERL_NIF_TERM&)’ previously defined here
  219 | int make(ErlNifEnv *env, const std::vector<uint8_t>& array, ERL_NIF_TERM &out) {
      |     ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp: In function ‘int erlang::nif::make(ErlNifEnv*, const int&, ERL_NIF_TERM&)’:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:232:26: error: request for member ‘size’ in ‘array’, which is of non-class type ‘const int’
  232 |     size_t count = array.size();
      |                          ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:233:5: error: ‘uint32_t’ was not declared in this scope
  233 |     uint32_t * data = (uint32_t *)array.data();
      |     ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:233:5: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:233:16: error: ‘data’ was not declared in this scope
  233 |     uint32_t * data = (uint32_t *)array.data();
      |                ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:233:34: error: expected primary-expression before ‘)’ token
  233 |     uint32_t * data = (uint32_t *)array.data();
      |                                  ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp: In function ‘int erlang::nif::make(ErlNifEnv*, const std::vector<long long unsigned int>&, ERL_NIF_TERM&)’:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:239:5: error: ‘uint64_t’ was not declared in this scope
  239 |     uint64_t * data = (uint64_t *)array.data();
      |     ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:239:5: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:239:16: error: ‘data’ was not declared in this scope
  239 |     uint64_t * data = (uint64_t *)array.data();
      |                ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:239:34: error: expected primary-expression before ‘)’ token
  239 |     uint64_t * data = (uint64_t *)array.data();
      |                                  ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp: In function ‘int erlang::nif::make(ErlNifEnv*, const std::vector<long unsigned int>&, ERL_NIF_TERM&)’:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:270:9: error: ‘uint64_t’ was not declared in this scope
  270 |         uint64_t * data = (uint64_t *)array.data();
      |         ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:270:9: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:270:20: error: ‘data’ was not declared in this scope
  270 |         uint64_t * data = (uint64_t *)array.data();
      |                    ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:270:38: error: expected primary-expression before ‘)’ token
  270 |         uint64_t * data = (uint64_t *)array.data();
      |                                      ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:273:9: error: ‘uint32_t’ was not declared in this scope
  273 |         uint32_t * data = (uint32_t *)array.data();
      |         ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:273:9: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:273:20: error: ‘data’ was not declared in this scope
  273 |         uint32_t * data = (uint32_t *)array.data();
      |                    ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:273:38: error: expected primary-expression before ‘)’ token
  273 |         uint32_t * data = (uint32_t *)array.data();
      |                                      ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp: At global scope:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:474:61: error: ‘uint64_t’ was not declared in this scope
  474 | int get_list(ErlNifEnv *env, ERL_NIF_TERM list, std::vector<uint64_t> &var) {
      |                                                             ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:474:61: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:474:69: error: template argument 1 is invalid
  474 | int get_list(ErlNifEnv *env, ERL_NIF_TERM list, std::vector<uint64_t> &var) {
      |                                                                     ^
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:474:69: error: template argument 2 is invalid
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp: In function ‘int erlang::nif::get_list(ErlNifEnv*, ERL_NIF_TERM, int&)’:
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:480:9: error: request for member ‘reserve’ in ‘var’, which is of non-class type ‘int’
  480 |     var.reserve(length);
      |         ^~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:484:9: error: ‘uint64_t’ was not declared in this scope
  484 |         uint64_t elem;
      |         ^~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:484:9: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:485:30: error: ‘elem’ was not declared in this scope
  485 |         if (!get(env, head, &elem)) {
      |                              ^~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:489:13: error: request for member ‘push_back’ in ‘var’, which is of non-class type ‘int’
  489 |         var.push_back(elem);
      |             ^~~~~~~~~
/home/jadams/tmp/hnswlib_playground/foo/deps/hnswlib/c_src/nif_utils.cpp:489:23: error: ‘elem’ was not declared in this scope
  489 |         var.push_back(elem);
      |                       ^~~~
make[3]: *** [CMakeFiles/hnswlib_nif.dir/build.make:76: CMakeFiles/hnswlib_nif.dir/c_src/nif_utils.cpp.o] Error 1
make[2]: *** [CMakeFiles/Makefile2:83: CMakeFiles/hnswlib_nif.dir/all] Error 2
make[1]: *** [Makefile:136: all] Error 2
make[1]: Leaving directory '/home/jadams/tmp/hnswlib_playground/foo/_build/dev/lib/hnswlib/cmake_hnswlib'
\033[0;31mincomplete build of hnswlib found in '/home/jadams/tmp/hnswlib_playground/foo/_build/dev/lib/hnswlib/cmake_hnswlib', please delete that directory and retry\033[0m
make: *** [Makefile:42: /home/jadams/tmp/hnswlib_playground/foo/_build/dev/lib/hnswlib/priv/hnswlib_nif.so] Error 1
could not compile dependency :hnswlib, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile hnswlib --force", update it with "mix deps.update hnswlib" or clean it with "mix deps.clean hnswlib"
==> foo
** (Mix) Could not compile with "make" (exit status: 2).
You need to have gcc and make installed. If you are using
Ubuntu or any other Debian-based system, install the packages
"build-essential". Also install "erlang-dev" package if not
included in your Erlang/OTP version. If you're on Fedora, run
"dnf group install 'Development Tools'".
polvalente commented 7 months ago

From the initial config messages it seems that the C/C++ compilers aren't set properly. Did you ensure gcc/g++ are properly installed and set as the default compilers?

cocoa-xu commented 7 months ago

Hi @knewter, I've push a commit that includes the stdint.h header to fix this issue. It should work now, please let me know if it doesn't!

cocoa-xu commented 7 months ago

v0.1.5 is shipped!