cemerick / austin

The ClojureScript browser-REPL rebuilt stronger, faster, easier.
510 stars 31 forks source link

Austin fails w/ ClojureScript 0.0-2060 #27

Closed ToBeReplaced closed 10 years ago

ToBeReplaced commented 10 years ago

e.g. (cemerick.austin.repls/exec) yields Assert failed: :output-dir cannot be specified without also specifying :output-to.

ToBeReplaced commented 10 years ago

I have versioning issues -- closing.

ToBeReplaced commented 10 years ago

Change austin to version 0.1.3 and clojurescript to version 0.0-2060 in the browser-connected-repl-sample and you get the following error when attempting to attach the browser:

java.util.concurrent.ExecutionException: java.lang.AssertionError: Assert failed: :output-dir cannot be specified without also specifying :output-to (contains? opts :output-to) at java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.util.concurrent.FutureTask.get(FutureTask.java:188) at clojure.core$deref_future.invoke(core.clj:2108) at clojure.core$future_call$reify__6267.deref(core.clj:6308) at clojure.core$deref.invoke(core.clj:2128) at cemerick.austin$repl_client_js.invoke(austin.clj:144) at cemerick.austin$send_repl_client_page.invoke(austin.clj:158) at cemerick.austin$eval4256$fn4258.invoke(austin.clj:271) at clojure.lang.MultiFn.invoke(MultiFn.java:227) at cemerick.austin$handle_request.invoke(austin.clj:279) at cemerick.austin$create_server$reify4134.handle(austin.clj:25) at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77) at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:83) at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:80) at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:677) at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77) at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:649) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744) Caused by: java.lang.AssertionError: Assert failed: :output-dir cannot be specified without also specifying :output-to (contains? opts :output-to) at cljs.closure$check_output_dir.invoke(closure.clj:1007) at cljs.closure$build.invoke(closure.clj:1064) at cljs.closure$build.invoke(closure.clj:1049) at cemerick.austin$compile_client_js.invoke(austin.clj:340) at cemerick.austin$create_client_js_file.invoke(austin.clj:345) at cemerick.austin$repl_env$fn4295.invoke(austin.clj:412) at clojure.core$binding_conveyor_fn$fn4107.invoke(core.clj:1836) at clojure.lang.AFn.call(AFn.java:18) at java.util.concurrent.FutureTask.run(FutureTask.java:262) ... 3 more

cemerick commented 10 years ago

Okay, thanks for the report. I haven't used Austin in conjunction with 2060 yet, I wouldn't be surprised if there was some breakage.

aamedina commented 10 years ago

Just wanted to report that I have the same issue after updating to 0.0.2060, except I was disrupted in a more puzzling manner - after running cemerick.austin.repls/exec, the headless browser repl would appear to instantiate error-free, but if you entered any expressions it would not evaluate them. Unfortunately it prints no error.

aamedina commented 10 years ago

So I just updated both Piggieback and Austin to the latest ClojureScript version, installed them locally, then created a minimal project just to test out the repl again. (Hey, it's worth a shot, right?) This time upon running exec, I got an error!

Browser-REPL ready @ http://localhost:50987/7768/repl/start IllegalStateException Can't change/establish root binding of: cljs-repl-options with set clojure.lang.Var.set (Var.java:233)

the-kenny commented 10 years ago

@aamedina This might be unrelated. I saw this error when I tried to spawn a cljs-repl without the suitable nrepl middleware in place (in my case, nrepl wasn't started via lein but programmatically).

cemerick commented 10 years ago

Confirmed as an upstream ClojureScript issue; apparently a fix is forthcoming. Updating the issue title to reflect the concrete problem.

@aamedina I believe @the-kenny is correct re: your last msg, any errors talking about root bindings are caused by nREPL middleware being misconfigured or absent.

aamedina commented 10 years ago

Yep, that was the case for the error. I had mistakenly put Austin in the dependencies instead of the plugins vector inside project.clj. That being said, when I configured it correctly I had the same issue with a non-responsive repl. Hope it gets fixed upstream soon!

cemerick commented 10 years ago

Fix has landed on master. Will close with an update when it's available from maven central.

cemerick commented 10 years ago

Anything >= 0.0-2069 resolves this problem: http://search.maven.org/#search|gav|1|g%3A%22org.clojure%22%20AND%20a%3A%22clojurescript%22