I have started to bootstrap Tachyon with js2scm to find which library functions are required. In the process I have had to resolve a few issues with the Tachyon sources.
In particular the js2scm compiler does not support LabelledStatements yet (i.e. <label> : <statement>) and this is used in a few places to control loop exit. I have rewritten such uses when it was easy, but there remains one use in ir/optpatterns.js that I don't dare modify because the control flow and invariants are not obvious. Maxime: could you take a look and rewrite it without "continue <label>;" statements?
I've also discovered that the following global variables are referenced but they are not used anywhere. Please fix this!
newdest reg rhsValAssg signExtend u2 upperAddr
Also, I have encountered this style of code:
if (Error.captureStackTrace)
to test for the existence of a particular feature (V8 specific?). Please use this instead:
if (Error.captureStackTrace !== undefined)
which will make implementing "if" easier. In other words, make sure the test of an if yields a boolean.
Marc