Hello, author here.

Clue is an experiment and probably not useful for real work --- go look at the memory model and you'll see why. (C89 allows for some really weird but standards-compliant architectures.) ints are about 56 bits wide and their value is undefined on rollover, for example. Plus it's not finished; varargs and switch are the big missing factor.

Regarding the node version: because I forgot to update the version number on the website. It was actually 0.6.19. Updated. JS performance is heavily penalised due to the aforesaid goto issue, though. (Procedural languages without goto are toys, dammit.)

Regarding C optimisation: yes, precisely. However this does put LuaJIT at an unfair advantage since it can unroll loops to its hearts' content, while gcc can't. It's probably worth rerunning at -O3 just to see what's different.

Incidentally, I have 2/3 of a Common Lisp backend (someone contributed a backend but not the run-time library). Anyone want to complete it?

Great work David, glad to see an update after almost 5 years!

I looked into Clue for compiling C to Common Lisp before writing https://github.com/vsedach/Vacietis because I wanted something that would interop better with CL types and be able to run self-contained.