2017-11-30 6 views
1

私のラップトップにはシンプルなASDFシステムがあります。私は「M-X slime-load-system」を行うことができ、それがロードされます。私は、パッケージの1つによってエクスポートされた関数を呼び出すことができます。ローカルソースコードで定義されたASDFシステムをリモートのlispにロードするには?私はSBCL、スライムとスワンクを使用します

私はローカルでのEmacsの別のインスタンスを実行し、スライム接続とリモートスワンクに接続し、システムをロードすると、私が手に:私が達成しようとしています何

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 

はロードする機能ですリモートのlispへのシステム、コードのローカル編集、リモートのlispでのコンパイル/ロード。

ソースコードを〜/ common-lisp /にリモートシステムでrsyncすると、slime-load-systemが動作します。それは問題ありませんが、この追加のステップは正しいとは思いません。

rsyncingなしで動作させるにはどうすればよいですか?

+0

1つのオプションは、ネットワークファイルシステム(sshfs、nfs)を持つことです。 – coredump

+0

私はこの問題を理解しようとしています。もしこれが正しいのか間違っているのかを教えてください:リモートシステムを持っていて 'sbcl'を' sbcl @ remote'と実行していて 'localhost:〜/ common-lisp/foo/foo.asd'。あなたは 'sbcl @ remote'で実行しているswankを設定し、あなたのlocalhostから接続します。そしてあなたが望むのは、あなたのローカルのEmacsに行き、あなたのローカルマシン上のシステムに行き、あなたのEmacsにスワンクを使ってローカルシステムをロードするためにリモートイメージを伝えることです。 –

+0

@ダンロバートソンはい、正確に。 – peroksid

答えて

3

Asdfはパス名で動作するため、ローカルシステムのファイルを参照するリモートシステム上のパス名を作成できない場合は、そのシステムをロードできません。私はあなたがそのようなパス名を作ることを可能にするLispを知らないので、他のものを設定する必要があると思います。私の推奨は、あなたのローカルシステム上のファイルにリモートシステムが透過的にアクセスできるようにするために、sshfsなどを使用することです。

関連する問題