Giter Site home page Giter Site logo

bladepan / nodermi Goto Github PK

View Code? Open in Web Editor NEW
14.0 14.0 3.0 528 KB

A RMI(Remote Method Invocation) service for node.js. You can register objects for remote invocation, stubs are automatically created to mirror the remote object, you can pass remote objects around, no more communication code and messaging, it is all plain method calls.

License: MIT License

Shell 0.28% JavaScript 95.60% Protocol Buffer 4.12%

nodermi's People

Contributors

bladepan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

nodermi's Issues

Failed while installing : [email protected] install: `node-gyp rebuild`

Pasted the error logs, any idea why am I getting this issue?

npm WARN In [email protected] replacing bundled version of node-gyp with [email protected]
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\Program Files\nodejs\node.exe" "C:\Users\psingarakannan
AppData\Roaming\npm\node_modules\npm\bin\npm-cli.js" "install" "nodermi"
npm ERR! node v6.1.0
npm ERR! npm v3.8.9
npm ERR! code ELIFECYCLE

npm ERR! [email protected] install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the weak package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs weak
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls weak
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR! C:\Users\psingarakannan\npm-debug.log

C:\Users\psingarakannan>

support reconstruct object by class

API

registerClass(clazz, className)
// className is required because we need to keep it the same among nodermi instances

write className as a hidden property to clazz function

in object

// export object states as constructor arguments
toConstructorArguments : function(){
}

Can't install on windows - gyp build error

Any ideas? The following is the rather large console message I recieved.

C:\Users\Dell E6540\AppData\Roaming\npm\node_modules\nodermi\node_modules\weak>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node  rebuild )
Building the projects in this solution one at a time. To enable parallel build,
please add the "/m" switch.
  weakref.cc
C:\Users\Dell E6540\AppData\Roaming\npm\node_modules\nodermi\node_modules\weak\
node_modules\nan\nan.h(263): error C2995: 'v8::Local<T> _NanEnsureLocal(v8::Loc
al<T>)' : function template has already been defined [C:\Users\Dell E6540\AppDa
ta\Roaming\npm\node_modules\nodermi\node_modules\weak\build\weakref.vcxproj]
          C:\Users\Dell E6540\AppData\Roaming\npm\node_modules\nodermi\node_mod
  ules\weak\node_modules\nan\nan.h(256) : see declaration of '_NanEnsureLocal'
C:\Users\Dell E6540\AppData\Roaming\npm\node_modules\nodermi\node_modules\weak\
node_modules\nan\nan.h(661): error C3083: 'smalloc': the symbol to the left of
a '::' must be a type [C:\Users\Dell E6540\AppData\Roaming\npm\node_modules\nod
ermi\node_modules\weak\build\weakref.vcxproj]
C:\Users\Dell E6540\AppData\Roaming\npm\node_modules\nodermi\node_modules\weak\
node_modules\nan\nan.h(661): error C2039: 'FreeCallback' : is not a member of '
node' [C:\Users\Dell E6540\AppData\Roaming\npm\node_modules\nodermi\node_module
s\weak\build\weakref.vcxproj]
C:\Users\Dell E6540\AppData\Roaming\npm\node_modules\nodermi\node_modules\weak\
node_modules\nan\nan.h(661): error C2061: syntax error : identifier 'FreeCallba
ck' [C:\Users\Dell E6540\AppData\Roaming\npm\node_modules\nodermi\node_modules\
weak\build\weakref.vcxproj]
C:\Users\Dell E6540\AppData\Roaming\npm\node_modules\nodermi\node_modules\weak\
node_modules\nan\nan.h(665): error C2065: 'callback' : undeclared identifier [C
:\Users\Dell E6540\AppData\Roaming\npm\node_modules\nodermi\node_modules\weak\b
uild\weakref.vcxproj]
C:\Users\Dell E6540\AppData\Roaming\npm\node_modules\nodermi\node_modules\weak\
node_modules\nan\nan.h(665): error C2065: 'hint' : undeclared identifier [C:\Us
ers\Dell E6540\AppData\Roaming\npm\node_modules\nodermi\node_modules\weak\build
\weakref.vcxproj]
C:\Users\Dell E6540\AppData\Roaming\npm\node_modules\nodermi\node_modules\weak\
node_modules\nan\nan.h(672): error C2665: 'node::Buffer::New' : none of the 4 o
verloads could convert all the argument types [C:\Users\Dell E6540\AppData\Roam
ing\npm\node_modules\nodermi\node_modules\weak\build\weakref.vcxproj]

