node-v8-clone icon indicating copy to clipboard operation
node-v8-clone copied to clipboard

Does not compile with Node 4.x

Open meredian opened this issue 9 years ago • 6 comments

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

> [email protected] 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=]

meredian avatar Sep 28 '15 08:09 meredian

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

zeeshanjan82 avatar Oct 04 '15 03:10 zeeshanjan82

The same issue with node 4.2

cevek avatar Oct 21 '15 11:10 cevek

+1

miguelramos avatar Oct 26 '15 10:10 miguelramos

the same issue i have with Node v4.2.1

woolfi182 avatar Nov 04 '15 17:11 woolfi182

Same with 5.0

ilya1st avatar Nov 12 '15 08:11 ilya1st

+1 , Node v6

hgouveia avatar May 08 '17 10:05 hgouveia