1

I have a simple ASDF system at my laptop. I can do "M-X slime-load-system ", and it loads. I can call a function exported by one of packages.

When I run another instance of Emacs locally, and connect to the remote Swank with slime-connect, and load the system, I get:

Component "<system-name>" not found
   [Condition of type ASDF/FIND-SYSTEM:MISSING-COMPONENT]

Restarts:
 0: [RETRY] Retry ASDF operation.
 1: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the configuration.
 2: [ABORT] Abort compilation.
 3: [*ABORT] Return to SLIME's top level.
 4: [ABORT] abort thread (#<THREAD "repl-thread" RUNNING {100346E7C3}>)

Backtrace:
  0: ((:METHOD ASDF/OPERATE:OPERATE (SYMBOL T)) ASDF/LISP-ACTION:LOAD-OP "<system-name>") [fast-method]
...
and more

What I am trying to achieve is the ability to load the system to remote lisp, edit code locally, and compile/load it in remote lisp.

If I rsync the source code to ~/common-lisp/ at the remote system, slime-load-system works. It's fine, but it does not feel right, this additional step.

How do I make it work without rsyncing?

Ehvince
  • 17,274
  • 7
  • 58
  • 79
peroksid
  • 890
  • 6
  • 17
  • One option is to have a network filesystem (sshfs, nfs). – coredump Nov 30 '17 at 12:45
  • So I’m trying to understand the problem. Let me know if this is right/wrong: you have some remote system, and are running `sbcl` on it, say `sbcl@remote`, and you have a system in say `localhost:~/common-lisp/foo/foo.asd`. You set up swank running on `sbcl@remote` and connect to it from your localhost. And what you want is to go to your local Emacs and go to the system on your local machine and tell your Emacs to use swank tell the remote image to load the local system? – Dan Robertson Nov 30 '17 at 12:48
  • @DanRobertson yes, exactly. – peroksid Dec 01 '17 at 00:34

1 Answers1

3

Asdf works on pathnames, so if you can’t make a pathname on your remote system referring to the files on your local system, then you can’t load that system. I don’t know of any Lisp that lets you make such pathnames, so I think you’ll need to set something else up. My recommendation is that you use sshfs or something similar to allow your remote system to transparently access files on your local system.

Svante
  • 50,694
  • 11
  • 78
  • 122
Dan Robertson
  • 4,315
  • 12
  • 17