C:\Users\Dell E6540\AppData\Roaming\npm\node_modules\nodermi\node_modules\weak\
node_modules\nan\nan.h(676): error C2664: 'v8::Local<v8::Object>::Local(const v
8::Local<v8::Object> &)' : cannot convert argument 1 from 'v8::MaybeLocal<v8::O
bject>' to 'const v8::Local<v8::Object> &' [C:\Users\Dell E6540\AppData\Roaming
\npm\node_modules\nodermi\node_modules\weak\build\weakref.vcxproj]
          Reason: cannot convert from 'v8::MaybeLocal<v8::Object>' to 'const v8
  ::Local<v8::Object>'
          No user-defined-conversion operator available that can perform this c
  onversion, or the operator cannot be called
C:\Users\Dell E6540\AppData\Roaming\npm\node_modules\nodermi\node_modules\weak\
node_modules\nan\nan.h(683): error C2039: 'Use' : is not a member of 'node::Buf
fer' [C:\Users\Dell E6540\AppData\Roaming\npm\node_modules\nodermi\node_modules
\weak\build\weakref.vcxproj]
C:\Users\Dell E6540\AppData\Roaming\npm\node_modules\nodermi\node_modules\weak\
node_modules\nan\nan.h(683): error C3861: 'Use': identifier not found [C:\Users
\Dell E6540\AppData\Roaming\npm\node_modules\nodermi\node_modules\weak\build\we
akref.vcxproj]

test_integration fails

test_integration fails. It seems dereference messages are not triggered as expected.
Especially, serverA does not garbage collect stubs to the echo callback and objB.inner.

One time in debugging, it runs successfully, below is the log from the successful run. In this successful run, all the stubs get garbage collected.

Pan-MacBookPro:nodermi pan$ node --debug-brk --expose-gc test/test_integration.js 
debugger listening on port 5858
  nodermi:socket listening on localhost:7000 +0ms
  nodermi:socket listening on localhost:8000 +1ms
  nodermi:socket listening on localhost:9000 +1ms
  nodermi:socket connection established to localhost:7000 +2ms
  nodermi:socket send 21 bytes +1ms
  nodermi:socket connection established to localhost:7000 +0ms
  nodermi:socket send 21 bytes +1ms
  nodermi:server localhost:7000 got request {"host":"localhost","port":8000,"type":2,"args":[],"objName":"obj","referenceEntries":[]} +1ms
  nodermi:socket send 105 bytes +1ms
  nodermi:server retrieveObj response :{"sessionId":"0","host":"localhost","port":7000,"type":6,"args":[],"referenceEntries":[],"object":{"id":"0","type":1,"properties":[{"name":"property1","objectValue":{"type":10,"properties":[],"stringVal":"a","arrayElements":[]}},{"name":"echo","objectValue":{"id":"1","type":4,"properties":[],"arrayElements":[]}},{"name":"setProperty","objectValue":{"id":"2","type":4,"properties":[],"arrayElements":[]}},{"name":"getProperty","objectValue":{"id":"3","type":4,"properties":[],"arrayElements":[]}}],"arrayElements":[]}} +1ms
  nodermi:server localhost:7000 got request {"host":"localhost","port":9000,"type":2,"args":[],"objName":"obj","referenceEntries":[]} +0ms
  nodermi:socket send 105 bytes +1ms
  nodermi:socket send 39 bytes +0ms
  nodermi:server retrieveObj response :{"sessionId":"1","host":"localhost","port":7000,"type":6,"args":[],"referenceEntries":[],"object":{"id":"0","type":1,"properties":[{"name":"property1","objectValue":{"type":10,"properties":[],"stringVal":"a","arrayElements":[]}},{"name":"echo","objectValue":{"id":"1","type":4,"properties":[],"arrayElements":[]}},{"name":"setProperty","objectValue":{"id":"2","type":4,"properties":[],"arrayElements":[]}},{"name":"getProperty","objectValue":{"id":"3","type":4,"properties":[],"arrayElements":[]}}],"arrayElements":[]}} +0ms
  nodermi:server localhost:7000 got request {"sessionId":"0","host":"localhost","port":8000,"type":1,"functionId":"1","objId":"0","args":[{"type":10,"properties":[],"stringVal":"1","arrayElements":[]},{"id":"0","type":4,"properties":[],"arrayElements":[]}],"referenceEntries":[]} +1ms
  nodermi:socket send 16 bytes +3m
  nodermi:fd start to ping... +0ms
  nodermi:fd Ping localhost:8000,last active time is 1434340373273 +1ms
  nodermi:fd Ping localhost:9000,last active time is 1434340373271 +0ms
  nodermi:fd ping localhost:8000 +0ms
  nodermi:fd ping localhost:9000 +0ms
  nodermi:fd start to ping... +0ms
  nodermi:fd start to ping... +0ms
  nodermi:fd start to ping... +1m
  nodermi:fd Ping localhost:8000,last active time is 1434340373273 +0ms
  nodermi:fd Ping localhost:9000,last active time is 1434340373271 +0ms
  nodermi:fd ping localhost:8000 +0ms
  nodermi:fd ping localhost:9000 +1ms
  nodermi:fd start to ping... +0ms
  nodermi:fd start to ping... +0ms
  nodermi:socket connection established to localhost:8000 +1ms
  nodermi:socket send 33 bytes +0ms
  nodermi:socket connection established to localhost:8000 +0ms
  nodermi:socket send 16 bytes +0ms
  nodermi:socket connection established to localhost:9000 +0ms
  nodermi:socket send 16 bytes +1ms
  nodermi:server localhost:8000 got request {"sessionId":"2","host":"localhost","port":7000,"type":1,"functionId":"0","args":[{"type":2,"properties":[],"arrayElements":[]},{"type":10,"properties":[],"stringVal":"1","arrayElements":[]}],"referenceEntries":[]} +0ms
  nodermi:socket send 16 bytes +0ms
  nodermi:server localhost:8000 got request {"host":"localhost","port":7000,"type":3,"args":[],"referenceEntries":[]} +1ms
  nodermi:socket send 16 bytes +0ms
  nodermi:server localhost:9000 got request {"host":"localhost","port":7000,"type":3,"args":[],"referenceEntries":[]} +0ms
  nodermi:socket send 16 bytes +0ms
