Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

After loading (cemerick.austin.repls/exec), forms hang at repl prompt #74

Closed
rterbush opened this issue Mar 20, 2015 · 5 comments
Closed

Comments

@rterbush
Copy link

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.

@rterbush
Copy link
Author

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].

@rterbush
Copy link
Author

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)

@cemerick
Copy link
Owner

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).

@cichli
Copy link

cichli commented Mar 21, 2015

@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.

@rterbush
Copy link
Author

@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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants