问题标签 [swank]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
emacs - 风筝现场编辑
我真的很喜欢Kite背后的想法——使用 WebKit 自己的协议进行远程调试。不需要代理套接字服务器或书签来连接网页(这就是swank-js的操作方式)。
该项目的自述文件指出风筝...
“启用...实时编辑网页”。
然而,虽然工作正常,但我不能在没有风筝划痕的情况kite-scratch
下评估 defuns 或整个缓冲区。
是否可以在 kite-scratch 以外的任何缓冲区中使用 Kite 评估 JavaScript?
debugging - Clojure、emacs、ritz-swank:`Mx slime-connect` 给出错误消息
我花了一个下午试图让 ritz-swank 包与 emacs 和 Clojure 一起工作。(谷歌搜索错误消息等等并没有提供有用的线索。)我希望有人能给我一些指导,让我启动并运行。
错误是Symbol's value as variable is void: slime-ritz
。
根据http://www.delorie.com/gnu/docs/elisp-manual-21/elisp_142.html:
“如果你从来没有给一个符号任何值作为全局变量,我们说那个符号的全局值是无效的。换句话说,这个符号的值单元格中没有任何 Lisp 对象。如果你尝试评估这个符号,你得到一个 void-variable 错误而不是一个值.... 一个 void 变量没有任何值。”
我尝试slime-ritz
使用 Emacs 'describe-variable' (Ch v) 找到 的值,但它没有返回任何内容。对“ritz”进行适当的搜索没有结果,但搜索“slime”返回了一堆函数(所以我假设slime
包存在)。
我的安装过程
我按照https://github.com/pallet/ritz/tree/develop/swank(pallet/ritz项目页面)的安装部分中的说明进行操作,从头开始两次以确保我做对了。这是我最后一次尝试的顺序:
从一个既不包含 Emacs 也不包含
~/.emacs.d
目录的系统开始。安装 Emacs 24.2,最新可用的 Mac OS X 版本(来自http://emacsformacosx.com/)
通过
curl
命令安装 Emacs Prelude(参见http://batsov.com/prelude/)下载(如项目页面所说)的特定版本
slime
和slime-ritz
使用手动安装它们
M-x package-install-file
退出并重新启动 emacs,以防万一....
按照页面说明安装了 lein-ritz 并成功获得:
Greggs-Mac-Pro:combolock gr$ lein ritz user=> Swank 服务器监听本地端口 51521
M-x slime-connect
(应该建立从 Emacs 到 Swank 服务器的连接)Symbol's value as variable is void: slime-ritz
在 Emacs 迷你缓冲区中返回错误。
诊断数据
运行M-x package-activated-list
产生了以下已加载包的列表:
(ace-jump-mode ack-and-a-half elisp-slime-nav exec-path-from-shell expand-region flycheck gist gh guru-mode helm-projectile helm logito magithub magit melpa paredit pcache projectile dash rainbow-delimiters rainbow-mode s slime slime-ritz solarized-theme undo-tree volatile-highlights yasnippet zenburn-theme)
运行M-x package-list-packages
列出了已安装的以下软件包:
我注意到它clojure-mode
不存在,所以我添加了它,但是上面的第 8 步给出了相同的错误消息。
一些暗中提问
1)我需要安装pallet
吗?
2)我是否需要安装该ritz
系列的任何其他软件包(https://github.com/pallet/ritz)?
我真的很期待使用 ritz-swank——它看起来真的很强大!(感谢 Hugo Duncan 的辛勤工作!)
emacs - 在“emacs”(最新版本)中设置“Slime”时,我如何告诉它更快地加载 swank?
史莱姆手册说:“更快地加载 Swank 对于 SBCL,我们建议您创建一个包含套接字支持和 POSIX 绑定的自定义核心文件,因为这些模块需要最多的时间来加载。要创建这样的核心,请执行以下步骤:
之后,将类似这样的内容添加到您的“.emacs”中:
我知道如何将东西添加到我的 .emacs 文件中,但是我到底要为下面的部分做什么,即在哪里,确切地,以及我如何执行下面的步骤....我在哪里输入它。"执行以下步骤:
请具体...我是菜鸟
vim - 如何为 slimv 和 ritz 设置类路径
我想解决我的类路径问题。你能告诉我该怎么做吗?
我可以做到以下几点。
我可以通过推 eval (+ 1 1) 在 vim(slimv) 中,例如。
然后 slimv 显示以下内容。
但是,我不能做以下事情。
1.当我在 vim(slimv) 中通过推 eval 来评估以下代码时,e,
2.Slimv 显示如下错误。
; java.io.FileNotFoundException 上的评估中止:在类路径上找不到 clojure/contrib/str_utils__init.class 或 clojure/contrib/str_utils.clj:
我的环境如下。
- macvim 7.3.754
- 莱茵 2.0.0
- 瘦身 0.9.9
- 丽兹 0.7.0
项目.clj
~/.lein/profiles.clj
参考
deployment - 如何使用 swank 部署 lisp 映像,并作为守护进程运行
正如标题中的 seid,我想部署一个可与 Swank 一起运行的 Lisp 映像。这可以通过使用 lisp 实现提供的图像转储功能来完成。但是它如何作为守护进程运行呢?
Detachtty
做得很好,但是当我部署时,用户需要分离;我不喜欢这个解决方案,我只想要一个独立的解决方案。
Restas-daemon 和 sb-daemon 可能是另一种选择,但两者都与 SBCL 相关。有便携式解决方案,还是仅适用于 Clozure CL 的解决方案?
我也尝试了daemon
quicklisp 的库,但是当我在其中启动 Swank 时,它挂了。我可以在 proc 文件系统中看到套接字文件描述符被破坏。
现在我不知道。
有人有什么建议吗?
emacs - 使用 SLIME 在远程 Emacs 上完成选项卡
在远程 SWANK 上的 SLIME repl 中,键入:
(打开“~/
然后按 TAB
这会在我的本地文件系统上创建一个带有自动完成功能的缓冲区。有人知道如何让它显示远程系统上的文件吗?
目前我的 .emacs 看起来像这样:
我已经在谷歌上搜索并尝试了一些随机的东西,非常感谢任何帮助!
common-lisp - 在库中使用 Swank 函数
我在 Ubuntu Raring 上使用 SLIME/SBCL/Emacs 和 Quicklisp。我有下面定义的功能。我想添加到我的 Lisp 库的顶部 .lisp 文件中,即每个其他文件都依赖的文件,这样我就可以在我用库编写的所有函数中使用它,只需添加(update-swank)
到一个函数而不是添加下面的整个函数到使用它的每段代码。
当我这样做并重新启动 emacs 时,在进程中加载我的库,因为我的asdf:load-op
.sbclrc 文件中有
在劣质 lisp 中,并且 SLIME 卡住轮询,因为库没有加载,因为在我当前的设置中,SLIME/SBCL 不知道update-swank
在加载 .lisp 文件时是什么 swank 。我尝试添加(in-package :swank)
到其中的文件update-swank
,但得到了
当我的库在 emacs 启动时加载时,在劣质 lisp 中。
我搜索了 CEPL(我从https://github.com/cbaggers/cepl/blob/master/cepl-utils.lisp获得了 update-swank ),然后复制了 CEPL 的创建者所做的并将函数导出到我的包中.lisp。我确保添加了函数,就像他在 cepl-utils 的第 20 行所做的那样https://github.com/cbaggers/cepl/blob/master/cepl-utils.lisp ......我顺便加载了我的库和
在我的 .sbclrc 文件中,我假设它是在我的.emacs
文件在 emacs 启动时加载粘液之前加载的(我(slime)
在我的.emacs
文件中有)...我刚刚测试了从我的adsf:load-op
和运行 之后的粘液/swank 和什么我一直在尝试在这里没有错误地工作....但是我希望能够在 emacs 启动时自动加载我的库,而我通常这样做的方式是将...添加到我的....如果有人可以告诉我另一种在加载 swank 后在 emacs 启动时自动加载我的库的方法可以回答这个问题吗?in-package
.sbclrc
asdf:load-op
asdf:load-op
.sbclrc
emacs - 如何让 swank 与 stumpw 一起工作?
我已将此代码片段添加到我的 stumpwmrc 文件中:
我期待打开一个套接字服务器,接受“swank”协议。因此我可以用 emacs 连接到它(感谢 Slime)。
但是当我登录并且 stumpwm 正在读取它的配置文件时,这是我得到的错误消息:
我该如何解决?我调用'require,甚至'快速加载函数。这里有什么问题?
emacs - SLIME 和 SWANK 在 MIPS 架构上失败
我正在尝试在Imagination Creator CI20 Mips 板上使用带有SLIME和 Swank 的Emacs来学习 Common Lisp。我正在使用 SBCL 和 Clisp 作为我的编译器/解释器(主要是 SBCL,通常设置为低级lisp模式);然而,我确实将 SBCL 和 Clisp 都设置为低级 Lisp 模式对此进行了测试,但两者都失败了。我尝试运行 SLIME,但在尝试加载或编译 Swank 文件时总是失败。其中一次尝试的错误消息表明它在架构上遇到了困难(Mips - little endian)。我正在运行开发板随附的 Debian 7 Wheezy (Mipsel) 的默认安装。
我尝试使用通过 apt-get 从 Debian 存储库安装的SLIME,另一次使用 SLIME 的 Melpa 安装,最后一次尝试使用 SLIME 的 Github git 存储库(最新)。尽管错误消息有时略有不同,但它们都失败了。Emacs 23 和 24 都失败了。
我使用 SBCL 作为编译器,在我尝试使用 SLIME 的 Github 存储库时附加了错误消息/模糊信息。SBCL 是从 SBCL 存储库安装的,因为 Mipsel Wheezy 似乎在 Debian 存储库中没有它。它看起来确实是一个较旧的版本,但它是SBCL 网站上 Mips 架构的最新二进制文件。SBCL 在命令行中作为 REPL 运行良好。
lisp - 从命令行与本地长期运行的 Common Lisp 图像交互,可能是守护进程
如何从命令行与本地长期运行的 Common Lisp 图像交互,可能是守护进程?
我知道可以从终端命令提示符运行 Common Lisp 函数,我也知道这一点。
我需要做类似的事情,但使用本地的、已经长期运行的Common Lisp 映像,能够从 CLI 或 shell 脚本轮询可用函数。
有没有办法从 CLI 中做到这一点,例如从 bash 脚本调用函数,并接收函数返回的任何内容?
例如,我可以创建一个原始的 Web 服务,可能使用woo或Hunchentoot调用函数并通过curl
or获取返回值wget
,但感觉有点复杂。
当然,这是 Emacs 的 SLIME 的众多特性之一,但我需要仅从 CLI 调用函数,而不调用 Emacs。
有没有办法在 SLIME 之外达到一个时髦的后端?
如果可能的话,这样做的 lisp 惯用方式是什么?
我将不胜感激任何指示。
更新
附加说明
许多年前,我对能够远程登录到长期运行的 LISP 映像很感兴趣(我相信在这种情况下,将名称大写应该没问题)。如果我没记错的话,它可以在 prompt.franz.com 上找到。一篇文章,以某种方式连接:用于远程访问正在运行的应用程序的 telnet
Telnet 当然是相当不安全的,但是无论出于何种原因,能够以这种方式访问 Lisp 应用程序的用处都不能被夸大,至少对某些人来说是这样。
一些额外的指针,谢谢
我要感谢 Basile Starynkevitch 详尽而透彻的回答,尤其是在理论方面。我一直在寻找一个更实用的方向,特别是与 Common Lisp 相关。尽管如此,他的回答还是很有启发性的。
我已经准备好开始编写本地服务器了,或许可以使用其中一个优秀的 Common Lisp 库,例如:
但是,多亏了 Stanislav Kondratyev,我不必这样做。他指出了一个已经存在的解决方案,它很好地回答了我的问题,ScriptL:Shell scripting made Lisp-like
我在 Linux、FreeBSD 和 OS X 上成功地测试了它,只要确保首先在 POSIX 系统调用上安装瘦包装器。在众多功能中(参见 README),它允许仅展示选定的功能,安全性得到妥善处理,甚至提供自定义 C 客户端,作为 ASDF 加载操作的一部分构建,并支持许多新功能,例如I/O,代替netcat
.