testing dereference
  nodermi:socket send 69 bytes +1ms
objB.inner id is 1
  nodermi:server localhost:7000 got request {"sessionId":"1","host":"localhost","port":8000,"type":1,"functionId":"2","objId":"0","args":[{"type":10,"properties":[],"stringVal":"stubProp","arrayElements":[]},{"id":"1","type":1,"properties":[{"name":"func1","objectValue":{"id":"2","type":4,"properties":[],"arrayElements":[]}}],"arrayElements":[]},{"id":"3","type":4,"properties":[],"arrayElements":[]}],"referenceEntries":[]} +23s
  nodermi:socket send 22 bytes +1ms
  nodermi:socket send 16 bytes +0ms
  nodermi:socket connection established to localhost:8000 +0ms
  nodermi:socket send 16 bytes +1ms
  nodermi:socket connection established to localhost:9000 +0ms
  nodermi:socket send 16 bytes +0ms
  nodermi:server localhost:8000 got request {"sessionId":"3","host":"localhost","port":7000,"type":1,"functionId":"3","args":[],"referenceEntries":[]} +0ms
  nodermi:socket send 46 bytes +0ms
  nodermi:socket send 16 bytes +0ms
  nodermi:server localhost:8000 got request {"host":"localhost","port":7000,"type":3,"args":[],"referenceEntries":[]} +4s
  nodermi:socket send 16 bytes +0ms
  nodermi:server localhost:9000 got request {"host":"localhost","port":7000,"type":3,"args":[],"referenceEntries":[]} +0ms
  nodermi:socket send 16 bytes +1ms
  nodermi:server localhost:7000 got request {"sessionId":"0","host":"localhost","port":9000,"type":1,"functionId":"3","objId":"0","args":[{"type":10,"properties":[],"stringVal":"stubProp","arrayElements":[]},{"id":"0","type":4,"properties":[],"arrayElements":[]}],"referenceEntries":[]} +0ms
  nodermi:socket send 43 bytes +1ms
  nodermi:socket send 16 bytes +0ms
  nodermi:server localhost:8000 got request {"host":"localhost","port":7000,"type":4,"args":[],"referenceEntries":[{"sessionId":"1","objectIds":["1","2"]}],"referenceClient":{"host":"localhost","port":9000}} +24s
  nodermi:socket send 16 bytes +1ms
  nodermi:socket send 83 bytes +0ms
  nodermi:server localhost:9000 got request {"sessionId":"4","host":"localhost","port":7000,"type":1,"functionId":"0","args":[{"type":2,"properties":[],"arrayElements":[]},{"id":"1","host":"localhost","port":8000,"type":1,"properties":[{"name":"func1","objectValue":{"id":"2","host":"localhost","port":8000,"type":4,"properties":[],"sessionId":"1","arrayElements":[]}}],"sessionId":"1","arrayElements":[]}],"referenceEntries":[]} +0ms
  nodermi:socket send 16 bytes +1ms
