我的粗浅理解是“swank-clojure”使得“M-x粘滞连接”成为可能。我的意思是,它提供了一个到clojure服务器的连接,类似于'lein swank‘。我的理解正确吗?如果不是,那么swank的用途是什么?
那么,对于其他lisp实现,有没有什么“swank- Then _ELSE”呢?例如,swank-clisp?
我是否需要'swank-clojure‘来使用SLIME/Clojure和'M-x slime'?
已添加
我发现这个link非常有用。
发布于 2010-08-24 04:25:15
SLIME和swank构成了一个运行和调试lisp程序的客户机-服务器体系结构。SLIME是emacs的前端,swank是后端。在这两者之间,它们创建了一个网络套接字,并通过跨消息发送(S表达式)进行通信。简而言之,它只是emacs和实际的lisp后端之间的一种RPC机制。
事实上,slime和swank是分开的,通过网络连接并通过rpc消息进行通信,这意味着它们可以在任何地方。因此,slime可以连接到远程主机/端口以进行swank。您看到的所有其他形式(lein、swank等)都做同样的事情。它们开始在一个端口上摆动,允许远程连接粘液。
swank-clojure是swank的clojure端口。最初,swank-clojure附带了一个名为swank-clojure.el的helper elisp文件。此文件的工作是启用swank参数的手动设置,如类路径、jvm参数等。由于后来出现了其他工具,如lein,swank-clojure.el已被弃用。但它仍然存在于:http://github.com/vu3rdd/swank-clojure-extra上,并提供了M-x swank-clojure-project,它可以在lein项目上启动swank。
应该注意的是,SLIME起源于(并且仍在积极地为) Common Lisp开发。事实上,swank的clojure端口只有原始SLIME/swank版本所享受的特性的一个子集。粘液存在于Common Lisp的所有主要变体中。它有一个用于Scheme48的部分端口。在contrib目录下有一些部分实现。
如果您知道swank已经在某个端口上运行,请使用slime-connect。如果你只是想在项目中使用slime,swank-clojure-project和lein swank似乎是个不错的选择。
发布于 2010-08-24 03:49:51
swank-clojure.el已弃用。不要用它。
您需要slime.el,并且需要在project.clj文件中的开发依赖项中包含swank-clojure "1.2.1"。
Swank基本上是一个服务器,您可以使用slime从emacs连接到它。它从emacs传递了您想要由它运行的Lisp进程运行的内容。
在开始使用lein swank之后,您应该使用M-x slime-connect连接到swank服务器。
发布于 2010-08-24 08:46:48
Swank是像emacs SLIME和Macintosh的MCLIDE lisp开发环境这样的swank客户端的服务器对应物。Swank服务器适用于许多Common Lisp实现和Lisp方言,例如Clojure和Gambit/scheme。
https://stackoverflow.com/questions/3550971
复制相似问题