I'm experimenting with some JIT options in SCI on CLJS:
$ NBB_JIT=1 node lib/nbb_main.js -e '(time (print (loop [i 0 j 10000000] (if (zero? j) i (recur (inc i) (dec j))))))'
10000000
"Elapsed time: 8.335917 msecs"
this is as fast as CLJS on V8
with preservation of good error messagesWhat's the trick? It should not be possible, right? Is cljs missing some optimizations? Just curiosity here if you feel like explaining
this is about as fast as it can get. numeric ops are just compiled and evaluated straight to JS, loops too
cc @mkvlr this also solves the performance problem we once had with emmy in clerk