I often find my self starting some long running process from the REPL and then wish I could carry on using the REPL for other tasks while it was running. Can I use slime to background the current thread or start a new REPL control thread? Starting an additional REPL buffer would be fine as well.
Can I background a running thread in the Slime (Swank Emacs)
443 views Asked by Arthur Ulfeldt At
3
There are 3 answers
0
Alex Stoddard
On
Please forgive me for a somewhat trite and non-slime specific answer; on the upside it will work with any clojure REPL.
When I know in advance I am starting a long running task from the REPL then I start the computation using future and check with future-done? before deref-ing it.
0
Matthias Benkard
On
This might not answer your question, but it might be helpful to realize that as long as (slime-communication-style) is :spawn, evaluations done using C-x C-e always spawn their own thread and can run in parallel to whatever is happening in the REPL thread. Output (from println etc.) will appear in the REPL buffer.
Related Questions in EMACS
- How can I make 'emacsclient' open in native fullscreen every time I launch it from the terminal in macOS?
- emacsclient does not connect inside ubuntu container
- Emacs use .emacs by default instead .emacs.d/init.el
- Setting up Macaulay 2 on emacs
- org-mime add caption to exported images
- Use the same export attribute for all src-blocks
- Tags Development Tools
- Emacs 29.2 unable to find theme file
- How to automatically allow the execution of code action from HLS in emacs?
- Org-babel remote inline images with TRAMP not exporting in org export
- find and replace regex like that can deal with nested brackets
- Inheriting from variadic types messes up template member function indentation in Emacs
- Invoking org-store-link interactively, errors on calling org-man-store-link
- Disable session save in doom emacs
- How do you connect to a remote emacs server using Microsoft dev tunnels
Related Questions in CLOJURE
- SSE implementation in Pedestal using individual channel per user
- Within a Clojure project using deps.edn, where is the package name and version tracked?
- How can I update and iterate the sub maps and update map into different location of map at the same time in clojure
- Out of memory in clojure - Nested reduce on Lazy Sequence
- Mac OS X - Brew installed Leiningen permission error / wrong directory
- Consume SpiceDB LookupResources gRPC stream from Clojure using Java gRPC library
- Server sent events in pedestal returns empty response
- How to make quarkus find my Clojure classes?
- Looking for a Clojure/LISP equivalent to Scons
- lazily calling functions for infinite sequence clojure
- Issue with Kafka in Clojure Repl for Arm64 M1
- Unable write parser where the AST can be turned into Clojure code
- Naming convention for simbol of clojure.core/atom, like !foo in Clojure
- How to nest a sequence of layered steps?
- How to type hint a float?
Related Questions in LISP
- How to copy and paste an autocad table using python
- common lisp type vector of fixnums
- LISP to Batchplot (Publish) Multiple .dwg Models into One PDF
- Make changes to a LISP code for AutoCAD, it is possible?
- FeatureLines civil3d
- Detecting shared structure in tree made of cons cells
- How to load FRL into Clisp?
- Scheme Question - How can I check if there are a list of pairs
- do v. do*: Why does the same code produce a different result?
- undefined variable: COMMON-LISP:PROGN when running DO
- Making an SBCL program stop
- Getting arguments from the command line within SBCL
- "undefined variable: COMMON-LISP-USER::PRIMELIST" warning, using SBCL
- Counting vowels in Lisp
- Exercise 12.10 from the book Scheme and the art of programming
Related Questions in SLIME
- M-x slime [No match]
- How do I write a string to the Slime REPL's input buffer?
- How to add evaluated results to 2d list
- Change display of floating point values in debugger
- Getting 'Wrong Number of Arguments' Error when Loading Lisp File in Docker Container
- Trouble Running Lisp Script in Emacs with SBCL
- SLIME in Emacs not working with Lisp in Docker container
- Passing SBCL options to slime?
- Loading a library via CFFI under swank/slime
- Suppressing the Debugger in SBCL with Emacs and SLIME?
- How to require .el file when working with common lisp?
- How can I exit a program running in the repl in common lisp?
- PyShell and IPython are showing an extra indentation that is not there
- Slime-autodoc does not work anymore after use of ASDF (Emacs, SBCL, Common Lisp)
- When I reset Slime, recompile and reinstall packages - why?
Related Questions in SWANK
- What should g:slimv_swank_cmd be to run SLIMV for SBCL on Windows 10?
- Navigating to the definitions of `defun` and `defmacro` with slime/swank
- How to get the filename where a function is defined in Common Lisp?
- When using SLIME within Emacs: How do I reset the path to swank-loader.lisp?
- How to run swank of slime with clisp without dump?
- Connecting to remote swank: can't locate module swank-io-package::swank-trace-dialog
- How to interact with a Swank server at a low level with telnet?
- How to load ASDF system defined in local source code into remote lisp? I use SBCL, Slime and Swank
- How can *standard-input* and *standard-output* be redirected to another PTY, FIFO or socket?
- Slimv: Evaluation aborted on <unknown reason>
- swank server *swank-debugger-condition*
- How to reinitialise swank?
- lexical binding lost when switching package
- Interact with a locally long-running Common Lisp image, possibly daemonized, from the command line
- SLIME and SWANK Fail on a MIPS Architecture
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Edit:
Hm, I somehow managed to miss the Clojure tag on your question. I would be very suprised if the solution below worked for Clojure, since, as you probably know, the Clojure community unfortunately (at least for those of us using Clojure and CL) maintains its own version of Slime. I won't delete the answer, because it might be helpful for CL programmers searching for this functionality.
Unless there is a similar solution for Clojure, which allows multiple REPLs multiplexed over a single socket, you could maybe just start a second Swank server by hand (from the
*inferior-lisp*buffer) and connect to it viaslime-connectas a workaround. (Can't test this ATM, since I stopped using Slime with Clojure a while ago.)Did you try the
slime-mreplcontrib? I have not actually used it myself, but a quick test worked for me under CCL/Win/Emacs 24.I tested it like this:
M-x slime, enter(sleep 10)in the REPL, switch buffer,M-x slime-new-mrepl.