问题标签 [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.
common-lisp - 切换包时词法绑定丢失
我想要的只是为 swank 加载一个初始化文件,当它在没有 swank 的情况下启动时不会影响我的 lisp...
我首先在从 ccl-init 加载的文件中尝试了#+swank (defun...)(在 ccl 1.10 + windows 上尝试),很快意识到它是在加载 swank 之前获取的(显然)。
我的目标是每次开始 swank 时在 :cl-user 中定义一个简单的函数。我刚刚用一个时髦的 add-hook 来加载我的 init.lisp 文件,因为我想在 cl-user 中定义函数,所以我在 init.lisp 中尝试了这个:
现在,我不记得 let 中的 defun 是否被允许,但 lisp 并没有抱怨,而是告诉我 cur-pck 符号不存在,当我们切换包时,似乎是 cur-pck绑定超出范围。我认为 cur-pck 是一个词法绑定,它应该可以从词法区域内访问,独立于一个包,我错了吗?
为什么要切换套餐?我在想,在某个初始化点从 swank 加载这个文件将定义一些 swank 包中的东西,这就是为什么我想先尝试切换到 cl-user,定义函数符号,然后切换回让 swank 做这件事。
在这一点上,我想我需要有人告诉我我从错误的角度处理问题,我应该更好地选择一个更简单的解决方案。
此外,出于好奇,如果上述方法完全错误,有没有办法在函数或闭包内的另一个包中定义符号?
vim - 如何重新初始化 swank?
我怎样才能让 swank 忘记所有以前评估过的定义?
我希望它取消定义通过评估定义的所有宏、函数和变量(例如,b
评估缓冲区)。并让它恢复到与我重新启动 PC 并重新启动 swank 服务器时相同的状态。
我试过了:
slimv Clear -REPL (
,-
) 命令:这似乎只是为了清除屏幕(缓冲区)。
CL-USER>
(swank:restart-server)
(来自 REPL 缓冲区):服务器重新启动,但它仍然记得我的旧
defun
定义和其他定义。CL-USER>
(slime-restart-inferior-lisp)
和 `(slimv-restart-inferior-lisp)两者都是未定义的。
lisp - swank 服务器 *swank-debugger-condition*
我是 Lisp 新手,在 Emacs 中使用 Slime 工作,我经常收到这个错误
我花了很长时间在谷歌上搜索,但找不到对该变量的引用。它是什么?它应该绑定什么?
recursion - Slimv:评估中止
我正在通过 vim 在 slimv 的帮助下调试以下 mit-scheme 程序。
当我运行命令:!mit-scheme --load "pascal.scm"
时,屏幕上会打印一个帕斯卡三角形,所以我无法在我的程序中发现任何错误。但是,当我,d
在 slimv 的 REPL 缓冲区中执行并尝试运行该程序时,我得到了:
那么,是什么<unknown reason>
阻止了我的程序正常运行?是我的错,还是slimv的bug?
这是相关部分swank.log
:
common-lisp - 如何将 *standard-input* 和 *standard-output* 重定向到另一个 PTY、FIFO 或套接字?
我想知道是否可以重定向 ECL 的 Linux stdio,使其不与嵌入的应用程序共享流。
我的问题是主机应用程序出于自己的目的接管了标准输入、标准输出和标准错误。所以,我想有一个单独的控制台来处理 lisp 噪音,并在 SLIME/SWANK 崩溃回到顶层时进行恢复。目前 SWANK hiccups 将CL-USER>
提示放入应用程序调试日志中,C opperation (read) signalled an error
stdout 的失败被重定向,stdin 很可能被父进程关闭或使用。
我知道你可以setf *standand-output*
等到一个新的流,但我还没有找到一种方法来附加一个终端,比如屏幕或 xterm 或套接字。我需要底层的 Linux/C 文件描述符,然后我可以制作一个 PTY。
如果有某种方法可以将标准流附加到我可以使用 telnet 连接到的套接字服务器上,那就更好了。
更新
根据评论中的建议,我尝试了以下代码:
它并没有完成这项工作。问题是,虽然一些 IO 被重定向 SWANK,但似乎仍然有办法获取真正的流。我想这需要一些研究才能弄清楚 SWANK 是如何做到的。哦,便利的高价!
更新 2
我的错。没有*standard-error*
,只有*error-output*
。你能告诉我我对 Lisp 很陌生吗?
现在,一切都被重定向了。不过,SLIME 现在不会和 SWANK 说话了,有点违背了目的……
更新 3
胜利!在连接 SLIME 之前,您需要在终端中运行类似以下的 shell 脚本来创建您的顶级 shell:
原因,我猜不出来。但幸运的是它仍然有效。
顺便说一句,不要阻止任何想要发布更好答案的人
我确信有人可以制作一个套接字服务器或屏幕分离的 PTY,无论是否有人在看它们,都可以让流保持快乐。那将是一个更经典的解决方案。
common-lisp - 如何将本地源代码中定义的 ASDF 系统加载到远程 lisp 中?我使用 SBCL、Slime 和 Swank
我的笔记本电脑上有一个简单的 ASDF 系统。我可以做“MX slime-load-system”,它会加载。我可以调用由其中一个包导出的函数。
当我在本地运行另一个 Emacs 实例并使用 slime-connect 连接到远程 Swank 并加载系统时,我得到:
我想要实现的是将系统加载到远程 lisp、在本地编辑代码以及在远程 lisp 中编译/加载它的能力。
如果我将源代码同步到远程系统上的 ~/common-lisp/ ,则 slime-load-system 可以工作。很好,但是感觉不对,这个额外的步骤。
如何在没有 rsyncing 的情况下使其工作?
lisp - 如何使用 telnet 在低级别与 Swank 服务器交互?
我正在尝试从命令行使用 Swank 服务器(没有特定的生产目的,只是想通过一些 hacky 想法来理解事物以备后用),我无法弄清楚我可以从telnet
会话中输入什么来获取任何可用的答案;例如,我该如何评估(+ 1 1)
?
上一个问题告诉我们:
如果您熟悉 swank 协议,确实可以与 swank 服务器通信,该协议似乎没有充分记录(参见例如:https ://github.com/astine/swank-client/blob/master/swank-description .markdown)。但是,这会通过网络公开 TCP 套接字,这可能是不安全的。有一次我也尝试过,但我对 IPC 的速度并不满意。
该链接实际上给出了一些提示,但不幸的是没有示例。我无法得到任何结果。
这是我尝试过的;在单独启动服务器后
我试过这样的事情:
并收到以下错误消息:
在那种情况下,我应该输入什么字符串?
lisp - 连接到远程 swank:找不到模块 swank-io-package::swank-trace-dialog
所以,我正在使用
在本地生成myapp
,并将生成的二进制文件上传到服务器。
如此处所指出的,该函数myapp:main
执行以下操作(以及服务器的其他几个初始化操作):
我还在本地机器上进行端口转发:
我可以在我的本地机器上运行slime-connect
它,myapp
我从同一台机器连接到它。
但是,当我尝试slime-connect
在本地计算机上远程运行时,我收到错误消息localhost
8080
myapp
如果我选择
[*ABORT]
,emacs 会给我error in process filter: No catch for tag: slime-result-2-212, (error "Synchronous Lisp Evaluation aborted")
(在 minibuffer 中),没有 SLIME REPL。选择
[ABORT]
也给出了几乎相同的error in process filter: Synchronous Lisp Evaluation aborted
。
此外,如果我也尝试评估框架中的某些内容,我会得到error in process filter: Invalid message protocol
.
PS:我正在使用 AWS,以防有关安全组的详细信息是相关的。
emacs - 如何在没有转储的情况下使用 clisp 运行粘液?
概括
在 cygwin Emacs 上使用 clisp 作为劣质 lisp 时,swank 总是转储。
细节
- 2019-08-30 的 cygwin
GNU Emacs 26.3 (build 1, x86_64-pc-cygwin) 上的 emacs - 粘液
20200219.2239
从 melpa 安装粘液后,我没有使用自定义。 - 夹子
- 华丽的消息
- 剪辑转储
emacs - 在 Emacs 中使用 SLIME 时:如何重置 swank-loader.lisp 的路径?
删除发行版安装的 SLIME 后,我的 MELPA(稳定)安装的 SLIME 版本仍然坚持访问旧的系统范围 swank-loader.lisp。
如何清除系统并将路径重置为 swank-loader.lisp