On Thursday, 30 October 2014 at 09:35:04 UTC, Suliman wrote:
It is possible, but you need to design the language within the
constraints of javascript:
1. single threaded (or worker threads)
Javascript is single threaded by nature. Parallel execution is
done in isolation. No shared memory.
2. 53 bits integers, 26 bits for multiplies.
Javascript only support double. Double has 53 bits precision. So
without emulation javascript support:
53 bit division /
52 bit addition +, -
32 bit masking &, |
26 bit fast multiply *
4. "weird" fixed size heaps (ArrayView)
You can allocate a fixed size byte array and put aligned typed
views on it in modern browsers. This is used in asm.js
5. if garbage collection then it has to be javascript style
You have no notion of a stack in javascript. You are therefore
stuck with what javascript provides.
6. no tricks: forget coroutines
You cannot implement your own coroutines without an emulation
layer which will be heavy.
I can't understand why this restructions? Could you explain
them?
The restrictions come from what javascript can do efficiently
(execution time, code size and memory use).