delete reference from objA 1@localhost:8000
after delete objA.stubProp undefined
  nodermi:objRegistry cleanup stub localhost:8000_1_3 +12ms
  nodermi:socket send 22 bytes +13s
  nodermi:fd start to ping... +50ms
  nodermi:fd start to ping... +0ms
  nodermi:fd start to ping... +0ms
  nodermi:server localhost:8000 got request {"sessionId":"1","host":"localhost","port":7000,"type":5,"objId":"3","args":[],"referenceEntries":[]} +0ms
  nodermi:objRegistry Reference to [3] cleared, safe to remove from strong map. +0ms
  nodermi:objRegistry after dereference 3 {} +0ms
  nodermi:socket send 16 bytes +1ms
delete reference from objC
  nodermi:objRegistry cleanup stub localhost:8000_1_2 +9s
  nodermi:objRegistry cleanup stub localhost:8000_1_1 +0ms
  nodermi:objRegistry cleanup stub localhost:9000_0_0 +1ms
  nodermi:socket send 22 bytes +0ms
  nodermi:objRegistry cleanup stub localhost:8000_1_1 +0ms
  nodermi:socket send 22 bytes +0ms
  nodermi:objRegistry cleanup stub localhost:8000_1_2 +0ms
  nodermi:socket send 22 bytes +0ms
  nodermi:server localhost:9000 got request {"sessionId":"0","host":"localhost","port":7000,"type":5,"objId":"0","args":[],"referenceEntries":[]} +6s
  nodermi:objRegistry Reference to [0] cleared, safe to remove from strong map. +1ms
  nodermi:objRegistry after dereference 0 {} +0ms
  nodermi:socket send 16 bytes +0ms
  nodermi:server localhost:8000 got request {"sessionId":"1","host":"localhost","port":7000,"type":5,"objId":"1","args":[],"referenceEntries":[]} +0ms
  nodermi:objRegistry after dereference 1 {"localhost:9000":["1"]} +0ms
  nodermi:socket send 16 bytes +0ms
  nodermi:server localhost:8000 got request {"sessionId":"1","host":"localhost","port":7000,"type":5,"objId":"2","args":[],"referenceEntries":[]} +0ms
  nodermi:objRegistry after dereference 2 {"localhost:9000":["1"]} +0ms
  nodermi:socket send 16 bytes +1ms
  nodermi:socket connection established to localhost:8000 +0ms
  nodermi:socket send 22 bytes +0ms
  nodermi:socket connection established to localhost:8000 +0ms
  nodermi:socket send 22 bytes +0ms
  nodermi:server localhost:8000 got request {"sessionId":"1","host":"localhost","port":9000,"type":5,"objId":"2","args":[],"referenceEntries":[]} +1ms
  nodermi:objRegistry Reference to [2] cleared, safe to remove from strong map. +0ms
  nodermi:objRegistry after dereference 2 {} +0ms
  nodermi:socket send 16 bytes +0ms
  nodermi:server localhost:8000 got request {"sessionId":"1","host":"localhost","port":9000,"type":5,"objId":"1","args":[],"referenceEntries":[]} +0ms
  nodermi:objRegistry Reference to [1] cleared, safe to remove from strong map. +0ms
  nodermi:objRegistry after dereference 1 {} +0ms
  nodermi:socket send 16 bytes +0ms
  nodermi:fd start to ping... +53s
  nodermi:fd Ping localhost:8000,last active time is 1434340640638 +0ms
  nodermi:fd Ping localhost:9000,last active time is 1434340644200 +0ms
  nodermi:fd ping localhost:8000 +0ms
  nodermi:socket send 16 bytes +1ms
  nodermi:fd ping localhost:9000 +0ms
  nodermi:socket send 16 bytes +0ms
  nodermi:fd start to ping... +0ms
  nodermi:fd start to ping... +0ms
  nodermi:server localhost:8000 got request {"host":"localhost","port":7000,"type":3,"args":[],"referenceEntries":[]} +0ms
  nodermi:socket send 16 bytes +0ms
  nodermi:server localhost:9000 got request {"host":"localhost","port":7000,"type":3,"args":[],"referenceEntries":[]} +1ms
  nodermi:socket send 16 bytes +0ms
  nodermi:socket remove socket localhost:8000 from socket pool. +0ms
  nodermi:socket remove socket localhost:9000 from socket pool. +0ms
  nodermi:socket remove socket localhost:7000 from socket pool. +1ms
  nodermi:socket remove socket localhost:7000 from socket pool. +0ms
  nodermi:socket remove socket localhost:8000 from socket pool. +0ms
  nodermi:error:socket Error: EOF
    at SocketWrapper.lodash.assign.endData (/Users/pan/git/nodermi/lib/socket_transport.js:274:36)
    at Socket.emit (events.js:117:20)
    at _stream_readable.js:943:16
    at process._tickCallback (node.js:419:13) +0ms
  nodermi:error:socket Error: EOF
    at SocketWrapper.lodash.assign.endData (/Users/pan/git/nodermi/lib/socket_transport.js:274:36)
    at Socket.emit (events.js:117:20)
    at _stream_readable.js:943:16
    at process._tickCallback (node.js:419:13) +2ms
  nodermi:error:socket Error: EOF
    at SocketWrapper.lodash.assign.endData (/Users/pan/git/nodermi/lib/socket_transport.js:274:36)
    at Socket.emit (events.js:117:20)
    at _stream_readable.js:943:16
    at process._tickCallback (node.js:419:13) +0ms
  nodermi:error:socket Error: EOF
    at SocketWrapper.lodash.assign.endData (/Users/pan/git/nodermi/lib/socket_transport.js:274:36)
    at Socket.emit (events.js:117:20)
    at _stream_readable.js:943:16
    at process._tickCallback (node.js:419:13) +1ms
  nodermi:error:socket Error: EOF
    at SocketWrapper.lodash.assign.endData (/Users/pan/git/nodermi/lib/socket_transport.js:274:36)
    at Socket.emit (events.js:117:20)
    at _stream_readable.js:943:16
    at process._tickCallback (node.js:419:13) +0ms

