Fork me on GitHub
#cider
<
2018-05-26
>
jsa-aerial21:05:22

Well, I tried that and several other variations on the basic theme - nothing works. I'm rather surprised since that issue looks basically exactly the same problem. I'm not really sure what to try next...

jsa-aerial21:05:25

Trying again - I think this is important enough to send to the channel as well. OK, I've figured this out. The primary problem is that cider.nrepl commits the cardinal sin of having side effects in top level code. There's no way that will ever work in a compiled scenario if the name space is required anywhere at compile time (in particular in a ns form). While the documented hack does not have it so required, it really should state you cannot have it required anywhere

bozhidar06:05:48

Can you elaborate on this?

bozhidar06:05:01

Not sure which side effects are you referring to.

jsa-aerial17:05:03

Take a look at how and when delayed-handlers is updated, and also that cider-nrepl-handler is built as side-effecting top level form

bozhidar23:05:51

Got it. Can you please file a ticket with your findings, so we won’t forget to look into them?

jsa-aerial17:05:06

OK, it is submitted - #533

bozhidar07:05:27

There were some changes in 0.15 to make the middleware load lazily.

voltecrus09:05:01

Greetings! With cider-eval-last-sexp if an exception occurs cider catches it and puts it in a specialized buffer. However, when an exception occurs on the outside(let's say a webserver request fails), the exception just gets printed to the repl which are hard to browse. Is that an expected behavior or a problem with my configuration? If it is the latter, I would appreciate pointers to where I'd be able to troubleshoot it.

kurt-o-sys10:05:31

I just updated cider in spacemacs... and when I try to start cider-jack-in-cljs, I get:

Starting nREPL server via lein update-in :dependencies conj \[org.clojure/tools.nrepl\ \"0.2.13\"\ \:exclusions\ \[org.clojure/clojure\]\] -- update-in :dependencies conj \[cider/piggieback\ \"0.3.5\"\] -- update-in :plugins conj \[refactor-nrepl\ \"2.4.0-SNAPSHOT\"\] -- update-in :plugins conj \[cider/cider-nrepl\ \"0.18.0-SNAPSHOT\"\] -- repl :headless :host ::...
nREPL server started on 43221
[nREPL] Establishing direct connection to localhost:43221 ...
[nREPL] Direct connection to localhost:43221 established
Connected.  Code big!
error in process filter: user-error: ClojureScript is not available.  See  for details
error in process filter: ClojureScript is not available.  See  for details
What am I doing wrong?

kurt-o-sys10:05:59

ls .emacs.d/elpa/cider-
cider-20180526.8/                cider-eval-sexp-fu-20160907.100/ 

dominicm11:05:06

@kurt-o-sys does your lein project have clojurescript?

kurt-o-sys11:05:40

It does, mies template

kurt-o-sys11:05:38

it's only after the update to cider-20180526.8 that cljs doesn't seem to be available anymore

kurt-o-sys11:05:44

java version: 9.0.7.1 (same issue with java8)

bozhidar11:05:59

@kurt-o-sys Let me check. Today I updated this bit of code and perhaps I made some mistake.

kurt-o-sys11:05:30

🙂 - well, it was about 1-2 hours ago that I got that update...

bozhidar11:05:46

Yeah, I saw the mistake I made.

kurt-o-sys11:05:04

btw, there's another thing, not sure if it's related to cider or not: when I use cider-jack-in-clojurescript in org-mode, it seems only the first line is evaluated (that used to be different, but somehow, now, I can't execute a cljs code block - clj code blocks are not a problem)

kurt-o-sys11:05:13

(unless (cider-library-present-p "org.clojure/clojurescript")?

bozhidar11:05:32

Yeah, that’s the bit of code.

kurt-o-sys11:05:58

oh, yeah, and cider-library-present-p...

bozhidar11:05:09

There’s a bug in the code that parses the classpath to extract the library info from it.

bozhidar11:05:30

I just committed a small temp fix (remove org.), until I fix the parsing.

kurt-o-sys11:05:56

ok... let's try

bozhidar11:05:09

And you can always set cider-check-cljs-repl-requirements to nil.

kurt-o-sys11:05:43

right... will try that 🙂

kurt-o-sys12:05:29

so, setting cider-check-cljs-repl-requirements to nil works fine... (well, emacs org mode still only evals the first line of a code block only, but well... it's a start)

orestis13:05:26

I’ve added a custom pprint method to clojure.pprint/pprint — I can verify that it works when I call (clojure.pprint/pprint my-thing), but not in the cider overlay, i.e. when I do cider-eval-last-sexp.

orestis13:05:13

This is with version Andalucia — here’s my conf:

(setq cider-pprint-fn 'pprint)
  (setq cider-repl-use-pretty-print t)

kurt-o-sys14:05:50

another question @bozhidar: It seems that ever after I can choose the cljs execution environment, source code blocks from org-mode are not fully executed anymore - only the first line. Can there be any relationship here (being, when I run 'execute source code block' in org-mode, only the first line is sent to the repl for some reason)?

jsa-aerial21:05:22

Well, I tried that and several other variations on the basic theme - nothing works. I'm rather surprised since that issue looks basically exactly the same problem. I'm not really sure what to try next...

jsa-aerial21:05:25

Trying again - I think this is important enough to send to the channel as well. OK, I've figured this out. The primary problem is that cider.nrepl commits the cardinal sin of having side effects in top level code. There's no way that will ever work in a compiled scenario if the name space is required anywhere at compile time (in particular in a ns form). While the documented hack does not have it so required, it really should state you cannot have it required anywhere