{"action":"created","issue":{"url":"https://api.github.com/repos/socketio/socket.io/issues/2213","labels_url":"https://api.github.com/repos/socketio/socket.io/issues/2213/labels{/name}","comments_url":"https://api.github.com/repos/socketio/socket.io/issues/2213/comments","events_url":"https://api.github.com/repos/socketio/socket.io/issues/2213/events","html_url":"https://github.com/socketio/socket.io/issues/2213","id":101722939,"number":2213,"title":"Error on installing socket.io - iojs 3.0.0","user":{"login":"tabone","id":5364897,"avatar_url":"https://avatars.githubusercontent.com/u/5364897?v=3","gravatar_id":"","url":"https://api.github.com/users/tabone","html_url":"https://github.com/tabone","followers_url":"https://api.github.com/users/tabone/followers","following_url":"https://api.github.com/users/tabone/following{/other_user}","gists_url":"https://api.github.com/users/tabone/gists{/gist_id}","starred_url":"https://api.github.com/users/tabone/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tabone/subscriptions","organizations_url":"https://api.github.com/users/tabone/orgs","repos_url":"https://api.github.com/users/tabone/repos","events_url":"https://api.github.com/users/tabone/events{/privacy}","received_events_url":"https://api.github.com/users/tabone/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-08-18T18:41:09Z","updated_at":"2015-08-19T08:49:36Z","closed_at":null,"body":"When I try to install `socket.io` using node v0.12.7 (npm v2.11.3) all works fine\r\n```\r\nLucas-MacBook-Pro:t tabone$ npm install socket.io\r\nnpm WARN package.json t@1.0.0 No description\r\nnpm WARN package.json t@1.0.0 No repository field.\r\nnpm WARN package.json t@1.0.0 No README data\r\n \r\n> bufferutil@1.1.0 install /Users/tabone/dev/t/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/bufferutil\r\n> node-gyp rebuild\r\n\r\n  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o\r\n  SOLINK_MODULE(target) Release/bufferutil.node\r\n\r\n> utf-8-validate@1.1.0 install /Users/tabone/dev/t/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/utf-8-validate\r\n> node-gyp rebuild\r\n\r\n  CXX(target) Release/obj.target/validation/src/validation.o\r\n  SOLINK_MODULE(target) Release/validation.node\r\n\r\n> bufferutil@1.1.0 install /Users/tabone/dev/t/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/bufferutil\r\n> node-gyp rebuild\r\n\r\n  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o\r\n  SOLINK_MODULE(target) Release/bufferutil.node\r\n\r\n> utf-8-validate@1.1.0 install /Users/tabone/dev/t/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/utf-8-validate\r\n> node-gyp rebuild\r\n\r\n  CXX(target) Release/obj.target/validation/src/validation.o\r\n  SOLINK_MODULE(target) Release/validation.node\r\nsocket.io@1.3.6 node_modules/socket.io\r\n├── debug@2.1.0 (ms@0.6.2)\r\n├── has-binary-data@0.1.3 (isarray@0.0.1)\r\n├── socket.io-parser@2.2.4 (isarray@0.0.1, debug@0.7.4, component-emitter@1.1.2, benchmark@1.0.0, json3@3.2.6)\r\n├── socket.io-adapter@0.3.1 (object-keys@1.0.1, debug@1.0.2, socket.io-parser@2.2.2)\r\n├── engine.io@1.5.2 (base64id@0.1.0, debug@1.0.3, engine.io-parser@1.2.1, ws@0.7.2)\r\n└── socket.io-client@1.3.6 (to-array@0.1.3, indexof@0.0.1, component-bind@1.0.0, debug@0.7.4, backo2@1.0.2, object-component@0.0.3, component-emitter@1.1.2, has-binary@0.1.6, parseuri@0.0.2, engine.io-client@1.5.2)\r\n```\r\n\r\nhowever when I use io.js v3.0.0 (npm v2.13.3), the following is displayed:\r\n\r\n```\r\nLucas-MacBook-Pro:t tabone$ npm install socket.io\r\nnpm WARN package.json t@1.0.0 No description\r\nnpm WARN package.json t@1.0.0 No repository field.\r\nnpm WARN package.json t@1.0.0 No README data\r\n \r\n> utf-8-validate@1.1.0 install /Users/tabone/dev/t/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/utf-8-validate\r\n> node-gyp rebuild\r\n\r\n  CXX(target) Release/obj.target/validation/src/validation.o\r\nIn file included from ../src/validation.cc:15:\r\n../node_modules/nan/nan.h:261:25: error: redefinition of '_NanEnsureLocal'\r\nNAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Local<T> val) {\r\n                        ^\r\n../node_modules/nan/nan.h:256:25: note: previous definition is here\r\nNAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Handle<T> val) {\r\n                        ^\r\n../node_modules/nan/nan.h:661:13: error: no member named 'smalloc' in namespace 'node'\r\n    , node::smalloc::FreeCallback callback\r\n      ~~~~~~^\r\n../node_modules/nan/nan.h:672:12: error: no matching function for call to 'New'\r\n    return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);\r\n           ^~~~~~~~~~~~~~~~~\r\n/Users/tabone/.node-gyp/3.0.0/include/node/node_buffer.h:35:40: note: candidate function not viable: no known conversion from 'uint32_t' (aka 'unsigned int') to 'enum encoding' for\r\n      3rd argument\r\nNODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,\r\n                                       ^\r\n/Users/tabone/.node-gyp/3.0.0/include/node/node_buffer.h:47:40: note: candidate function not viable: 2nd argument ('const char *') would lose const qualifier\r\nNODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,\r\n                                       ^\r\n/Users/tabone/.node-gyp/3.0.0/include/node/node_buffer.h:32:40: note: candidate function not viable: requires 2 arguments, but 3 were provided\r\nNODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, size_t length);\r\n                                       ^\r\n/Users/tabone/.node-gyp/3.0.0/include/node/node_buffer.h:40:40: note: candidate function not viable: requires 5 arguments, but 3 were provided\r\nNODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,\r\n                                       ^\r\nIn file included from ../src/validation.cc:15:\r\n../node_modules/nan/nan.h:676:12: error: no viable conversion from 'v8::MaybeLocal<v8::Object>' to 'v8::Local<v8::Object>'\r\n    return node::Buffer::New(v8::Isolate::GetCurrent(), size);\r\n           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/Users/tabone/.node-gyp/3.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>'\r\n      to 'const v8::Local<v8::Object> &' for 1st argument\r\nclass Local {\r\n      ^\r\n/Users/tabone/.node-gyp/3.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>'\r\n      to 'v8::Local<v8::Object> &&' for 1st argument\r\nclass Local {\r\n      ^\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:214:13: note: candidate template ignored: could not match 'Local' against 'MaybeLocal'\r\n  V8_INLINE Local(Local<S> that)\r\n            ^\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:327:13: note: candidate template ignored: could not match 'S *' against 'v8::MaybeLocal<v8::Object>'\r\n  V8_INLINE Local(S* that)\r\n            ^\r\nIn file included from ../src/validation.cc:15:\r\n../node_modules/nan/nan.h:683:26: error: no member named 'Use' in namespace 'node::Buffer'\r\n    return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size);\r\n           ~~~~~~~~~~~~~~^\r\nIn file included from ../src/validation.cc:7:\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:221:5: error: assigning to 'v8::Primitive *volatile' from incompatible type 'v8::Value *'\r\n    TYPE_CHECK(T, S);\r\n    ^~~~~~~~~~~~~~~~\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:180:37: note: expanded from macro 'TYPE_CHECK'\r\n    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \\\r\n                                    ^ ~~~~~~~~~~~~~~~~~~\r\n../node_modules/nan/nan.h:414:12: note: in instantiation of function template specialization 'v8::Local<v8::Primitive>::Local<v8::Value>' requested here\r\n    return NanEscapeScope(NanNew(v8::Undefined(v8::Isolate::GetCurrent())));\r\n           ^\r\n../node_modules/nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'\r\n# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))\r\n                             ^\r\nIn file included from ../src/validation.cc:7:\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:221:5: error: assigning to 'v8::Boolean *volatile' from incompatible type 'v8::Value *'\r\n    TYPE_CHECK(T, S);\r\n    ^~~~~~~~~~~~~~~~\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:180:37: note: expanded from macro 'TYPE_CHECK'\r\n    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \\\r\n                                    ^ ~~~~~~~~~~~~~~~~~~\r\n../node_modules/nan/nan.h:424:12: note: in instantiation of function template specialization 'v8::Local<v8::Boolean>::Local<v8::Value>' requested here\r\n    return NanEscapeScope(NanNew(v8::True(v8::Isolate::GetCurrent())));\r\n           ^\r\n../node_modules/nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'\r\n# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))\r\n                             ^\r\nIn file included from ../src/validation.cc:7:\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:221:5: error: assigning to 'v8::Function *volatile' from incompatible type 'v8::Value *'\r\n    TYPE_CHECK(T, S);\r\n    ^~~~~~~~~~~~~~~~\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:180:37: note: expanded from macro 'TYPE_CHECK'\r\n    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \\\r\n                                    ^ ~~~~~~~~~~~~~~~~~~\r\n../node_modules/nan/nan.h:1514:12: note: in instantiation of function template specialization 'v8::Local<v8::Function>::Local<v8::Value>' requested here\r\n    return NanEscapeScope(NanNew(handle)->Get(kCallbackIndex)\r\n           ^\r\n../node_modules/nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'\r\n# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))\r\n                             ^\r\nIn file included from ../src/validation.cc:7:\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:221:5: error: assigning to 'v8::Object *volatile' from incompatible type 'v8::Value *'\r\n    TYPE_CHECK(T, S);\r\n    ^~~~~~~~~~~~~~~~\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:180:37: note: expanded from macro 'TYPE_CHECK'\r\n    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \\\r\n                                    ^ ~~~~~~~~~~~~~~~~~~\r\n../node_modules/nan/nan.h:1632:12: note: in instantiation of function template specialization 'v8::Local<v8::Object>::Local<v8::Value>' requested here\r\n    return NanEscapeScope(handle->Get(NanNew(key)).As<v8::Object>());\r\n           ^\r\n../node_modules/nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'\r\n# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))\r\n                             ^\r\n9 errors generated.\r\nmake: *** [Release/obj.target/validation/src/validation.o] Error 1\r\ngyp ERR! build error \r\ngyp ERR! stack Error: `make` failed with exit code: 2\r\ngyp ERR! stack     at ChildProcess.onExit (/Users/tabone/.nvm/versions/io.js/v3.0.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:269:23)\r\ngyp ERR! stack     at emitTwo (events.js:87:13)\r\ngyp ERR! stack     at ChildProcess.emit (events.js:172:7)\r\ngyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)\r\ngyp ERR! System Darwin 14.4.0\r\ngyp ERR! command \"/Users/tabone/.nvm/versions/io.js/v3.0.0/bin/iojs\" \"/Users/tabone/.nvm/versions/io.js/v3.0.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js\" \"rebuild\"\r\ngyp ERR! cwd /Users/tabone/dev/t/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/utf-8-validate\r\ngyp ERR! node -v v3.0.0\r\ngyp ERR! node-gyp -v v2.0.2\r\ngyp ERR! not ok \r\n\r\n> bufferutil@1.1.0 install /Users/tabone/dev/t/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/bufferutil\r\n> node-gyp rebuild\r\n\r\n  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o\r\nIn file included from ../src/bufferutil.cc:16:\r\n../node_modules/nan/nan.h:261:25: error: redefinition of '_NanEnsureLocal'\r\nNAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Local<T> val) {\r\n                        ^\r\n../node_modules/nan/nan.h:256:25: note: previous definition is here\r\nNAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Handle<T> val) {\r\n                        ^\r\n../node_modules/nan/nan.h:661:13: error: no member named 'smalloc' in namespace 'node'\r\n    , node::smalloc::FreeCallback callback\r\n      ~~~~~~^\r\n../node_modules/nan/nan.h:672:12: error: no matching function for call to 'New'\r\n    return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);\r\n           ^~~~~~~~~~~~~~~~~\r\n/Users/tabone/.node-gyp/3.0.0/include/node/node_buffer.h:35:40: note: candidate function not viable: no known conversion from 'uint32_t' (aka 'unsigned int') to 'enum encoding' for\r\n      3rd argument\r\nNODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,\r\n                                       ^\r\n/Users/tabone/.node-gyp/3.0.0/include/node/node_buffer.h:47:40: note: candidate function not viable: 2nd argument ('const char *') would lose const qualifier\r\nNODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,\r\n                                       ^\r\n/Users/tabone/.node-gyp/3.0.0/include/node/node_buffer.h:32:40: note: candidate function not viable: requires 2 arguments, but 3 were provided\r\nNODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, size_t length);\r\n                                       ^\r\n/Users/tabone/.node-gyp/3.0.0/include/node/node_buffer.h:40:40: note: candidate function not viable: requires 5 arguments, but 3 were provided\r\nNODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,\r\n                                       ^\r\nIn file included from ../src/bufferutil.cc:16:\r\n../node_modules/nan/nan.h:676:12: error: no viable conversion from 'v8::MaybeLocal<v8::Object>' to 'v8::Local<v8::Object>'\r\n    return node::Buffer::New(v8::Isolate::GetCurrent(), size);\r\n           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/Users/tabone/.node-gyp/3.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>'\r\n      to 'const v8::Local<v8::Object> &' for 1st argument\r\nclass Local {\r\n      ^\r\n/Users/tabone/.node-gyp/3.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>'\r\n      to 'v8::Local<v8::Object> &&' for 1st argument\r\nclass Local {\r\n      ^\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:214:13: note: candidate template ignored: could not match 'Local' against 'MaybeLocal'\r\n  V8_INLINE Local(Local<S> that)\r\n            ^\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:327:13: note: candidate template ignored: could not match 'S *' against 'v8::MaybeLocal<v8::Object>'\r\n  V8_INLINE Local(S* that)\r\n            ^\r\nIn file included from ../src/bufferutil.cc:16:\r\n../node_modules/nan/nan.h:683:26: error: no member named 'Use' in namespace 'node::Buffer'\r\n    return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size);\r\n           ~~~~~~~~~~~~~~^\r\nIn file included from ../src/bufferutil.cc:7:\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:221:5: error: assigning to 'v8::Primitive *volatile' from incompatible type 'v8::Value *'\r\n    TYPE_CHECK(T, S);\r\n    ^~~~~~~~~~~~~~~~\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:180:37: note: expanded from macro 'TYPE_CHECK'\r\n    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \\\r\n                                    ^ ~~~~~~~~~~~~~~~~~~\r\n../node_modules/nan/nan.h:414:12: note: in instantiation of function template specialization 'v8::Local<v8::Primitive>::Local<v8::Value>' requested here\r\n    return NanEscapeScope(NanNew(v8::Undefined(v8::Isolate::GetCurrent())));\r\n           ^\r\n../node_modules/nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'\r\n# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))\r\n                             ^\r\nIn file included from ../src/bufferutil.cc:7:\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:221:5: error: assigning to 'v8::Boolean *volatile' from incompatible type 'v8::Value *'\r\n    TYPE_CHECK(T, S);\r\n    ^~~~~~~~~~~~~~~~\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:180:37: note: expanded from macro 'TYPE_CHECK'\r\n    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \\\r\n                                    ^ ~~~~~~~~~~~~~~~~~~\r\n../node_modules/nan/nan.h:424:12: note: in instantiation of function template specialization 'v8::Local<v8::Boolean>::Local<v8::Value>' requested here\r\n    return NanEscapeScope(NanNew(v8::True(v8::Isolate::GetCurrent())));\r\n           ^\r\n../node_modules/nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'\r\n# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))\r\n                             ^\r\nIn file included from ../src/bufferutil.cc:7:\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:221:5: error: assigning to 'v8::Function *volatile' from incompatible type 'v8::Value *'\r\n    TYPE_CHECK(T, S);\r\n    ^~~~~~~~~~~~~~~~\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:180:37: note: expanded from macro 'TYPE_CHECK'\r\n    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \\\r\n                                    ^ ~~~~~~~~~~~~~~~~~~\r\n../node_modules/nan/nan.h:1514:12: note: in instantiation of function template specialization 'v8::Local<v8::Function>::Local<v8::Value>' requested here\r\n    return NanEscapeScope(NanNew(handle)->Get(kCallbackIndex)\r\n           ^\r\n../node_modules/nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'\r\n# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))\r\n                             ^\r\nIn file included from ../src/bufferutil.cc:7:\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:221:5: error: assigning to 'v8::Object *volatile' from incompatible type 'v8::Value *'\r\n    TYPE_CHECK(T, S);\r\n    ^~~~~~~~~~~~~~~~\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:180:37: note: expanded from macro 'TYPE_CHECK'\r\n    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \\\r\n                                    ^ ~~~~~~~~~~~~~~~~~~\r\n../node_modules/nan/nan.h:1632:12: note: in instantiation of function template specialization 'v8::Local<v8::Object>::Local<v8::Value>' requested here\r\n    return NanEscapeScope(handle->Get(NanNew(key)).As<v8::Object>());\r\n           ^\r\n../node_modules/nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'\r\n# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))\r\n                             ^\r\n9 errors generated.\r\nmake: *** [Release/obj.target/bufferutil/src/bufferutil.o] Error 1\r\ngyp ERR! build error \r\ngyp ERR! stack Error: `make` failed with exit code: 2\r\ngyp ERR! stack     at ChildProcess.onExit (/Users/tabone/.nvm/versions/io.js/v3.0.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:269:23)\r\ngyp ERR! stack     at emitTwo (events.js:87:13)\r\ngyp ERR! stack     at ChildProcess.emit (events.js:172:7)\r\ngyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)\r\ngyp ERR! System Darwin 14.4.0\r\ngyp ERR! command \"/Users/tabone/.nvm/versions/io.js/v3.0.0/bin/iojs\" \"/Users/tabone/.nvm/versions/io.js/v3.0.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js\" \"rebuild\"\r\ngyp ERR! cwd /Users/tabone/dev/t/node_modules/socket.io/node_modules/engine.io/node_modules/ws/node_modules/bufferutil\r\ngyp ERR! node -v v3.0.0\r\ngyp ERR! node-gyp -v v2.0.2\r\ngyp ERR! not ok \r\nnpm WARN optional dep failed, continuing utf-8-validate@1.1.0\r\n\r\n> bufferutil@1.1.0 install /Users/tabone/dev/t/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/bufferutil\r\n> node-gyp rebuild\r\n\r\n  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o\r\nIn file included from ../src/bufferutil.cc:16:\r\n../node_modules/nan/nan.h:261:25: error: redefinition of '_NanEnsureLocal'\r\nNAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Local<T> val) {\r\n                        ^\r\n../node_modules/nan/nan.h:256:25: note: previous definition is here\r\nNAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Handle<T> val) {\r\n                        ^\r\n../node_modules/nan/nan.h:661:13: error: no member named 'smalloc' in namespace 'node'\r\n    , node::smalloc::FreeCallback callback\r\n      ~~~~~~^\r\n../node_modules/nan/nan.h:672:12: error: no matching function for call to 'New'\r\n    return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);\r\n           ^~~~~~~~~~~~~~~~~\r\n/Users/tabone/.node-gyp/3.0.0/include/node/node_buffer.h:35:40: note: candidate function not viable: no known conversion from 'uint32_t' (aka 'unsigned int') to 'enum encoding' for\r\n      3rd argument\r\nNODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,\r\n                                       ^\r\n/Users/tabone/.node-gyp/3.0.0/include/node/node_buffer.h:47:40: note: candidate function not viable: 2nd argument ('const char *') would lose const qualifier\r\nNODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,\r\n                                       ^\r\n/Users/tabone/.node-gyp/3.0.0/include/node/node_buffer.h:32:40: note: candidate function not viable: requires 2 arguments, but 3 were provided\r\nNODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, size_t length);\r\n                                       ^\r\n/Users/tabone/.node-gyp/3.0.0/include/node/node_buffer.h:40:40: note: candidate function not viable: requires 5 arguments, but 3 were provided\r\nNODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,\r\n                                       ^\r\nIn file included from ../src/bufferutil.cc:16:\r\n../node_modules/nan/nan.h:676:12: error: no viable conversion from 'v8::MaybeLocal<v8::Object>' to 'v8::Local<v8::Object>'\r\n    return node::Buffer::New(v8::Isolate::GetCurrent(), size);\r\n           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/Users/tabone/.node-gyp/3.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>'\r\n      to 'const v8::Local<v8::Object> &' for 1st argument\r\nclass Local {\r\n      ^\r\n/Users/tabone/.node-gyp/3.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>'\r\n      to 'v8::Local<v8::Object> &&' for 1st argument\r\nclass Local {\r\n      ^\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:214:13: note: candidate template ignored: could not match 'Local' against 'MaybeLocal'\r\n  V8_INLINE Local(Local<S> that)\r\n            ^\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:327:13: note: candidate template ignored: could not match 'S *' against 'v8::MaybeLocal<v8::Object>'\r\n  V8_INLINE Local(S* that)\r\n            ^\r\nIn file included from ../src/bufferutil.cc:16:\r\n../node_modules/nan/nan.h:683:26: error: no member named 'Use' in namespace 'node::Buffer'\r\n    return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size);\r\n           ~~~~~~~~~~~~~~^\r\nIn file included from ../src/bufferutil.cc:7:\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:221:5: error: assigning to 'v8::Primitive *volatile' from incompatible type 'v8::Value *'\r\n    TYPE_CHECK(T, S);\r\n    ^~~~~~~~~~~~~~~~\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:180:37: note: expanded from macro 'TYPE_CHECK'\r\n    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \\\r\n                                    ^ ~~~~~~~~~~~~~~~~~~\r\n../node_modules/nan/nan.h:414:12: note: in instantiation of function template specialization 'v8::Local<v8::Primitive>::Local<v8::Value>' requested here\r\n    return NanEscapeScope(NanNew(v8::Undefined(v8::Isolate::GetCurrent())));\r\n           ^\r\n../node_modules/nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'\r\n# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))\r\n                             ^\r\nIn file included from ../src/bufferutil.cc:7:\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:221:5: error: assigning to 'v8::Boolean *volatile' from incompatible type 'v8::Value *'\r\n    TYPE_CHECK(T, S);\r\n    ^~~~~~~~~~~~~~~~\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:180:37: note: expanded from macro 'TYPE_CHECK'\r\n    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \\\r\n                                    ^ ~~~~~~~~~~~~~~~~~~\r\n../node_modules/nan/nan.h:424:12: note: in instantiation of function template specialization 'v8::Local<v8::Boolean>::Local<v8::Value>' requested here\r\n    return NanEscapeScope(NanNew(v8::True(v8::Isolate::GetCurrent())));\r\n           ^\r\n../node_modules/nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'\r\n# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))\r\n                             ^\r\nIn file included from ../src/bufferutil.cc:7:\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:221:5: error: assigning to 'v8::Function *volatile' from incompatible type 'v8::Value *'\r\n    TYPE_CHECK(T, S);\r\n    ^~~~~~~~~~~~~~~~\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:180:37: note: expanded from macro 'TYPE_CHECK'\r\n    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \\\r\n                                    ^ ~~~~~~~~~~~~~~~~~~\r\n../node_modules/nan/nan.h:1514:12: note: in instantiation of function template specialization 'v8::Local<v8::Function>::Local<v8::Value>' requested here\r\n    return NanEscapeScope(NanNew(handle)->Get(kCallbackIndex)\r\n           ^\r\n../node_modules/nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'\r\n# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))\r\n                             ^\r\nIn file included from ../src/bufferutil.cc:7:\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:221:5: error: assigning to 'v8::Object *volatile' from incompatible type 'v8::Value *'\r\n    TYPE_CHECK(T, S);\r\n    ^~~~~~~~~~~~~~~~\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:180:37: note: expanded from macro 'TYPE_CHECK'\r\n    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \\\r\n                                    ^ ~~~~~~~~~~~~~~~~~~\r\n../node_modules/nan/nan.h:1632:12: note: in instantiation of function template specialization 'v8::Local<v8::Object>::Local<v8::Value>' requested here\r\n    return NanEscapeScope(handle->Get(NanNew(key)).As<v8::Object>());\r\n           ^\r\n../node_modules/nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'\r\n# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))\r\n                             ^\r\n9 errors generated.\r\nmake: *** [Release/obj.target/bufferutil/src/bufferutil.o] Error 1\r\ngyp ERR! build error \r\ngyp ERR! stack Error: `make` failed with exit code: 2\r\ngyp ERR! stack     at ChildProcess.onExit (/Users/tabone/.nvm/versions/io.js/v3.0.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:269:23)\r\ngyp ERR! stack     at emitTwo (events.js:87:13)\r\ngyp ERR! stack     at ChildProcess.emit (events.js:172:7)\r\ngyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)\r\ngyp ERR! System Darwin 14.4.0\r\ngyp ERR! command \"/Users/tabone/.nvm/versions/io.js/v3.0.0/bin/iojs\" \"/Users/tabone/.nvm/versions/io.js/v3.0.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js\" \"rebuild\"\r\ngyp ERR! cwd /Users/tabone/dev/t/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/bufferutil\r\ngyp ERR! node -v v3.0.0\r\ngyp ERR! node-gyp -v v2.0.2\r\ngyp ERR! not ok \r\nnpm WARN optional dep failed, continuing bufferutil@1.1.0\r\n\r\n> utf-8-validate@1.1.0 install /Users/tabone/dev/t/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/utf-8-validate\r\n> node-gyp rebuild\r\n\r\n  CXX(target) Release/obj.target/validation/src/validation.o\r\nIn file included from ../src/validation.cc:15:\r\n../node_modules/nan/nan.h:261:25: error: redefinition of '_NanEnsureLocal'\r\nNAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Local<T> val) {\r\n                        ^\r\n../node_modules/nan/nan.h:256:25: note: previous definition is here\r\nNAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Handle<T> val) {\r\n                        ^\r\n../node_modules/nan/nan.h:661:13: error: no member named 'smalloc' in namespace 'node'\r\n    , node::smalloc::FreeCallback callback\r\n      ~~~~~~^\r\n../node_modules/nan/nan.h:672:12: error: no matching function for call to 'New'\r\n    return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);\r\n           ^~~~~~~~~~~~~~~~~\r\n/Users/tabone/.node-gyp/3.0.0/include/node/node_buffer.h:35:40: note: candidate function not viable: no known conversion from 'uint32_t' (aka 'unsigned int') to 'enum encoding' for\r\n      3rd argument\r\nNODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,\r\n                                       ^\r\n/Users/tabone/.node-gyp/3.0.0/include/node/node_buffer.h:47:40: note: candidate function not viable: 2nd argument ('const char *') would lose const qualifier\r\nNODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,\r\n                                       ^\r\n/Users/tabone/.node-gyp/3.0.0/include/node/node_buffer.h:32:40: note: candidate function not viable: requires 2 arguments, but 3 were provided\r\nNODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, size_t length);\r\n                                       ^\r\n/Users/tabone/.node-gyp/3.0.0/include/node/node_buffer.h:40:40: note: candidate function not viable: requires 5 arguments, but 3 were provided\r\nNODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,\r\n                                       ^\r\nIn file included from ../src/validation.cc:15:\r\n../node_modules/nan/nan.h:676:12: error: no viable conversion from 'v8::MaybeLocal<v8::Object>' to 'v8::Local<v8::Object>'\r\n    return node::Buffer::New(v8::Isolate::GetCurrent(), size);\r\n           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n/Users/tabone/.node-gyp/3.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>'\r\n      to 'const v8::Local<v8::Object> &' for 1st argument\r\nclass Local {\r\n      ^\r\n/Users/tabone/.node-gyp/3.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>'\r\n      to 'v8::Local<v8::Object> &&' for 1st argument\r\nclass Local {\r\n      ^\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:214:13: note: candidate template ignored: could not match 'Local' against 'MaybeLocal'\r\n  V8_INLINE Local(Local<S> that)\r\n            ^\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:327:13: note: candidate template ignored: could not match 'S *' against 'v8::MaybeLocal<v8::Object>'\r\n  V8_INLINE Local(S* that)\r\n            ^\r\nIn file included from ../src/validation.cc:15:\r\n../node_modules/nan/nan.h:683:26: error: no member named 'Use' in namespace 'node::Buffer'\r\n    return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size);\r\n           ~~~~~~~~~~~~~~^\r\nIn file included from ../src/validation.cc:7:\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:221:5: error: assigning to 'v8::Primitive *volatile' from incompatible type 'v8::Value *'\r\n    TYPE_CHECK(T, S);\r\n    ^~~~~~~~~~~~~~~~\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:180:37: note: expanded from macro 'TYPE_CHECK'\r\n    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \\\r\n                                    ^ ~~~~~~~~~~~~~~~~~~\r\n../node_modules/nan/nan.h:414:12: note: in instantiation of function template specialization 'v8::Local<v8::Primitive>::Local<v8::Value>' requested here\r\n    return NanEscapeScope(NanNew(v8::Undefined(v8::Isolate::GetCurrent())));\r\n           ^\r\n../node_modules/nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'\r\n# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))\r\n                             ^\r\nIn file included from ../src/validation.cc:7:\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:221:5: error: assigning to 'v8::Boolean *volatile' from incompatible type 'v8::Value *'\r\n    TYPE_CHECK(T, S);\r\n    ^~~~~~~~~~~~~~~~\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:180:37: note: expanded from macro 'TYPE_CHECK'\r\n    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \\\r\n                                    ^ ~~~~~~~~~~~~~~~~~~\r\n../node_modules/nan/nan.h:424:12: note: in instantiation of function template specialization 'v8::Local<v8::Boolean>::Local<v8::Value>' requested here\r\n    return NanEscapeScope(NanNew(v8::True(v8::Isolate::GetCurrent())));\r\n           ^\r\n../node_modules/nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'\r\n# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))\r\n                             ^\r\nIn file included from ../src/validation.cc:7:\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:221:5: error: assigning to 'v8::Function *volatile' from incompatible type 'v8::Value *'\r\n    TYPE_CHECK(T, S);\r\n    ^~~~~~~~~~~~~~~~\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:180:37: note: expanded from macro 'TYPE_CHECK'\r\n    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \\\r\n                                    ^ ~~~~~~~~~~~~~~~~~~\r\n../node_modules/nan/nan.h:1514:12: note: in instantiation of function template specialization 'v8::Local<v8::Function>::Local<v8::Value>' requested here\r\n    return NanEscapeScope(NanNew(handle)->Get(kCallbackIndex)\r\n           ^\r\n../node_modules/nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'\r\n# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))\r\n                             ^\r\nIn file included from ../src/validation.cc:7:\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:221:5: error: assigning to 'v8::Object *volatile' from incompatible type 'v8::Value *'\r\n    TYPE_CHECK(T, S);\r\n    ^~~~~~~~~~~~~~~~\r\n/Users/tabone/.node-gyp/3.0.0/include/node/v8.h:180:37: note: expanded from macro 'TYPE_CHECK'\r\n    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \\\r\n                                    ^ ~~~~~~~~~~~~~~~~~~\r\n../node_modules/nan/nan.h:1632:12: note: in instantiation of function template specialization 'v8::Local<v8::Object>::Local<v8::Value>' requested here\r\n    return NanEscapeScope(handle->Get(NanNew(key)).As<v8::Object>());\r\n           ^\r\n../node_modules/nan/nan.h:398:30: note: expanded from macro 'NanEscapeScope'\r\n# define NanEscapeScope(val) scope.Escape(_NanEnsureLocal(val))\r\n                             ^\r\n9 errors generated.\r\nmake: *** [Release/obj.target/validation/src/validation.o] Error 1\r\ngyp ERR! build error \r\ngyp ERR! stack Error: `make` failed with exit code: 2\r\ngyp ERR! stack     at ChildProcess.onExit (/Users/tabone/.nvm/versions/io.js/v3.0.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:269:23)\r\ngyp ERR! stack     at emitTwo (events.js:87:13)\r\ngyp ERR! stack     at ChildProcess.emit (events.js:172:7)\r\ngyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)\r\ngyp ERR! System Darwin 14.4.0\r\ngyp ERR! command \"/Users/tabone/.nvm/versions/io.js/v3.0.0/bin/iojs\" \"/Users/tabone/.nvm/versions/io.js/v3.0.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js\" \"rebuild\"\r\ngyp ERR! cwd /Users/tabone/dev/t/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/utf-8-validate\r\ngyp ERR! node -v v3.0.0\r\ngyp ERR! node-gyp -v v2.0.2\r\ngyp ERR! not ok \r\nnpm WARN optional dep failed, continuing bufferutil@1.1.0\r\nnpm WARN optional dep failed, continuing utf-8-validate@1.1.0\r\nsocket.io@1.3.6 node_modules/socket.io\r\n├── debug@2.1.0 (ms@0.6.2)\r\n├── has-binary-data@0.1.3 (isarray@0.0.1)\r\n├── socket.io-parser@2.2.4 (isarray@0.0.1, debug@0.7.4, component-emitter@1.1.2, benchmark@1.0.0, json3@3.2.6)\r\n├── socket.io-adapter@0.3.1 (object-keys@1.0.1, debug@1.0.2, socket.io-parser@2.2.2)\r\n├── engine.io@1.5.2 (base64id@0.1.0, debug@1.0.3, engine.io-parser@1.2.1, ws@0.7.2)\r\n└── socket.io-client@1.3.6 (to-array@0.1.3, indexof@0.0.1, component-bind@1.0.0, debug@0.7.4, backo2@1.0.2, object-component@0.0.3, component-emitter@1.1.2, has-binary@0.1.6, parseuri@0.0.2, engine.io-client@1.5.2)\r\n```"},"comment":{"url":"https://api.github.com/repos/socketio/socket.io/issues/comments/132497515","html_url":"https://github.com/socketio/socket.io/issues/2213#issuecomment-132497515","issue_url":"https://api.github.com/repos/socketio/socket.io/issues/2213","id":132497515,"user":{"login":"tabone","id":5364897,"avatar_url":"https://avatars.githubusercontent.com/u/5364897?v=3","gravatar_id":"","url":"https://api.github.com/users/tabone","html_url":"https://github.com/tabone","followers_url":"https://api.github.com/users/tabone/followers","following_url":"https://api.github.com/users/tabone/following{/other_user}","gists_url":"https://api.github.com/users/tabone/gists{/gist_id}","starred_url":"https://api.github.com/users/tabone/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tabone/subscriptions","organizations_url":"https://api.github.com/users/tabone/orgs","repos_url":"https://api.github.com/users/tabone/repos","events_url":"https://api.github.com/users/tabone/events{/privacy}","received_events_url":"https://api.github.com/users/tabone/received_events","type":"User","site_admin":false},"created_at":"2015-08-19T08:49:36Z","updated_at":"2015-08-19T08:49:36Z","body":"Thanks @cavweb20."}}