robert-stuttaford / clj-cljs-app

The Unlicense
53 stars 4 forks source link

Not able to start the REPL using Shadow-CLJS #2

Closed matdurand closed 4 years ago

matdurand commented 4 years ago

Hi,

I just tried the repo, and I get the following error in cider cider-connect-clj&cljs (with the make is running in my terminal):

error in process sentinel: Could not start nREPL server: shadow-cljs - config: [path to shadow edn file]
shadow-cljs - connected to server
server already running

Also, from the readme: From Emacs, run the M-x cider-connect-clj&cljs command, and select :shadow when prompted. but I have two choices to make. First I have to select "shadow-cljs" (choosing between clojure-cli and shadow-cljs), and then "shadow". Is that expected ?

I'm using the latest cider 0.26.0.

It's propably a stupid mistake on my part. Sorry if it is...

robert-stuttaford commented 4 years ago

The output I get when I run make:

$ make
clojure -A:cljs:dev clj-run build/run
shadow-cljs - server version: 2.10.21 running at http://localhost:9630
shadow-cljs - nREPL server started on port 9991
Starting app
[:app] Configuring build.
[:app] Compiling ...
[:app] Build completed. (129 files, 0 compiled, 0 warnings, 1,92s)

Could you share yours, for comparison, please?

When running cider-connect-clj&cljs, the sequence of prompts I encounter, are:

Could you share the full sequence of prompts you get, for comparison, please?

It looks like it may have changed with Cider 26. I'm on 25.2 Clojure package and 25 Emacs package.

When I inspect my deps, I see this output:

$ clj -A:cljs -Stree

org.clojure/clojure 1.10.1
  org.clojure/core.specs.alpha 0.2.44
  org.clojure/spec.alpha 0.2.176
refactor-nrepl/refactor-nrepl 2.5.0
cider/cider-nrepl 0.25.2
thheller/shadow-cljs 2.10.21
  org.clojure/data.json 1.0.0
  thheller/shadow-cljsjs 0.0.21
  com.wsscode/pathom 2.2.31
    edn-query-language/eql 0.0.9
    spec-coerce/spec-coerce 1.0.0-alpha6
    com.wsscode/spec-inspec 1.0.0-alpha2
  com.bhauman/cljs-test-display 0.1.1
  io.undertow/undertow-core 2.1.3.Final
    org.jboss.logging/jboss-logging 3.4.1.Final
    org.jboss.xnio/xnio-nio 3.8.0.Final
    org.jboss.threads/jboss-threads 3.1.0.Final
    org.jboss.xnio/xnio-api 3.8.0.Final
      org.wildfly.common/wildfly-common 1.5.2.Final
      org.wildfly.client/wildfly-client-config 1.0.1.Final
  org.graalvm.js/js 20.1.0
    com.ibm.icu/icu4j 66.1
    org.graalvm.regex/regex 20.1.0
    org.graalvm.sdk/graal-sdk 20.1.0
    org.ow2.asm/asm-util 7.1
    org.ow2.asm/asm 7.1
    org.graalvm.truffle/truffle-api 20.1.0
    org.ow2.asm/asm-commons 7.1
    org.ow2.asm/asm-analysis 7.1
    org.ow2.asm/asm-tree 7.1
  expound/expound 0.8.5
  org.clojure/tools.cli 1.0.194
  com.cognitect/transit-cljs 0.8.264
    com.cognitect/transit-js 0.8.861
  org.clojure/google-closure-library 0.0-20191016-6ae1f72f
  org.clojure/clojurescript 1.10.773
  fipp/fipp 0.6.23
    org.clojure/core.rrb-vector 0.1.1
  thheller/shadow-util 0.7.0
  org.clojure/google-closure-library-third-party 0.0-20191016-6ae1f72f
  hiccup/hiccup 1.0.5
  org.graalvm.js/js-scriptengine 20.1.0
  com.cognitect/transit-clj 1.0.324
    com.cognitect/transit-java 1.0.343
      com.fasterxml.jackson.core/jackson-core 2.8.7
      org.msgpack/msgpack 0.6.12
        com.googlecode.json-simple/json-simple 1.1.1
        org.javassist/javassist 3.18.1-GA
  thheller/shadow-client 1.3.3
  org.clojure/tools.reader 1.3.2
  nrepl/nrepl 0.7.0
  com.google.javascript/closure-compiler-unshaded v20200628
    com.google.elemental2/elemental2-core 1.0.0-RC1
    com.google.errorprone/error_prone_annotations 2.3.1
    com.google.jsinterop/jsinterop-annotations 1.0.2
    com.google.javascript/closure-compiler-externs v20200628
    com.google.guava/guava 25.1-jre
      org.codehaus.mojo/animal-sniffer-annotations 1.14
      com.google.j2objc/j2objc-annotations 1.1
      org.checkerframework/checker-qual 2.0.0
      com.google.code.findbugs/jsr305 3.0.2
    args4j/args4j 2.0.26
    com.google.jsinterop/base 1.0.0
    com.google.re2j/re2j 1.3
    com.google.protobuf/protobuf-java 3.11.1
    com.google.code.gson/gson 2.7
  org.clojure/test.check 1.1.0
  hawk/hawk 0.2.11
    net.incongru.watchservice/barbary-watchservice 1.0
      net.java.dev.jna/jna 3.2.2
  cider/piggieback 0.5.0
    javax.xml.bind/jaxb-api 2.3.1
      javax.activation/javax.activation-api 1.2.0
  ring/ring-core 1.8.1
    commons-fileupload/commons-fileupload 1.4
    commons-io/commons-io 2.6
    crypto-random/crypto-random 1.2.0
    ring/ring-codec 1.1.2
      commons-codec/commons-codec 1.11
    crypto-equality/crypto-equality 1.0.0
  org.clojure/core.async 1.2.603
    org.clojure/tools.analyzer.jvm 1.0.0
      org.clojure/tools.analyzer 1.0.0
      org.clojure/core.memoize 0.8.2
        org.clojure/core.cache 0.8.2
          org.clojure/data.priority-map 0.0.7

