magomimmo / modern-cljs

A series of tutorials on ClojureScript
2.92k stars 288 forks source link

2nd edition tutorial 9, clojure 1.8: rebinding a dynamic var #437

Open jimrthy opened 6 years ago

jimrthy commented 6 years ago

After I add the shoreleave RPC middleware, running boot dev throws an IllegalStateException: "Can't dynamically bind non-dynamic var: clojure.tools.reader/resolve-symbol".

The stack trace seems useless, but:

Compiling ClojureScript... • main.js java.lang.Thread.run Thread.java: 748 java.util.concurrent.ThreadPoolExecutor$Worker.run ThreadPoolExecutor.java: 624 java.util.concurrent.ThreadPoolExecutor.runWorker ThreadPoolExecutor.java: 1149 java.util.concurrent.FutureTask.run FutureTask.java: 266 ...
clojure.core/binding-conveyor-fn/fn core.clj: 2027 adzerk.boot-cljs/compile-1/fn boot_cljs.clj: 160 adzerk.boot-cljs/compile boot_cljs.clj: 72 boot.pod/call-in pod.clj: 413 ...
org.projectodd.shimdandy.impl.ClojureRuntimeShimImpl.invoke ClojureRuntimeShimImpl.java: 102 org.projectodd.shimdandy.impl.ClojureRuntimeShimImpl.invoke ClojureRuntimeShimImpl.java: 109 ...
boot.pod/call-in
pod.clj: 410 boot.pod/eval-fn-call pod.clj: 359 clojure.core/apply core.clj: 657 ...
adzerk.boot-cljs.impl/compile-cljs impl.clj: 151 cljs.build.api/build api.clj: 205 cljs.closure/build closure.clj: 2531 cljs.closure/build/fn closure.clj: 2533 cljs.closure/add-dependency-sources closure.clj: 872 clojure.core/set core.clj: 4084 clojure.core/reduce1 core.clj: 922 clojure.core/seq core.clj: 137 ...
clojure.core/map/fn core.clj: 2752 cljs.compiler/find-source compiler.cljc: 1596 cljs.analyzer/parse-ns analyzer.cljc: 3719 cljs.analyzer/parse-ns analyzer.cljc: 3729 cljs.analyzer/parse-ns/fn analyzer.cljc: 3762 clojure.core/seq core.clj: 137 ...
cljs.analyzer/forms-seq*/forms-seq-/fn analyzer.cljc: 3653 clojure.core/push-thread-bindings core.clj: 1926

I switched to com.cemerick/shoreleave-remote-ring 0.0.2, and the problem went away (no idea whether I'm setting myself up for other issues...there were obviously good reasons for your fork).

The problem happens on 1.8, 1.9.0-alpha20, and 1.9.0-beta1.

I don't see anything obvious that seems like it should cause this, but I didn't do more than glance at the top level high level diffs. It seems like a shoreleave-remote issue (possibly in changes that Chas made between 0.0.2 and your fork?) rather than a problem here. But I didn't see a way to file an issue there.

Thanks for a great resource!

jimrthy commented 6 years ago

That approach didn't quite work. I wound up getting 404 responses to the _shoreleave POST. It looks like the newer handler (I didn't update the corresponding shoreleave-remote) switched that to _fetch.