Closed rterbush closed 9 years ago
To add a bit more info on this:
I've replicated this behavior on two different operating systems (Linux and MacOSX), and two different elisp stacks. On the MacOSX platform, used Prelude [https://github.com/bbatsov/prelude].
Backtrace:
java.lang.ThreadDeath
at java.lang.Thread.stop(Thread.java:850)
at clojure.tools.nrepl.middleware.interruptible_eval$interruptible_eval$fn__659.invoke(interruptible_eval.clj:209)
at clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__414.invoke(middleware.clj:24)
at clojure.tools.nrepl.middleware.session$add_stdin$fn__733.invoke(session.clj:235)
at clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__414.invoke(middleware.clj:24)
at cider.nrepl.middleware.pprint$wrap_pprint$fn__8907.invoke(pprint.clj:27)
at clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__414.invoke(middleware.clj:24)
at clojure.tools.nrepl.middleware.load_file$wrap_load_file$fn__774.invoke(load_file.clj:77)
at clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__414.invoke(middleware.clj:24)
at cider.nrepl.middleware.trace$wrap_trace$fn__9360.invoke(trace.clj:65)
at clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__414.invoke(middleware.clj:24)
at cemerick.piggieback$wrap_cljs_repl$fn__4504$fn__4506.invoke(piggieback.clj:242)
at clojure.lang.AFn.applyToHelper(AFn.java:152)
at clojure.lang.AFn.applyTo(AFn.java:144)
at clojure.core$apply.invoke(core.clj:624)
at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1862)
at clojure.lang.RestFn.invoke(RestFn.java:425)
at cemerick.piggieback$wrap_cljs_repl$fn__4504.invoke(piggieback.clj:239)
at clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__414.invoke(middleware.clj:24)
at cider.nrepl.middleware.format$wrap_format$fn__8116.invoke(format.clj:58)
at clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__414.invoke(middleware.clj:24)
at cider.nrepl.middleware.inspect$wrap_inspect$fn__8808.invoke(inspect.clj:79)
at clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__414.invoke(middleware.clj:24)
at clojure.tools.nrepl.middleware.pr_values$pr_values$fn__594.invoke(pr_values.clj:17)
at clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__414.invoke(middleware.clj:24)
at cider.nrepl.middleware.test$wrap_test$fn__9093.invoke(test.clj:203)
at clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__414.invoke(middleware.clj:24)
at cider.nrepl.middleware.stacktrace$wrap_stacktrace$fn__8999.invoke(stacktrace.clj:158)
at clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__414.invoke(middleware.clj:24)
at clojure.tools.nrepl.middleware.session$session$fn__723.invoke(session.clj:192)
at clojure.tools.nrepl.middleware$wrap_conj_descriptor$fn__414.invoke(middleware.clj:24)
at clojure.tools.nrepl.server$handle_STAR_.invoke(server.clj:19)
at clojure.tools.nrepl.server$handle$fn__785.invoke(server.clj:28)
at clojure.core$binding_conveyor_fn$fn__4145.invoke(core.clj:1910)
at clojure.lang.AFn.call(AFn.java:18)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
OK, it looks like you're using cider's pretty-printing. That's fine when in Clojure, but the code that cider uses to implement it cannot be used in ClojureScript. Try disabling REPL pretty printing before interacting with the ClojureScript REPL (M-x cider-repl-toggle-pretty-printing
).
@rterbush If you're using a recent ClojureScript version, you'll need to manually add a dependency to piggieback 0.1.6-SNAPSHOT
- Austin depends on 0.1.5
. See this gist for an example.
@cemerick CIDER now uses the :eval
slot of the :eval
op for pretty printing to wrap the result in a call to pprint
rather than inlining calls to pprint
in the :code
slot, so this actually works with ClojureScript now :-). See here.
@cemerick @cichli Thanks for the feedback. Seems I now have this resolved based on your assistance.
FWIW, I did try toggling off the pprint with the same results. I did find that I needed to go to the clojurescript plugin version shown in the dependency example provided by @cichli . That also required me to specify the version of lein-clojurescript plugin.
For anyone else finding this code path, here is my current profiles.clj file.
{:user {:plugins [[cider/cider-nrepl "0.9.0-SNAPSHOT"]
[com.cemerick/austin "0.1.6"]
[lein-clojurescript "1.1.0"]]
:dependencies [[org.clojure/tools.nrepl "0.2.7"]
[lein-light-nrepl "0.1.0"]
[org.clojure/clojurescript "0.0-3126"]
[com.cemerick/piggieback "0.1.6-SNAPSHOT"]]}}
Thanks for your help
Emacs 24, ; CIDER 0.9.0alpha (package: 20150320.1353) (Java 1.8.0_40, Clojure 1.5.1, nREPL 0.2.7)
After cider-jack-in to create REPL, forms entered at the REPL prompt work fine. After loading austin, any attempt to enter a form hangs. I've also discovered that a C-c C-c at the prompt will break and return java.lang.ThreadDeath. After this action, autocompletion is not working.