Can you share the same outputs that I have, for comparison?

Is the error you've shared occurring before or after your attempt to connect from Emacs?

Also, before starting things up, run npm install to ensure that the npm side is in sync?

matdurand commented 4 years ago

Sure!

Here is the output from make:

clojure -A:cljs:dev clj-run build/run
shadow-cljs - server version: 2.10.21 running at http://localhost:9630
shadow-cljs - nREPL server started on port 9991
Starting app
[:app] Configuring build.
[:app] Compiling ...
[:app] Build completed. (129 files, 0 compiled, 0 warnings, 2.00s)

Looks the same as yours ...

But the cider prompts are not the same at all.

  1. Which command should be used? (default clojure-cli). Choices are clojure-cli and shadow-cljs
  2. Select the clojurescript repl type. Choices are figwheel, figwheel-main, figwhell-connected, browser, node, weasel, boot, shadow, shadow-select and custom

I did run npm install before everything else. The error occurs after I select shadow on the second prompt of cider in emacs.

I will try with cider 0.25.2 later on, because it seems to be the culpid...

My dependencies tree looks like this:

org.clojure/clojure 1.10.1
  org.clojure/core.specs.alpha 0.2.44
  org.clojure/spec.alpha 0.2.176
thheller/shadow-cljs 2.10.21
  org.clojure/data.json 1.0.0
  thheller/shadow-cljsjs 0.0.21
  com.wsscode/pathom 2.2.31
    edn-query-language/eql 0.0.9
    spec-coerce/spec-coerce 1.0.0-alpha6
    com.wsscode/spec-inspec 1.0.0-alpha2
  com.bhauman/cljs-test-display 0.1.1
  io.undertow/undertow-core 2.1.3.Final
    org.jboss.logging/jboss-logging 3.4.1.Final
    org.jboss.xnio/xnio-nio 3.8.0.Final
    org.jboss.threads/jboss-threads 3.1.0.Final
    org.jboss.xnio/xnio-api 3.8.0.Final
      org.wildfly.common/wildfly-common 1.5.2.Final
      org.wildfly.client/wildfly-client-config 1.0.1.Final
  org.graalvm.js/js 20.1.0
    com.ibm.icu/icu4j 66.1
    org.graalvm.regex/regex 20.1.0
    org.graalvm.sdk/graal-sdk 20.1.0
    org.ow2.asm/asm-util 7.1
    org.ow2.asm/asm 7.1
    org.graalvm.truffle/truffle-api 20.1.0
    org.ow2.asm/asm-commons 7.1
    org.ow2.asm/asm-analysis 7.1
    org.ow2.asm/asm-tree 7.1
  expound/expound 0.8.5
  org.clojure/tools.cli 1.0.194
  com.cognitect/transit-cljs 0.8.264
    com.cognitect/transit-js 0.8.861
  org.clojure/google-closure-library 0.0-20191016-6ae1f72f
  org.clojure/clojurescript 1.10.773
  fipp/fipp 0.6.23
    org.clojure/core.rrb-vector 0.1.1
  thheller/shadow-util 0.7.0
  org.clojure/google-closure-library-third-party 0.0-20191016-6ae1f72f
  hiccup/hiccup 1.0.5
  org.graalvm.js/js-scriptengine 20.1.0
  com.cognitect/transit-clj 1.0.324
    com.cognitect/transit-java 1.0.343
      com.fasterxml.jackson.core/jackson-core 2.8.7
      org.msgpack/msgpack 0.6.12
        com.googlecode.json-simple/json-simple 1.1.1
        org.javassist/javassist 3.18.1-GA
  thheller/shadow-client 1.3.3
  org.clojure/tools.reader 1.3.2
  com.google.javascript/closure-compiler-unshaded v20200628
    com.google.elemental2/elemental2-core 1.0.0-RC1
    com.google.errorprone/error_prone_annotations 2.3.1
    com.google.jsinterop/jsinterop-annotations 1.0.2
    com.google.javascript/closure-compiler-externs v20200628
    com.google.guava/guava 25.1-jre
      org.codehaus.mojo/animal-sniffer-annotations 1.14
      com.google.j2objc/j2objc-annotations 1.1
      org.checkerframework/checker-qual 2.0.0
      com.google.code.findbugs/jsr305 3.0.2
    args4j/args4j 2.0.26
    com.google.jsinterop/base 1.0.0
    com.google.re2j/re2j 1.3
    com.google.protobuf/protobuf-java 3.11.1
    com.google.code.gson/gson 2.7
  org.clojure/test.check 1.1.0
  hawk/hawk 0.2.11
    net.incongru.watchservice/barbary-watchservice 1.0
      net.java.dev.jna/jna 3.2.2
  cider/piggieback 0.5.0
    javax.xml.bind/jaxb-api 2.3.1
      javax.activation/javax.activation-api 1.2.0
  ring/ring-core 1.8.1
    commons-fileupload/commons-fileupload 1.4
    commons-io/commons-io 2.6
    crypto-random/crypto-random 1.2.0
    ring/ring-codec 1.1.2
      commons-codec/commons-codec 1.11
    crypto-equality/crypto-equality 1.0.0
  org.clojure/core.async 1.2.603
    org.clojure/tools.analyzer.jvm 1.0.0
      org.clojure/tools.analyzer 1.0.0
      org.clojure/core.memoize 0.8.2
        org.clojure/core.cache 0.8.2
          org.clojure/data.priority-map 0.0.7
