This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2024-06-10
Channels
- # announcements (1)
- # babashka-sci-dev (16)
- # beginners (5)
- # calva (3)
- # cider (42)
- # clojure (103)
- # clojure-europe (79)
- # clojure-nl (2)
- # clojure-norway (17)
- # clojure-sweden (2)
- # clojure-uk (8)
- # clojurescript (7)
- # community-development (7)
- # core-async (1)
- # core-typed (18)
- # cursive (9)
- # data-science (1)
- # dev-tooling (14)
- # events (1)
- # fulcro (2)
- # hugsql (2)
- # hyperfiddle (1)
- # leiningen (7)
- # malli (11)
- # re-frame (14)
- # releases (9)
- # ring (18)
- # shadow-cljs (55)
I was using the latest EAP and I hit a bug that looped hard and emitted exceptions. The REPL consumed all available CPU, and the IDE became unresponsive. I downgraded to the non-EAP, and when I hit that same bug in my code scrolling is WAY faster and it is better in terms of the IDE not crapping out. I noticed that there’s an attempt to decide when to auto-scroll now (the button controlling scroll on output is gone in the EAP)…I found that change both helpful and annoying. I’d actually still like the option to choose…but anyway, I think perhaps the new code for scrolling is somehow WAY more CPU intensive.
Hmm, that’s unfortunate. The scrolling button regression is fixed for the next EAP (https://github.com/cursive-ide/cursive/issues/2911), but the performance is a shame. I had hoped it would be an improvement, and I’ve had one report that it seemed faster, but I haven’t had a chance to properly test it yet.
The new REPL panel is definitely an immense performance improvement when it comes to printing a single value, which is thousands of lines long. If u flood the REPL with output and that affects the scroll speed, that’s unfortunate, but it’s not a common mode of operation IMHO. What might help though in the meantime, if u reduce the scrollback buffer line count.
If you evaluate (cycle [1])
and then click "Interrupt Current Evaluation" it says "Evaluation interrupted." and it appears as though it is, but there will nonetheless be a java process taking >100% CPU which when force quitted closes the REPL, so I don't think "Interrupt Current Evaluation" necessarily works.
Which JVM version are you using? Recent versions have deprecated and finally removed Thread.stop(), which this uses under the hood. There’s a bunch of discussion and a proposed new solution for nREPL here: https://github.com/nrepl/nrepl/issues/296
openjdk-21.0.1 I just tried with openjdk-19.0.2 and indeed it does stop
will adding :jvm-opts ["-Djdk.attach.allowAttachSelf"]
to a deps alias sort it out ?