14

私の表面的な理解は、「swank-clojure」が「Mx slime-connect」を可能にするということです。つまり、「lein swank」のような clojure サーバーへの接続を提供します。私の理解は正しいですか?そうでない場合、スワンクの目的は何ですか?

それでは、他の Lisp のような実装のための「swank-SOMETHING_ELSE」はありますか? たとえば、swank-clisp?

「Mx slime」で SLIME/Clojure を使用するには、「swank-clojure」が必要ですか?

追加した

このリンクはかなり便利だと思いました。

4

4 に答える 4

32

SLIME と swank は、lisp プログラムを実行およびデバッグするためのクライアント サーバー アーキテクチャを形成します。SLIME は emacs のフロントエンドで、swank はバックエンドです。その間に、ネットワーク ソケットを作成し、メッセージ (S 式) を介して送信することで通信します。要するに、これは emacs と実際の Lisp バックエンドの間の単なる RPC メカニズムです。

スライムとスワンクが別々で、ネットワークを介して接続され、rpc メッセージを介して通信するという事実は、それらがどこにいてもよいことを意味します。そのため、スライムはリモート ホスト/ポートに接続してスワンクすることができます。あなたが見る他のすべてのフォーム(lein swankなど)は同じことをします. 彼らは、スライムのリモート接続を可能にするポートでスワンクを開始します。

swank-clojure は swank の clojure ポートです。もともと swank-clojure には、swank-clojure.el というヘルパー elisp ファイルが付属していました。このファイルの役割は、クラスパスや jvm パラメータなどの swank パラメータを手動で設定できるようにすることでした。lein などの他のツールが後に登場したため、swank-clojure.el は廃止されました。しかし、それはまだhttp://github.com/vu3rdd/swank-clojure-extraにあり、lein プロジェクトで swank を開始できるようにする Mx swank-clojure-project を提供します。

SLIME は Common Lisp に由来する (そして現在も活発に開発されている) ことに注意してください。実際、swank の clojure ポートには、オリジナルの SLIME/swank バージョンが享受していた機能のサブセットしかありません。SLIME は、Common Lisp のすべての主要なバリアントに対して存在します。Scheme48 用に部分的に移植されています。contrib ディレクトリの下に利用可能な部分的な実装がいくつかあります。

swank がすでにポートで実行されていることがわかっている場合は、slime-connect を使用してください。プロジェクトでスライムを使いたいだけなら、swank-clojure-project と lein swank が適しているようです。

于 2010-08-23T20:25:14.970 に答える
6

swank-clojure.el廃止されました。使用しないでください。

ファイルのdev-dependenciesに必要slime.elであり、必要です。swank-clojure "1.2.1"project.clj

Swank は基本的に、slime を使用して emacs から接続するサーバーです。実行中の Lisp プロセスで実行したいものを emacs から渡します。

M-x slime-connectで開始した後、swank サーバーに接続するには を使用する必要がありますlein swank

于 2010-08-23T19:49:50.790 に答える
2

Swank は、emacs SLIME や Macintosh 用の MCLIDE Lisp 開発環境などの swank クライアントに対応するサーバーです。Swank サーバーは、多くの Common Lisp 実装と、Clojure や Gambit/scheme などの Lisp 方言用に存在します。

于 2010-08-24T00:46:47.787 に答える
1

私の理解では、slime は emacs 部分 (クライアント)、swank は common lisp 部分 (サーバー)、swank-clojure は swank サーバーの clojure 実装であり、オリジナルではありません。

于 2010-08-23T19:49:13.687 に答える