I have experience of porting JS code from one environment to another. First I was using Delphi Application with MS Active Scripting and MS JScript Engine then moved to nodejs on linux, then back to windows on nodejs, and still have JS code originally written for MS Active Scripting. With nodejs vm module you may create needed context. I also was successfully using socket.io and code on top of it with MS Active Scripting based application by implementing simple WebSocket wrapper to Delphi component.
HN user
xdenser
Ok this intArithm variant (w/o memoization) for NodeJS is 6 times faster (0.54 sec) comparing to naive
function intArithm(){
var
max_a0 = +process.argv[2],
longest = 0,
max_len = 0, a0,len, a,z;
for(a0=1;a0<=max_a0;++a0){
a = a0;
len = 0;
while( a != 1){
len++;
z = a >>> 1;
a = (!(a&1))?z:(a+z+1);
}
if(len>max_len){
max_len = len;
longest = a0;
}
}
console.log(max_len,longest);
}
the problem was with division by 2 operation which is not integer in js. So replacing it with shift >>> makes the trick.
Formula optimization gives additional 200 ms.And I doubt memoized c or lua variant will be 6 times faster than non-memoized. As it is not that linear.
my 2 cents to defend NodeJs
329 837799
naive 3.06 sec
329 837799
decompozed 3.03 sec
329 837799
memoized decompozed 0.52 sec
The program
https://gist.github.com/xdenser/7722083it says it is traveling at 1/10 th of light speed. it takes less than minute to get to Mars in pixels, but from other sources I know it takes 13 minutes for radio signal to get to mars. Something does not play here.
How about pure JS PEG generated parser instead of clang? https://github.com/xdenser/node-ffiCparser though that is not finished yet
No you cant. It is NodeJS module referring node-ffi - module allows you to call dynamic libarary functions w/o making your own binary module. So it may be used with NodeJS under Windows. For example you may access COM ports directly from JS. Or you may send messages to other Windows to manipulate them.