Skip to content
This repository has been archived by the owner on Nov 5, 2019. It is now read-only.

Does not compile with Node 4.x #14

Open
meredian opened this issue Sep 28, 2015 · 6 comments
Open

Does not compile with Node 4.x #14

meredian opened this issue Sep 28, 2015 · 6 comments

Comments

@meredian
Copy link

Not a surprise, must be related to a lot of internal api changes for newer V8. Unfortunately I have no experience with Node internals, so barely can do myself.

> npm install

> node-v8-clone@0.6.2 install /Users/meredian/Dropbox/GitHub/jsonsem/node_modules/node-v8-clone
> node-gyp rebuild

  CXX(target) Release/obj.target/clone/src/clone.o
In file included from ../src/clone.cc:5:
../node_modules/nan/nan.h:335:68: error: too many arguments to function call, expected at most 2,
      have 4
    return v8::Signature::New(v8::Isolate::GetCurrent(), receiver, argc, argv);
           ~~~~~~~~~~~~~~~~~~                                      ^~~~~~~~~~
/Users/meredian/.node-gyp/4.0.0/include/node/v8.h:4675:3: note: 'New' declared here
  static Local<Signature> New(
  ^
In file included from ../src/clone.cc:5:
../node_modules/nan/nan.h:417:3: error: redefinition of 'NanNew'
  NanNew<v8::StringObject, v8::Handle<v8::String> >(
  ^
../node_modules/nan/nan.h:410:3: note: previous definition is here
  NanNew<v8::StringObject, v8::Local<v8::String> >(
  ^
../node_modules/nan/nan.h:435:36: error: redefinition of 'NanNew'
  NAN_INLINE v8::Local<v8::RegExp> NanNew(
                                   ^
../node_modules/nan/nan.h:429:36: note: previous definition is here
  NAN_INLINE v8::Local<v8::RegExp> NanNew(
                                   ^
../node_modules/nan/nan.h:447:36: error: redefinition of 'NanNew'
  NAN_INLINE v8::Local<v8::RegExp> NanNew(
                                   ^
../node_modules/nan/nan.h:441:36: note: previous definition is here
  NAN_INLINE v8::Local<v8::RegExp> NanNew(
                                   ^
../node_modules/nan/nan.h:616:19: error: no type named 'ExternalAsciiStringResource' in 'v8::String';
      did you mean 'ExternalStringResource'?
      v8::String::ExternalAsciiStringResource *resource) {
      ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
                  ExternalStringResource
/Users/meredian/.node-gyp/4.0.0/include/node/v8.h:2210:19: note: 'ExternalStringResource' declared
      here
  class V8_EXPORT ExternalStringResource
                  ^
In file included from ../src/clone.cc:5:
../node_modules/nan/nan.h:615:36: error: redefinition of 'NanNew'
  NAN_INLINE v8::Local<v8::String> NanNew(
                                   ^
../node_modules/nan/nan.h:610:36: note: previous definition is here
  NAN_INLINE v8::Local<v8::String> NanNew(
                                   ^
../node_modules/nan/nan.h:630:27: error: redefinition of '_NanEscapeScopeHelper'
  NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Local<T> val) {
                          ^
../node_modules/nan/nan.h:625:27: note: previous definition is here
  NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Handle<T> val) {
                          ^
../node_modules/nan/nan.h:646:12: error: no matching function for call to '_NanEscapeScopeHelper'
    return NanEscapeScope(NanNew(v8::Undefined(v8::Isolate::GetCurrent())));
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:634:43: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEscapeScopeHelper(val))
                                          ^~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:630:27: note: candidate template ignored: substitution failure
      [with T = v8::Primitive]
  NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Local<T> val) {
                          ^
../node_modules/nan/nan.h:651:12: error: no matching function for call to '_NanEscapeScopeHelper'
    return NanEscapeScope(NanNew(v8::Null(v8::Isolate::GetCurrent())));
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:634:43: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEscapeScopeHelper(val))
                                          ^~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:630:27: note: candidate template ignored: substitution failure
      [with T = v8::Primitive]
  NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Local<T> val) {
                          ^
../node_modules/nan/nan.h:656:12: error: no matching function for call to '_NanEscapeScopeHelper'
    return NanEscapeScope(NanNew(v8::True(v8::Isolate::GetCurrent())));
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:634:43: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEscapeScopeHelper(val))
                                          ^~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:630:27: note: candidate template ignored: substitution failure
      [with T = v8::Boolean]
  NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Local<T> val) {
                          ^
../node_modules/nan/nan.h:661:12: error: no matching function for call to '_NanEscapeScopeHelper'
    return NanEscapeScope(NanNew(v8::False(v8::Isolate::GetCurrent())));
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:634:43: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEscapeScopeHelper(val))
                                          ^~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:630:27: note: candidate template ignored: substitution failure
      [with T = v8::Boolean]
  NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Local<T> val) {
                          ^
../node_modules/nan/nan.h:878:13: error: no member named 'smalloc' in namespace 'node'
    , node::smalloc::FreeCallback callback
      ~~~~~~^
../node_modules/nan/nan.h:889:12: error: no matching function for call to 'New'
    return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
           ^~~~~~~~~~~~~~~~~
/Users/meredian/.node-gyp/4.0.0/include/node/node_buffer.h:31:40: note: candidate function not
      viable: no known conversion from 'uint32_t' (aka 'unsigned int') to 'enum encoding' for 3rd
      argument
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                       ^
/Users/meredian/.node-gyp/4.0.0/include/node/node_buffer.h:43:40: note: candidate function not
      viable: 2nd argument ('const char *') would lose const qualifier
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                       ^
/Users/meredian/.node-gyp/4.0.0/include/node/node_buffer.h:28:40: note: candidate function not
      viable: requires 2 arguments, but 3 were provided
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, size_t length);
                                       ^
/Users/meredian/.node-gyp/4.0.0/include/node/node_buffer.h:36:40: note: candidate function not
      viable: requires 5 arguments, but 3 were provided
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                       ^
In file included from ../src/clone.cc:5:
../node_modules/nan/nan.h:893:12: error: no viable conversion from 'v8::MaybeLocal<v8::Object>' to
      'v8::Local<v8::Object>'
    return node::Buffer::New(v8::Isolate::GetCurrent(), size);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/meredian/.node-gyp/4.0.0/include/node/v8.h:210:7: note: candidate constructor
      (the implicit copy constructor) not viable: no known conversion from
      'v8::MaybeLocal<v8::Object>' to 'const v8::Local<v8::Object> &' for 1st argument
class Local {
      ^
/Users/meredian/.node-gyp/4.0.0/include/node/v8.h:210:7: note: candidate constructor
      (the implicit move constructor) not viable: no known conversion from
      'v8::MaybeLocal<v8::Object>' to 'v8::Local<v8::Object> &&' for 1st argument
class Local {
      ^
/Users/meredian/.node-gyp/4.0.0/include/node/v8.h:214:13: note: candidate template ignored: could not
      match 'Local' against 'MaybeLocal'
  V8_INLINE Local(Local<S> that)
            ^
/Users/meredian/.node-gyp/4.0.0/include/node/v8.h:326:13: note: candidate template ignored: could not
      match 'S *' against 'v8::MaybeLocal<v8::Object>'
  V8_INLINE Local(S* that)
            ^
In file included from ../src/clone.cc:5:
../node_modules/nan/nan.h:900:26: error: no member named 'Use' in namespace 'node::Buffer'
    return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size);
           ~~~~~~~~~~~~~~^
../node_modules/nan/nan.h:1680:12: error: no matching function for call to '_NanEscapeScopeHelper'
    return NanEscapeScope(NanNew(handle)->Get(kCallbackIndex)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:634:43: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEscapeScopeHelper(val))
                                          ^~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:630:27: note: candidate template ignored: substitution failure
      [with T = v8::Function]
  NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Local<T> val) {
                          ^
../node_modules/nan/nan.h:1767:12: error: no matching function for call to '_NanEscapeScopeHelper'
    return NanEscapeScope(handle->Get(NanNew(key)).As<v8::Object>());
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:634:43: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(_NanEscapeScopeHelper(val))
                                          ^~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:630:27: note: candidate template ignored: substitution failure
      [with T = v8::Object]
  NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Local<T> val) {
                          ^
../node_modules/nan/nan.h:1973:12: error: no member named 'IsExternalAscii' in 'v8::String'; did you
      mean 'IsExternal'?
  if (str->IsExternalAscii()) {
           ^~~~~~~~~~~~~~~
           IsExternal
/Users/meredian/.node-gyp/4.0.0/include/node/v8.h:2174:8: note: 'IsExternal' declared here
  bool IsExternal() const;
       ^
In file included from ../src/clone.cc:5:
../node_modules/nan/nan.h:1974:23: error: no type named 'ExternalAsciiStringResource' in
      'v8::String'; did you mean 'ExternalStringResource'?
    const v8::String::ExternalAsciiStringResource* ext;
          ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
                      ExternalStringResource
/Users/meredian/.node-gyp/4.0.0/include/node/v8.h:2210:19: note: 'ExternalStringResource' declared
      here
  class V8_EXPORT ExternalStringResource
                  ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
@zeeshanjan82
Copy link

I am too facing the same issue when using this package with Node v4.1

@cevek
Copy link

cevek commented Oct 21, 2015

The same issue with node 4.2

@miguelramos
Copy link

+1

@woolfi182
Copy link

the same issue i have with Node v4.2.1

@ilya1st
Copy link

ilya1st commented Nov 12, 2015

Same with 5.0

@hgouveia
Copy link

hgouveia commented May 8, 2017

+1 , Node v6

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

No branches or pull requests

7 participants