Skip to content

Support for Node 14 #12

Closed
Closed
@maximepichou

Description

@maximepichou

Hello,

I'm trying to install annoy-node with Node 14.16.1 and NPM 7.11.0 but the compilation failed.

npm i annoy
npm ERR! code 1
npm ERR! path /home/maxime/workspace/intents/node_modules/annoy
npm ERR! command failed
npm ERR! command sh -c node-gyp rebuild
npm ERR! make: Entering directory '/home/maxime/workspace/intents/node_modules/annoy/build'
npm ERR!   CXX(target) Release/obj.target/addon/addon.o
npm ERR!   CXX(target) Release/obj.target/addon/annoyindexwrapper.o
npm ERR! make: Leaving directory '/home/maxime/workspace/intents/node_modules/annoy/build'
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | linux | x64
npm ERR! gyp info find Python using Python version 3.6.8 found at "/home/maxime/.pyenv/versions/3.6.8/bin/python3"
npm ERR! gyp info spawn /home/maxime/.pyenv/versions/3.6.8/bin/python3
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args   '/home/maxime/.nvm/versions/node/v14.16.1/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
npm ERR! gyp info spawn args   'binding.gyp',
npm ERR! gyp info spawn args   '-f',
npm ERR! gyp info spawn args   'make',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/home/maxime/workspace/intents/node_modules/annoy/build/config.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/home/maxime/.nvm/versions/node/v14.16.1/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
npm ERR! gyp info spawn args   '-I',
npm ERR! gyp info spawn args   '/home/maxime/.cache/node-gyp/14.16.1/include/node/common.gypi',
npm ERR! gyp info spawn args   '-Dlibrary=shared_library',
npm ERR! gyp info spawn args   '-Dvisibility=default',
npm ERR! gyp info spawn args   '-Dnode_root_dir=/home/maxime/.cache/node-gyp/14.16.1',
npm ERR! gyp info spawn args   '-Dnode_gyp_dir=/home/maxime/.nvm/versions/node/v14.16.1/lib/node_modules/npm/node_modules/node-gyp',
npm ERR! gyp info spawn args   '-Dnode_lib_file=/home/maxime/.cache/node-gyp/14.16.1/<(target_arch)/node.lib',
npm ERR! gyp info spawn args   '-Dmodule_root_dir=/home/maxime/workspace/intents/node_modules/annoy',
npm ERR! gyp info spawn args   '-Dnode_engine=v8',
npm ERR! gyp info spawn args   '--depth=.',
npm ERR! gyp info spawn args   '--no-parallel',
npm ERR! gyp info spawn args   '--generator-output',
npm ERR! gyp info spawn args   'build',
npm ERR! gyp info spawn args   '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! gyp info spawn make
npm ERR! gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
npm ERR! ../annoyindexwrapper.cc: In static member function ‘static void AnnoyIndexWrapper::Init(v8::Local<v8::Object>)’:
npm ERR! ../annoyindexwrapper.cc:52:90: error: no matching function for call to ‘v8::Object::Set(v8::Local<v8::String>, v8::Local<v8::Function>)’
npm ERR!    exports->Set(Nan::New("Annoy").ToLocalChecked(), Nan::GetFunction(tpl).ToLocalChecked());
npm ERR!                                                                                           ^
npm ERR! In file included from /home/maxime/.cache/node-gyp/14.16.1/include/node/node.h:67:0,
npm ERR!                  from ../../nan/nan.h:56,
npm ERR!                  from ../annoyindexwrapper.h:4,
npm ERR!                  from ../annoyindexwrapper.cc:1:
npm ERR! /home/maxime/.cache/node-gyp/14.16.1/include/node/v8.h:3670:37: note: candidate: v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)
npm ERR!    V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
npm ERR!                                      ^~~
npm ERR! /home/maxime/.cache/node-gyp/14.16.1/include/node/v8.h:3670:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! /home/maxime/.cache/node-gyp/14.16.1/include/node/v8.h:3673:37: note: candidate: v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)
npm ERR!    V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
npm ERR!                                      ^~~
npm ERR! /home/maxime/.cache/node-gyp/14.16.1/include/node/v8.h:3673:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! ../annoyindexwrapper.cc: In static member function ‘static void AnnoyIndexWrapper::getSupplementaryGetNNsParams(const Nan::FunctionCallbackInfo<v8::Value>&, int&, int&, bool&)’:
npm ERR! ../annoyindexwrapper.cc:246:84: error: no matching function for call to ‘v8::Value::BooleanValue(v8::Local<v8::Context>&)’
npm ERR!    includeDistances = info[3]->IsUndefined() ? false : info[3]->BooleanValue(context).FromJust();
npm ERR!                                                                                     ^
npm ERR! In file included from /home/maxime/.cache/node-gyp/14.16.1/include/node/node.h:67:0,
npm ERR!                  from ../../nan/nan.h:56,
npm ERR!                  from ../annoyindexwrapper.h:4,
npm ERR!                  from ../annoyindexwrapper.cc:1:
npm ERR! /home/maxime/.cache/node-gyp/14.16.1/include/node/v8.h:2858:8: note: candidate: bool v8::Value::BooleanValue(v8::Isolate*) const
npm ERR!    bool BooleanValue(Isolate* isolate) const;
npm ERR!         ^~~~~~~~~~~~
npm ERR! /home/maxime/.cache/node-gyp/14.16.1/include/node/v8.h:2858:8: note:   no known conversion for argument 1 from ‘v8::Local<v8::Context>’ to ‘v8::Isolate*’
npm ERR! ../annoyindexwrapper.cc: In static member function ‘static void AnnoyIndexWrapper::setNNReturnValues(int, bool, const std::vector<int>&, const std::vector<float>&, const Nan::FunctionCallbackInfo<v8::Value>&)’:
npm ERR! ../annoyindexwrapper.cc:273:76: error: no matching function for call to ‘v8::Object::Set(v8::Local<v8::String>, v8::Local<v8::Array>&)’
npm ERR!      jsResultObject->Set(Nan::New("neighbors").ToLocalChecked(), jsNNIndexes);
npm ERR!                                                                             ^
npm ERR! In file included from /home/maxime/.cache/node-gyp/14.16.1/include/node/node.h:67:0,
npm ERR!                  from ../../nan/nan.h:56,
npm ERR!                  from ../annoyindexwrapper.h:4,
npm ERR!                  from ../annoyindexwrapper.cc:1:
npm ERR! /home/maxime/.cache/node-gyp/14.16.1/include/node/v8.h:3670:37: note: candidate: v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)
npm ERR!    V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
npm ERR!                                      ^~~
npm ERR! /home/maxime/.cache/node-gyp/14.16.1/include/node/v8.h:3670:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! /home/maxime/.cache/node-gyp/14.16.1/include/node/v8.h:3673:37: note: candidate: v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)
npm ERR!    V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
npm ERR!                                      ^~~
npm ERR! /home/maxime/.cache/node-gyp/14.16.1/include/node/v8.h:3673:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! ../annoyindexwrapper.cc:274:81: error: no matching function for call to ‘v8::Object::Set(v8::Local<v8::String>, v8::Local<v8::Array>&)’
npm ERR!      jsResultObject->Set(Nan::New("distances").ToLocalChecked(), jsDistancesArray);
npm ERR!                                                                                  ^
npm ERR! In file included from /home/maxime/.cache/node-gyp/14.16.1/include/node/node.h:67:0,
npm ERR!                  from ../../nan/nan.h:56,
npm ERR!                  from ../annoyindexwrapper.h:4,
npm ERR!                  from ../annoyindexwrapper.cc:1:
npm ERR! /home/maxime/.cache/node-gyp/14.16.1/include/node/v8.h:3670:37: note: candidate: v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)
npm ERR!    V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
npm ERR!                                      ^~~
npm ERR! /home/maxime/.cache/node-gyp/14.16.1/include/node/v8.h:3670:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! /home/maxime/.cache/node-gyp/14.16.1/include/node/v8.h:3673:37: note: candidate: v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)
npm ERR!    V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
npm ERR!                                      ^~~
npm ERR! /home/maxime/.cache/node-gyp/14.16.1/include/node/v8.h:3673:37: note:   candidate expects 3 arguments, 2 provided
npm ERR! ../annoyindexwrapper.cc: In static member function ‘static bool AnnoyIndexWrapper::getFloatArrayParam(const Nan::FunctionCallbackInfo<v8::Value>&, int, float*)’:
npm ERR! ../annoyindexwrapper.cc:302:27: error: no matching function for call to ‘v8::Array::Get(unsigned int&)’
npm ERR!        val = jsArray->Get(i);
npm ERR!                            ^
npm ERR! In file included from /home/maxime/.cache/node-gyp/14.16.1/include/node/node.h:67:0,
npm ERR!                  from ../../nan/nan.h:56,
npm ERR!                  from ../annoyindexwrapper.h:4,
npm ERR!                  from ../annoyindexwrapper.cc:1:
npm ERR! /home/maxime/.cache/node-gyp/14.16.1/include/node/v8.h:3717:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)
npm ERR!    V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!                                            ^~~
npm ERR! /home/maxime/.cache/node-gyp/14.16.1/include/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! /home/maxime/.cache/node-gyp/14.16.1/include/node/v8.h:3720:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)
npm ERR!    V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
npm ERR!                                            ^~~
npm ERR! /home/maxime/.cache/node-gyp/14.16.1/include/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
npm ERR! make: *** [addon.target.mk:112: Release/obj.target/addon/annoyindexwrapper.o] Error 1
npm ERR! gyp ERR! build error 
npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2
npm ERR! gyp ERR! stack     at ChildProcess.onExit (/home/maxime/.nvm/versions/node/v14.16.1/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
npm ERR! gyp ERR! stack     at ChildProcess.emit (events.js:315:20)
npm ERR! gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:277:12)
npm ERR! gyp ERR! System Linux 5.8.0-50-generic
npm ERR! gyp ERR! command "/home/maxime/.nvm/versions/node/v14.16.1/bin/node" "/home/maxime/.nvm/versions/node/v14.16.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
npm ERR! gyp ERR! cwd /home/maxime/workspace/intents/node_modules/annoy
npm ERR! gyp ERR! node -v v14.16.1
npm ERR! gyp ERR! node-gyp -v v7.1.2
npm ERR! gyp ERR! not ok

I'm on Ubuntu 20.04 with g++ (Ubuntu 7.5.0-6ubuntu2) 7.5.0 and gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0

Can you please help me by supporting Node 14 ?

Thank you for your time,

Maxime

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions