3 ms·
I have a lot more experience with common lisp, but currently doing AOC with Clojure right now to try and position myself better for my dream job where I can wor
by beepbooptheory 3y ago
I have a lot more experience with common lisp, but currently doing AOC with Clojure right now to try and position myself better for my dream job where I can work with any kind of lisp. Thought I could maybe ask a quick question I have been having trouble answering? I find that with emacs/cider any evaluation is blocking. I am a little spoiled on SLIME/SLY, where it has the nice baked-in feature that any evaluation you do interactively becomes its own process and you can carry on evaluating other things if the process is long running. Is there any way I can replicate this in clojure? Is it just a matter of using `future` explicitly? Or is there something I am missing with cider?
- Volundr 3y agoIf you want a long running calculation to not block the REPL you'd need to use a future, or some other method to get it off the REPL thread. I don't remember what your describing being a feature of SLIME, but it's been 10+ years so I may just not remember.
- monsieurbanana 3y agoI don't think you are missing anything, I am not aware of anything that would automatically launch new threads when evaluating something. That does seem like an interesting, although in practice I rarely have to evaluate something that would take more than a a couple of seconds, so manually wrapping it in a future seems acceptable. On a semi-related note, sometimes I mistakenly evaluate something that will take a long time, or there's a bug and I'm stuck in an infinite loop. CIDER has a command to interrupt the on-going evaluation but I'm my experience it only works about half the time. In those cases having it wrapped in a future would certainly be helpful.