Samsung had a great project that was cancelled just before release (most of the engineers went to Intel, but Intel closed that office a couple of years back). They did lightweight symbolic execution over the JavaScript, which let them monomorphise a lot of it, so they could ahead-of-time compile it and avoid dynamic overheads for a lot of stuff. They didn’t support eval, but aside from that they reported perf within 20% of v8 (faster for some things). I wish they’d open sourced their code when they killed the project, it would have been great for this use case.
Samsung had a great project that was cancelled just before release (most of the engineers went to Intel, but Intel closed that office a couple of years back). They did lightweight symbolic execution over the JavaScript, which let them monomorphise a lot of it, so they could ahead-of-time compile it and avoid dynamic overheads for a lot of stuff. They didn’t support eval, but aside from that they reported perf within 20% of v8 (faster for some things). I wish they’d open sourced their code when they killed the project, it would have been great for this use case.
Isn’t this “dead end” approach basically the one that’s used by all these production-ready Lisp compilers?