refactor-nrepl/refactor-nrepl 2.5.0
cider/cider-nrepl 0.25.2
  nrepl/nrepl 0.7.0
matdurand commented 4 years ago

I just tried with cider 0.25 and the result is the same. I'm using Doom Emacs, so maybe it's related. I'm going to try a vanilla emacs later to see if it changes anyway.

robert-stuttaford commented 4 years ago

What version of the Emacs cider package are you using? I suspect that's what's responsible for the prompt structure

matdurand commented 4 years ago

Emacs doom use a package manager which pull packages directly from github. So the cider version I have installed matched this commit, which is close to the latest (https://github.com/clojure-emacs/cider/commit/9e117c2ff34b7a63eee87c8bfa93a800bb94add5)

I also tried the 0.25 tag (https://github.com/clojure-emacs/cider/commit/cb69b6b7e4928452304ae837f1bf8cc001f37072) and the prompt sequence is the same.

The other explanation is that Emacs doom changes cider somehow ... but I don't see anything in the code that would explain the changes in prompt sequence (https://github.com/hlissner/doom-emacs/tree/develop/modules/lang/clojure)

matdurand commented 4 years ago

Damn it I feel so stupid. I was running cider jack-in instead of connect. Wrong shortcut ... Sorry about that.

robert-stuttaford commented 4 years ago

Ahhhh don't worry about it - the main thing is, it's working! :-D Glad you're sorted, and enjoy the happy Cljs REPL workflow!