peroksid
peroksid

Reputation: 927

How to load ASDF system defined in local source code into remote lisp? I use SBCL, Slime and Swank

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?

Upvotes: 1

Views: 618

Answers (1)

Dan Robertson
Dan Robertson

Reputation: 4360

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.

Upvotes: 3

Related Questions