dev-tooling

bozhidar 2024-07-19T07:06:46.116239Z

FYI - nREPL 1.3.0-beta2 is out with a lot of internal improvements and a couple of bug-fixes. (see https://github.com/nrepl/nrepl/blob/master/CHANGELOG.md#master-unreleased) Feel free to play with it a bit before the final release. We've been testing it with CIDER's snapshot for a while and no one has reported any issues, but more testers are always welcome.

2024-07-19T13:25:55.546449Z

The replacing of clojure.main/repl for the custom repl implementation breaks http://www.flow-storm.org/ with https://github.com/flow-storm/clojure. So ClojureStorm is a dev compiler, a fork of the official Clojure you can swap at dev time which will emit extra bytecode for instrumentation. The thing is that it provides an "enhanced compiler" but also an "enhanced clojure.main/repl", so after this change it can't provide the "enhanced repl" under nrepl anymore. I'll think a little bit about how to fix this on ClojureStorm side, since I don't think this is nrepl's fault, although nrepl will have to keep track on clojure.main/repl changes to be sure they don't diverge.

2024-07-19T14:10:26.313079Z

Ok, got a fix for it so nevermind

😮 1
🎉 1
2024-07-19T14:20:56.056549Z

the "repl enhancement" was just checking before eval for single keywords like :dbg , :help etc which can be hijacked and used as convenient commands. I just moved this check a little bit forward from clojure.main/repl to the beginning of clojure.lang.Compiler/eval which nrepl will always have to call

👍 1
bozhidar 2024-07-20T05:04:24.768199Z

Good to know this didn’t turn out to be a major issue for you.

oyakushev 2024-07-20T09:21:16.224209Z

Note that it is possible for the client to pass a custom :eval function to nREPL. Not sure if anybody uses that, but there is a possibility. This also means that you can provide (or ask users to provide) your custom :eval function too if you ever need that and if what you are doing becomes incompatible with how nREPL operates.

🙌 1