「Swank-Clojure」は正確に何をしていますか、そして「Swank-something_else」がありますか?
質問
私の表面的な理解は、「スワンククロジュア」が「MXスライム接続」を可能にするということです。つまり、Clojureサーバーへの「Lein Swank」のような接続を与えます。私の理解は正しいですか?そうでない場合、スワンクの目的は何ですか?
では、他のLISPのような実装のための「Swank-someThing_else」はありますか?たとえば、Swank-Clisp?
「MX Slime」でSlime/Clojureを使用するために「Swank-Clojure」が必要ですか?
追加した
私はこれを見つけました リンク かなり便利です。
解決
SlimeとSwankは、LISPプログラムを実行およびデバッグするためのクライアントサーバーアーキテクチャを形成します。 SlimeはEmacs Frontendで、Swankはバックエンドです。その間に、それらはネットワークソケットを作成し、メッセージ(S-Expressions)を越えて送信して通信します。要するに、それはEMACSと実際のLISPバックエンドの間のRPCメカニズムにすぎません。
SlimeとSwankが別々であるという事実は、ネットワーク上で接続されており、RPCメッセージを介して通信することは、どこにでもいることができることを意味します。そのため、スライムはリモートホスト/ポートに接続してスワンクできます。あなたが見る他のすべての形(レイン・スワンクなど)は同じことをします。彼らはスライムのリモート接続を可能にするポートに焦点を当て始めます。
Swank-ClojureはSwankのClojure港です。もともとSwank-Clojureには、Swank-Clojure.elというヘルパーElispファイルが付属していました。このファイルの仕事は、クラスパス、JVMパラメーターなどのスワンクパラメーターの手動セットアップを有効にすることでした。Leinのような他のツールが後で登場したため、Swank-Clojure.elは非推奨でした。しかし、それはまだ上にあります: http://github.com/vu3rdd/swank-clojure-extra また、LeinプロジェクトでSwankを開始できるMX Swank-Clojure-Projectを提供します。
スライムは、一般的なLISPに由来している(そしてまだ積極的に開発されている)ことに注意する必要があります。 SwankのClojureポートには、元のSlime/Swankバージョンが享受している機能のサブセットのみがあります。スライムは、一般的なLISPのすべての主要なバリエーションに存在します。スキームには部分的なポートがあります48。 Contribディレクトリの下でいくつかの部分的な実装があります。
Swankがすでにポートで実行されていることがわかっている場合は、Slime-Connectを使用してください。プロジェクトでSlimeを使用したい場合は、Swank-Clojure-ProjectとLein Swankが行く方法のようです。
他のヒント
swank-clojure.el
非推奨です。使用しないでください。
あなたが必要です slime.el
そして、あなたは持っている必要があります swank-clojure "1.2.1"
あなたの開発者に依存します project.clj
ファイル。
Swankは基本的に、Slimeを使用してEmacsから接続するサーバーです。それは、それが実行されているLISPプロセスによって実行したいものをemacsから通過しました。
使用する必要があります M-x slime-connect
で始めた後、スワンクサーバーに接続する lein swank
.
Swankは、Emacs SlimeやMacintoshのMclide Lisp Development環境など、Swankクライアントのサーバーのカウンターパートです。 Swankサーバーは、多くの一般的なLISP実装やClojureやGambit/SchemeなどのLISP方言に存在します。
私の理解では、SlimeはEMACSパーツ(クライアント)、Swankは一般的なLISPパート(サーバー)、Swank-ClojureはオリジナルではなくSwank ServerのClojure実装です。