0rpc/zerorpc-node

cannot compile on windows

Opened this issue · 12 comments

msgpack seems to have an issue from version 0.1.7 on upwards (0.1.6 works) which does not let it compile on windows. for more details see: pgriess/node-msgpack#46

since zerorpc is referring to 0.1.8 it cannot compile on windows.

does zerorpc work with 0.1.6 or has there been any major reason to specify 0.1.8 explicitly instead of semvering ~0.1 ?

seems to be solved in 0.2.1, i've submitted #31

@matthiasg, can you please test #31 and report if it works for you? Thank you!

checking out master and applying #31 worked. it compiles now on windows (i tested with vs2010 with node 64bit). did not run any tests though since npm test is not supported and the scripts in test did not produce any output before i killed them ... maybe thats an issue. should i have time next week i will look into that.

Is there a new version of zerorpc that includes this fix ? I'm trying to install it but it fails during msgpack installation...

If we can get confirmation that it works on Windows, would be happy to merge and try to release (not sure if I have the appropriate NPM creds, but I can try to hunt them down at least :-))

Ok, I stay tuned and wait for any news. Merci Jérôme

Hey guys,

Looks good to me. I may have more to report as I migrate this into production later.

For now though, from an msysgit bash + windows 7 environment:

  • Used npm to install msgpack 0.2.3
  • Downloaded the zerorpc-node package.
  • Updated the package.json to expect to msgpack 0.2.3
  • Installed zerorpc from the directory with npm
  • Ran npm test:

$ npm test

zerorpc@0.9.3 test d:\Work\xxx\xxx\support\zerorpc-node-master
nodeunit test
buffers
✔ testStreamingMethodWithBufferResets
errors
✔ testSimpleError
✔ testObjectError
✔ testStreamError
heartbeats
✔ testClose
invocation
✔ testNormalStringMethod
✔ testNormalIntMethod
✔ testIntrospector
✔ testNonExistentMethod
✔ testBadClient
repro-10
✔ testRepro10
streams
✔ testConcurrentRequests
timeouts
✔ testQuiet
OK: 3126 assertions (60893ms)

I know this issue is over one year old but I am still having the same problem on Windows 7 x64.

..\src\msgpack.cc(181): error C2466: cannot allocate an array of constant size 0 [F:\Dev\js\IdeaFlow\node_modules\msgpack\build\msgpackBinding.vcxproj]
..\src\msgpack.cc(181): error C2440: 'initializing' : cannot convert from 'int'
to 'v8::Handle' [F:\Dev\js\IdeaFlow\node_modules\msgpack\build\msgpackBindi
ng.vcxproj]

The package.json references to msgpack@0.1.8, which is broken.

I ran npm install msgpack, it installed version 0.2.4 and worked fine. So a simple update to package.json would fix it.

Since zerorpc is buried very deep in the dependency tree of another project I am using (socket.io), it is not practical for me (or anyone having the same issue) to modify all those dependencies and then put it into production use.

Please fix this issue and I am glad to help with the testing process.

It is not a "clean" way to perform it due to modifications to msgpack API...

I wanted to use this tool to power & control my bot, but it has to be reliable and it isn't actually.

@AlexisTM Thanks for the information. That's very unfortunate. I guess I'll search for an alternative.

@akfish Note: Msgpack is deprecated anyway... It could be replaced by JSON.parse & stringify!

node-msgpack is currently slower than the built-in JSON.stringify() and JSON.parse() methods. In recent versions of node.js, the JSON functions have been heavily optimized. node-msgpack is still more compact, and we are currently working performance improvements. Testing shows that, over 500k iterations, msgpack.pack() is about 5x slower than JSON.stringify(), and msgpack.unpack() is about 3.5x slower than JSON.parse().

Hmm well this kind of kills my tests for ZeroRPC vs dnode on windows.
:(