[slime-devel] Re: Evaluate forms from within Lisp buffers and displaying the result in the REPL

Bill Clementson billclem at gmail.com
Thu Apr 26 15:36:08 UTC 2007


On 4/26/07, Tobias C. Rittweiler <tcr at freebits.de> wrote:
> "Bill Clementson" <billclem at gmail.com> writes:
>
> > [...] As I see it, there may be 3 different types of "new" repl's that
> > one could want to have [...]:
> >
> > #1: You want to "play around" with some ideas but don't want to "muck
> > up" your existing lisp environment and repl. In that case, you
> > probably want to start up a new lisp instance and test things in a
> > completely independent repl. When I do "M-x slime" multiple times (and
> > say "n" to the "Create an additional *inferior-lisp*?" prompt), that
> > is exactly what I get - multiple lisp instances with a separate repl
> > for each one.
>
> I think you meant pressing `y' rather than `n' on the "Create an
> additional *inferior-lisp*?" prompt, as `n' is more or less (maybe even
> exactly) tantamount to ,restart-inferior-lisp on the REPL.

Yes, you're right - I meant "y".

> > #2: You want to have multiple repl's on the same lisp instance (with
> > each repl sharing the repl history and */**/***/etc values). [...]
> >
> > (defun slime-new-repl ()
> >  "Create additional REPL for the current Lisp connection."
> >  (interactive)
> >  (if (slime-current-connection)
> >      (let ((port (slime-connection-port (slime-connection))))
> >       (slime-eval `(swank::create-server :port ,port))
> >       (slime-connect slime-lisp-host port))
> >      (error "Not connected")))
> >
> > and just do "M-x slime-new-repl" whenever you wanted a new repl. [...]
> >
> > #3: You want to have multiple repl's on the same lisp instance (with
> > each repl having it's own repl history and */**/***/etc values). I
> > thought that it was possible to do this at one time with SLIME;
> > however, I just had a play and I don't think there is any way that you
> > can currently do this in SLIME.
>
> It may be possible to do it similiarly to your above function, but
> making CL:*, CL:**, CL:*** &c thread-local.

I think there's probably more work involved in making the repls
completely independent, but that would be a start.

- Bill



More information about the slime-devel mailing list