首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“swank-clojure”到底是做什么的,我们有没有“swank-SOMETHING_ELSE”?

“swank-clojure”到底是做什么的,我们有没有“swank-SOMETHING_ELSE”?
EN

Stack Overflow用户
提问于 2010-08-24 03:26:58
回答 4查看 2.7K关注 0票数 14

我的粗浅理解是“swank-clojure”使得“M-x粘滞连接”成为可能。我的意思是,它提供了一个到clojure服务器的连接,类似于'lein swank‘。我的理解正确吗?如果不是,那么swank的用途是什么?

那么,对于其他lisp实现,有没有什么“swank- Then _ELSE”呢?例如,swank-clisp?

我是否需要'swank-clojure‘来使用SLIME/Clojure和'M-x slime'?

已添加

我发现这个link非常有用。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 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似乎是个不错的选择。

票数 32
EN

Stack Overflow用户

发布于 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服务器。

票数 6
EN

Stack Overflow用户

发布于 2010-08-24 08:46:48

Swank是像emacs SLIME和Macintosh的MCLIDE lisp开发环境这样的swank客户端的服务器对应物。Swank服务器适用于许多Common Lisp实现和Lisp方言,例如Clojure和Gambit/scheme。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3550971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档