should skip private properties : start with __

properties start with user defined private prefix

These functions should be exclude as well, even it is not seen from for(k in obj) loops

km.__defineGetter__      km.__defineSetter__      km.__lookupGetter__      km.__lookupSetter__      km.constructor
km.hasOwnProperty        km.isPrototypeOf         km.propertyIsEnumerable  km.toLocaleString        km.toString
km.valueOf 

toJSON

Centos 7

I'm having a problem installing nodermi on my CentOS machine.
I can install other packages with no problem (examples ffi, etc.)
My system:

Node v5.7.0
NPM v3.6.0

The output when running "npm install nodermi":


[root@localhost scale]# npm install nodermi

> [email protected] install /var/scale/scale/node_modules/weak
> node-gyp rebuild

make: Entering directory `/var/scale/scale/node_modules/weak/build'
  CXX(target) Release/obj.target/weakref/src/weakref.o
In file included from ../src/weakref.cc:19:0:
../node_modules/nan/nan.h:261:25: error: redefinition of ‘template<class T> v8::Local<T> _NanEnsureLocal(v8::Local<T>)’
 NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Local<T> val) {
                         ^
../node_modules/nan/nan.h:256:25: error: ‘template<class T> v8::Local<T> _NanEnsureLocal(v8::Handle<T>)’ previously declared here
 NAN_INLINE v8::Local<T> _NanEnsureLocal(v8::Handle<T> val) {
                         ^
../node_modules/nan/nan.h:661:13: error: ‘node::smalloc’ has not been declared
     , node::smalloc::FreeCallback callback
             ^
../node_modules/nan/nan.h:661:35: error: expected ‘,’ or ‘...’ before ‘callback’
     , node::smalloc::FreeCallback callback
                                   ^
../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(char*, size_t, int)’:
../node_modules/nan/nan.h:665:50: error: ‘callback’ was not declared in this scope
         v8::Isolate::GetCurrent(), data, length, callback, hint);
                                                  ^
../node_modules/nan/nan.h:665:60: error: ‘hint’ was not declared in this scope
         v8::Isolate::GetCurrent(), data, length, callback, hint);
                                                            ^
../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(const char*, uint32_t)’:
../node_modules/nan/nan.h:672:67: error: call of overloaded ‘New(v8::Isolate*, const char*&, uint32_t&)’ is ambiguous
     return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
                                                                   ^
../node_modules/nan/nan.h:672:67: note: candidates are:
In file included from ../node_modules/nan/nan.h:25:0,
                 from ../src/weakref.cc:19:
/root/.node-gyp/5.7.0/include/node/node_buffer.h:31:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, v8::Local<v8::String>, node::encoding) <near match>
 NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                        ^
/root/.node-gyp/5.7.0/include/node/node_buffer.h:31:40: note:   no known conversion for argument 3 from ‘uint32_t {aka unsigned int}’ to ‘node::encoding’
/root/.node-gyp/5.7.0/include/node/node_buffer.h:43:40: note: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, char*, size_t) <near match>
 NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                        ^
/root/.node-gyp/5.7.0/include/node/node_buffer.h:43:40: note:   no known conversion for argument 2 from ‘const char*’ to ‘char*’
In file included from ../src/weakref.cc:19:0:
../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanNewBufferHandle(uint32_t)’:
../node_modules/nan/nan.h:676:61: error: could not convert ‘node::Buffer::New(v8::Isolate::GetCurrent(), ((size_t)size))’ from ‘v8::MaybeLocal<v8::Object>’ to ‘v8::Local<v8::Object>’
     return node::Buffer::New(v8::Isolate::GetCurrent(), size);
                                                             ^
../node_modules/nan/nan.h: In function ‘v8::Local<v8::Object> NanBufferUse(char*, uint32_t)’:
../node_modules/nan/nan.h:683:12: error: ‘Use’ is not a member of ‘node::Buffer’
     return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size);
            ^
make: *** [Release/obj.target/weakref/src/weakref.o] Error 1
make: Leaving directory `/var/scale/scale/node_modules/weak/build'
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:276:23)
gyp ERR! stack     at emitTwo (events.js:100:13)
gyp ERR! stack     at ChildProcess.emit (events.js:185:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 3.10.0-327.el7.x86_64
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /var/scale/scale/node_modules/weak
gyp ERR! node -v v5.7.0
gyp ERR! node-gyp -v v3.2.1
gyp ERR! not ok 
rexail@ /var/scale/scale
├── [email protected]  extraneous
└── [email protected]  extraneous

npm WARN rexail@ No description
npm WARN rexail@ No repository field.
npm WARN rexail@ No license field.
npm ERR! Linux 3.10.0-327.el7.x86_64
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "nodermi"
npm ERR! node v5.7.0
npm ERR! npm  v3.6.0
npm ERR! code ELIFECYCLE

npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the weak package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs weak
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls weak
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /var/scale/scale/npm-debug.log

should invoke callback when server listening error

The callback is fired on 'listening' event, aka, it is only triggered when listening is successful.
http://nodejs.org/api/net.html#net_server_listen_port_host_backlog_callback

The code below does not work, it seems the express object does not inherit Net.Server object

        callbackFired = false
        errorHandler = (err)->
            if callback
                callback err
                callbackFired = true

        @server.on('error',errorHandler)

        # apparently the callback is fired on 'listening' event, aka, it
        # is only triggered when listening is successful.
        # http://nodejs.org/api/net.html#net_server_listen_port_host_backlog_callback
        @server.listen(@port,@host,511, (err)=>
            if callback? and not callbackFired
                callback err, this
                @server.removeListener('error', errorHandler)
            @_log "RmiService listening on #{@port}"
        )

install error

43914 verbose unsafe-perm in lifecycle false
43915 error [email protected] install: grunt
43915 error Exit status 127
43916 error Failed at the [email protected] install script.
43916 error This is most likely a problem with the nodermi package,
43916 error not with npm itself.
43916 error Tell the author that this fails on your system:
43916 error grunt
43916 error You can get their info via:
43916 error npm owner ls nodermi
43916 error There is likely additional logging output above.
43917 error System Darwin 13.1.0
43918 error command "node" "/usr/local/bin/npm" "install" "-d"
43919 error cwd /Users/pan/git/cloudbrowser2
43920 error node -v v0.10.26
43921 error npm -v 1.4.3
43922 error code ELIFECYCLE
43923 verbose exit [ 1, true ]

the message size is too big

group function descriptors

 "addEvent": {
                      "__r_type": "funcDes"
                    },
                    "enable": {
                      "__r_type": "funcDes"
                    },
                    "disable": {
                      "__r_type": "funcDes"
                    },
                    "isOwner": {
                      "__r_type": "funcDes"
                    },
                    "getAppInstance": {
                      "__r_type": "funcDes"
                    },

group other things. use gzip?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.