> Similarly I would expect that generating any sort of sensible Javascript > would require something fairly tightly tied to GHC; otherwise the output's > going to have horrible performance because it's not going to understand the > input and will fall back to the slowest but most general translation. (If > it even has such a fallback, instead of simply failing on code that it > doesn't recognize.) > > Emscripten produces a limited subset of JavaScript (asm.js), and Firefox has an optimizer specifically for that. It could result in good performance, but the CPS transformed code is still a problem indeed, so it's unclear if GHC generated code would work at all.
Asm.js is really limited, it's like a far less convenient LLVM without modern instructions in JavaScript syntax. You can't use objects, everything is stored in a global heap array. Interestingly, Firefox performs far worse than Chrome and Safari on the current GHCJS code, probably because their garbage collector is rather poor (non-generational), and Haskell code produces lots of short-lived immutable objects. luite
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe