Planeshifter / node-Rstats

[UNMAINTAINED] An interface for node.js to statistical programming language R based on the fabulous Rcpp package
GNU General Public License v2.0
58 stars 16 forks source link

Installation fails on node 0.12.0 #9

Closed PaulMougel closed 9 years ago

PaulMougel commented 9 years ago

I don't really know how to fix this, does anyone have an idea? I'm running Mac Os X Yosemite, node 0.12.0, npm 2.5.1.

|
> rstats@0.2.1 install /Users/pmougel/Documents/SPINE/server/plugins/r/node_modules/rstats
> node-gyp rebuild

child_process: customFds option is deprecated, use stdio instead.
  CXX(target) Release/obj.target/R/src/rl.o
../src/rl.cpp:1:9: warning: 'BUILDING_NODE_EXTENSION' macro redefined
#define BUILDING_NODE_EXTENSION
        ^
<command line>:4:9: note: previous definition is here
#define BUILDING_NODE_EXTENSION 1
        ^
In file included from ../src/rl.cpp:5:
../src/rlink.h:10:28: error: expected class name
class RWrap : public node::ObjectWrap {
                           ^
../src/rlink.h:23:18: error: no type named 'Arguments' in namespace 'v8'; did you mean 'v8::internal::Arguments'?
     RWrap(const v8::Arguments& args);
                 ^~~~~~~~~~~~~
                 v8::internal::Arguments
/Users/pmougel/.node-gyp/0.12.0/deps/v8/include/v8.h:127:7: note: 'v8::internal::Arguments' declared here
class Arguments;
      ^
In file included from ../src/rl.cpp:5:
../src/rlink.h:26:44: error: no type named 'Arguments' in namespace 'v8'; did you mean 'v8::internal::Arguments'?
    static v8::Handle<v8::Value> New(const v8::Arguments& args);
                                           ^~~~~~~~~~~~~
                                           v8::internal::Arguments
/Users/pmougel/.node-gyp/0.12.0/deps/v8/include/v8.h:127:7: note: 'v8::internal::Arguments' declared here
class Arguments;
      ^
In file included from ../src/rl.cpp:5:
../src/rlink.h:29:48: error: no type named 'Arguments' in namespace 'v8'; did you mean 'v8::internal::Arguments'?
  static v8::Handle<v8::Value> parseEval(const v8::Arguments& args);
                                               ^~~~~~~~~~~~~
                                               v8::internal::Arguments
/Users/pmougel/.node-gyp/0.12.0/deps/v8/include/v8.h:127:7: note: 'v8::internal::Arguments' declared here
class Arguments;
      ^
In file included from ../src/rl.cpp:5:
../src/rlink.h:30:49: error: no type named 'Arguments' in namespace 'v8'; did you mean 'v8::internal::Arguments'?
  static v8::Handle<v8::Value> parseEvalQ(const v8::Arguments& args);
                                                ^~~~~~~~~~~~~
                                                v8::internal::Arguments
/Users/pmougel/.node-gyp/0.12.0/deps/v8/include/v8.h:127:7: note: 'v8::internal::Arguments' declared here
class Arguments;
      ^
In file included from ../src/rl.cpp:5:
../src/rlink.h:31:51: error: no type named 'Arguments' in namespace 'v8'; did you mean 'v8::internal::Arguments'?
  static v8::Handle<v8::Value> parseEvalQNT(const v8::Arguments& args);
                                                  ^~~~~~~~~~~~~
                                                  v8::internal::Arguments
/Users/pmougel/.node-gyp/0.12.0/deps/v8/include/v8.h:127:7: note: 'v8::internal::Arguments' declared here
class Arguments;
      ^
In file included from ../src/rl.cpp:5:
../src/rlink.h:32:45: error: no type named 'Arguments' in namespace 'v8'; did you mean 'v8::internal::Arguments'?
  static v8::Handle<v8::Value> assign(const v8::Arguments& args);
                                            ^~~~~~~~~~~~~
                                            v8::internal::Arguments
/Users/pmougel/.node-gyp/0.12.0/deps/v8/include/v8.h:127:7: note: 'v8::internal::Arguments' declared here
class Arguments;
      ^
In file included from ../src/rl.cpp:5:
../src/rlink.h:33:42: error: no type named 'Arguments' in namespace 'v8'; did you mean 'v8::internal::Arguments'?
  static v8::Handle<v8::Value> get(const v8::Arguments& args);
                                         ^~~~~~~~~~~~~
                                         v8::internal::Arguments
/Users/pmougel/.node-gyp/0.12.0/deps/v8/include/v8.h:127:7: note: 'v8::internal::Arguments' declared here
class Arguments;
      ^
1 warning and 8 errors generated.
make: *** [Release/obj.target/R/src/rl.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.emit (events.js:110:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:1067:12)
gyp ERR! System Darwin 14.1.0
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/pmougel/Documents/SPINE/server/plugins/r/node_modules/rstats
gyp ERR! node -v v0.12.0
gyp ERR! node-gyp -v v1.0.2
gyp ERR! not ok 
npm ERR! Darwin 14.1.0
npm ERR! argv "node" "/usr/local/bin/npm" "i"
npm ERR! node v0.12.0
npm ERR! npm  v2.5.1
npm ERR! code ELIFECYCLE
Planeshifter commented 9 years ago

Hi Paul, node v0.12 uses a newer version of V8 which has breaking API changes. I will have to rewrite most of the C++ binding code, preferably porting it to use nan, a package which aims to abstract away the differences between the different V8 APIs. I did not find the time to work on this yet, but I might be able to solve it in the next week or two. Best wishes, Philipp

PaulMougel commented 9 years ago

Awesome, that sounds great! Keep us updated then :)

Planeshifter commented 9 years ago

I just pushed a new version of the package to npm. It should now run with node v0.12.0.

PaulMougel commented 9 years ago

Cool! thanks a lot