-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NPM Install Fails #20
Comments
Seems like an |
Indeed, it seems the Node/v8 interface treadmill has killed EMS for the second time, but this time I have no plans to update it. A PR for Node 10 is welcome, or you can fork EMS and support a NAPI port yourself. I presume you are looking at EMS because of my comment about shared memory with Node Workers. Although I tried desperately to inform the authors of Node Workers they were painting themselves into a corner by providing only raw memory buffers in a language which is based on managed objects, they chose to not just ignore my advice, they deleted it. There is no joy in knowing this short-sighted fundamental mistake was foreseeable, preventable, and will ultimately prevent Node from growing beyond single-threaded algorithms. The theory and practice of EMS builds upon the parallel programming and execution model used in some Cray supercomputers, which in turn are based on DARPA experimental architectures from the early 80's. Alas, Node's authors do not seem interested in the theory underlying parallel programming, and as a consequence Node cannot benefit from the decades of efforts that differentiate High Performance Computing from distributed computing. |
Actually, I wanted to use this because it was the only shared memory plugin for Node that seemed like it might be able to manage a shared memory region larger than 2GB (the max size of a buffer). I need this to efficiently share lots of data with Python. |
Your hunch is correct: EMS is implemented to support the full 64-bit address space. EMS' design prevents Python and Node's heap & GC from seeing more than a few MB at a time so there is no practical upper-bound on dataset size. Having said that, I'm no longer able to work on EMS without funding. A significant amount of time and effort went into EMS but it was a financial loss, a fiasco from the Node community perspective, and largely ignored by the Python community. Under these circumstances it's difficult to justify investing my personal time and money on further development. If EMS is an enabling technology for your application then a business case can probably be made for financially supporting it. I would only be too happy to see EMS continue, but I can't do it for the purpose of subsidizing someone else's business. |
After running "npm install ems"
I get a bunch of errors like:
../src/ffi.cc:126:11: error: ‘class v8::Object’ has no member named ‘ForceSet’
The text was updated successfully, but these errors were encountered: