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/*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
Also, the current implementation uses async channels to hold the result. I believe these could safely be replaced with refs (lumo and planck use
volatiles). Besides being simpler, it would also enable the use of
binding (which is arguably better than
If you have no objections, I can put together a PR for you to review.