Description
I have a proof of concept project which I'm testing with various self-hosted envs, and it does not work with klipse. I believe some minor modifications could be made to the way expressions are currently compiled and evaluated, which might benefit klipse as well (so it's not entirely for my own selfish reasons :))
The cause of this issue is that klipse does not directly set or bind cljs.js/*load-fn*
and cljs.js/*eval-fn*
, but simply passes them to cljs.js/eval-str
. Therefore, client code which uses cljs.js
is restricted (require
expressions cannot be eval
-d for instance).
The solution would be to simply bind or set these vars before making the eval-str
call.
Also, the current implementation uses async channels to hold the result. I believe these could safely be replaced with refs (lumo and planck use volatile
s). Besides being simpler, it would also enable the use of binding
(which is arguably better than set!
).
If you have no objections, I can put together a PR for you to review.