Thanks very much to all who answered my questions. The ssh tunnelling does
work. Earlier, it was failing for me, but the cause must have been something else.
I think everyone misinterpreted my second question, however. The server that runs
swank does not have any files on it. I suppose I could use tramp to write a file to
the server host, and then load it with a separate Lisp command. I was thinking there
might be a Slime command that takes a local file, ships it over to the swank machine
and then makes the Lisp there compile or load it.
Thanks again.
bob
> 1. The code in swank.lisp listens on port 127.0.0.1, which means I cannot
> connect to my Lisp server from a remote machine. I must log in to the host
> it's running on and then specify "localhost" when I execute slime-connect
> in
> Emacs. If swank is running on host "foo", why doesn't it bind its
> listening
> socket with foo's address?
Well that wold be a huge security hole, you would be running a lisp
process anyone can connect to. You should use SSH forwarding if you
want to connect to a remote swank.
Like:
ssh -L 4005:localhost:4005 my-webserver.com
> 2. I modified swank.lisp so the server code binds its listening connection
> socket with foo's address. Now I can connect from a remote machine. Is
> there
Well - now you have a huge security hole on that server ...
> any convenient way to send whole files across the Slime connection? The
> Lisp running the swank server has no NFS access to the machine I'm running
> Emacs on. I'd like to be able to edit files on the Emacs side and send
> then
> whole to the Lisp running swank.
Well without an NFS mount you can do it by using tramp for GNU Emacs
or XEmacs, it should allow you editing files on a remote machine that
you have ssh access to.
You should set proper:
slime-translate-from-lisp-filename-function
slime-translate-to-lisp-filename-function
So they would convert from tramp filename to the slime relative
filename and back.
Ignas