Fork me on GitHub
#clojurescript
<
2022-12-02
>
grav21:12:30

Very odd. When I try out the official https://clojurescript.org/guides/quick-start#clojurescript-compiler example, I get a StackOverflow error instead of a repl 😢

grav21:12:23

It takes around 20 seconds before the error appears

grav21:12:42

$ clj -M --main cljs.main --compile hello-world.core --repl
Execution error (StackOverflowError) at (REPL:1).
null

Full report at:
/tmp/clojure-7985478885135774375.edn

grav21:12:22

This works, though:

clj -M -m cljs.main --repl-env node
Scratch that - in this case, the repl shows up, but when running any expression (eg 42) I get the same StackOverflowError.

p-himik21:12:00

Hmm. What's the stacktrace? What versions are you using?

grav21:12:14

$ clj --version
Clojure CLI version 1.11.1.1200

$  cat /tmp/clojure-432607213655582230.edn
{:clojure.main/message
 "Execution error (StackOverflowError) at (REPL:1).\nnull\n",
 :clojure.main/triage
 {:clojure.error/class java.lang.StackOverflowError,
  :clojure.error/phase :execution},
 :clojure.main/trace
 {:via
  [{:type java.lang.StackOverflowError,
    :at [clojure.core$concat$fn__5558 invoke "core.clj" 727]}],
  :trace
  [[clojure.core$concat$fn__5558 invoke "core.clj" 727]
   [clojure.lang.LazySeq sval "LazySeq.java" 42]
   [clojure.lang.LazySeq seq "LazySeq.java" 51]
   [clojure.lang.RT seq "RT.java" 535]
   [clojure.core$seq__5467 invokeStatic "core.clj" 139]
   [clojure.core$concat$fn__5558 invoke "core.clj" 727]
   [clojure.lang.LazySeq sval "LazySeq.java" 42]
   [clojure.lang.LazySeq seq "LazySeq.java" 51]
   [clojure.lang.RT seq "RT.java" 535]
   [clojure.core$seq__5467 invokeStatic "core.clj" 139]

p-himik21:12:12

That's truncated though - there's no start there.

grav21:12:19

Hm, not sure what you mean? I removed the tail of it, as it repeats itself till the end of the logfile

p-himik21:12:41

It can't repeat itself fully - there's a start at the very bottom.

p-himik21:12:47

The code above shows the end of it, not the start.

grav21:12:51

The end of the stacktrace you mean? Or the end of the file?

p-himik21:12:07

The start of the stacktrace is at the end of the file. :)

grav21:12:31

Yeah, this is the end of the file 🙂

[clojure.lang.RT seq "RT.java" 535]
   [clojure.core$seq__5467 invokeStatic "core.clj" 139]
   [clojure.core$concat$fn__5558 invoke "core.clj" 727]
   [clojure.lang.LazySeq sval "LazySeq.java" 42]
   [clojure.lang.LazySeq seq "LazySeq.java" 51]
   [clojure.lang.RT seq "RT.java" 535]
   [clojure.core$seq__5467 invokeStatic "core.clj" 139]
   [clojure.core$concat$fn__5558 invoke "core.clj" 727]
   [clojure.lang.LazySeq sval "LazySeq.java" 42]
   [clojure.lang.LazySeq seq "LazySeq.java" 51]
   [clojure.lang.RT seq "RT.java" 535]
   [clojure.core$seq__5467 invokeStatic "core.clj" 139]
   [clojure.core$concat$fn__5558 invoke "core.clj" 727]
   [clojure.lang.LazySeq sval "LazySeq.java" 42]
   [clojure.lang.LazySeq seq "LazySeq.java" 51]
   [clojure.lang.RT seq "RT.java" 535]
   [clojure.core$seq__5467 invokeStatic "core.clj" 139]
   [clojure.core$concat$fn__5558 invoke "core.clj" 727]
   [clojure.lang.LazySeq sval "LazySeq.java" 42]
   [clojure.lang.LazySeq seq "LazySeq.java" 51]
   [clojure.lang.RT seq "RT.java" 535]
   [clojure.core$seq__5467 invokeStatic "core.clj" 139]
   [clojure.core$concat$fn__5558 invoke "core.clj" 727]
   [clojure.lang.LazySeq sval "LazySeq.java" 42]
   [clojure.lang.LazySeq seq "LazySeq.java" 51]
   [clojure.lang.RT seq "RT.java" 535]
   [clojure.core$seq__5467 invokeStatic "core.clj" 139]
   [clojure.core$concat$fn__5558 invoke "core.clj" 727]
   [clojure.lang.LazySeq sval "LazySeq.java" 42]
   [clojure.lang.LazySeq seq "LazySeq.java" 51]
   [clojure.lang.RT seq "RT.java" 535]
   [clojure.core$seq__5467 invokeStatic "core.clj" 139]
   [clojure.core$concat$fn__5558 invoke "core.clj" 727]
   [clojure.lang.LazySeq sval "LazySeq.java" 42]
   [clojure.lang.LazySeq seq "LazySeq.java" 51]
   [clojure.lang.RT seq "RT.java" 535]
   [clojure.core$seq__5467 invokeStatic "core.clj" 139]
   [clojure.core$concat$fn__5558 invoke "core.clj" 727]
   [clojure.lang.LazySeq sval "LazySeq.java" 42]
   [clojure.lang.LazySeq seq "LazySeq.java" 51]
   [clojure.lang.RT seq "RT.java" 535]]}}

grav21:12:59

So not much information there, as far as I can gather.

p-himik21:12:43

Uhm... weird. I don't think I've seen something like that before. But that stacktrace is definitely truncated by something since it can't just start at RT.java:535.

grav21:12:54

True. It's quite weird that a simple hello-world example doesn't work. I've been developing ClojureScript with that setup using Shadow-CLJS for quite a while. Now I wanted to go down to the basics, and just get a cljs repl in the simplest possible way

p-himik22:12:12

Does a plain CLJ REPL work?

grav22:12:24

Yes, that works

grav22:12:38

Maybe I should try another version of cljs.

grav22:12:40

Ha, there it was. I was running Java8. Changing that to a newer version fixed it

👍 1