After starting two inferior lisps (the first with M-x slime, the second with C-u M-x slime), slime-list-connections correctly gives
Nr Name Port Pid Type -- ---- ---- --- ---- 1 allegro (127.0.0.1 33032) 10312 International Allegro CL Enterprise Edition * 2 cmucl (127.0.0.1 33036) 10314 CMU Common Lisp
But hitting RET on the first line doesn't seem to do anything. Hitting 'd' and then RET does the right thing. Also, I get various errors if I do ,restart-inferior-lisp, or even ,sayoonara.
Digging a bit deeper: (slime-process) returns nil when in cmucl's repl, and the reason is probably that the inferior-lisp processes (as given by process-list) are
process: #<process inferior-lisp<1>> pid: 10313 <-- shouldn't this be 10314? process: #<process inferior-lisp> pid: 10312
I use the latest cvs slime with GNU Emacs 21.2.1.
Helmut says multiple connections work for him, so maybe I'm missing something, or it's an emacs version thing.
Andras
Actually, the process-id problem is cmucl and sbcl specific, and comes up even when I use just one connection (started with M-x slime). The first sign of this is that the *inferior-lisp* buffer isn't buried on startup.
But the multiple connection problem seems to come up with lisps (acl, clisp) where the process-id's are fine.
Andras
On Sun, 3 Oct 2004, Andras Simon wrote:
After starting two inferior lisps (the first with M-x slime, the second with C-u M-x slime), slime-list-connections correctly gives
Nr Name Port Pid Type
1 allegro (127.0.0.1 33032) 10312 International Allegro CL Enterprise Edition
- 2 cmucl (127.0.0.1 33036) 10314 CMU Common Lisp
But hitting RET on the first line doesn't seem to do anything. Hitting 'd' and then RET does the right thing. Also, I get various errors if I do ,restart-inferior-lisp, or even ,sayoonara.
Digging a bit deeper: (slime-process) returns nil when in cmucl's repl, and the reason is probably that the inferior-lisp processes (as given by process-list) are
process: #<process inferior-lisp<1>> pid: 10313 <-- shouldn't this be 10314? process: #<process inferior-lisp> pid: 10312
I use the latest cvs slime with GNU Emacs 21.2.1.
Helmut says multiple connections work for him, so maybe I'm missing something, or it's an emacs version thing.
Andras
slime-devel site list slime-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/slime-devel
It looks like I was a to quick with "works for me". It breaks actually in more complicated situations.
I committed various fixes for the problem. slime-pid is now only needed needed for certain communication styles.
M-x slime works now slightly differently. Now we ask whether a new process should be started if there exists already one, even if no prefix argument was given.
SBCL uses native threading and AFAIK Linux threads are actually processes and unix:getpid probably returns just the pid of the thread. At least that's my explanation for the different pids.
Helmut.
On Sun, 3 Oct 2004, Helmut Eller wrote:
It looks like I was a to quick with "works for me". It breaks actually in more complicated situations.
I committed various fixes for the problem. slime-pid is now only needed needed for certain communication styles.
It works great, thanks!
Just two minor usablility issues:
I think that the connections buffer should go away after choosing a connection by hitting RET, and that ,restart-inferior-lisp should reuse the REPL, just as it does in the single connection case (now it creates a new one and there's a dead one floating around). But these are really just quibbles.
[..]
SBCL uses native threading and AFAIK Linux threads are actually processes and unix:getpid probably returns just the pid of the thread. At least that's my explanation for the different pids.
Probably that, and the startup script issue (as Paolo observed). So not relying too much on pids is a good thing, I think. BTW abcl is also using native threads, and so does acl on windows.
Andras