在MacOS上SLIME下的cl-opengl崩溃了SBCL ...... bug?

lin*_*des 8 opengl sbcl common-lisp slime

我想在Emacs和SLIME下的Common Lisp中做一些O​​penGL编程.我没有参与其中,但我目前正在尝试使用SBCL.如果我从一开始就打开emacs,只用这一行创建一个新文件:

(ql:quickload :cl-opengl)
Run Code Online (Sandbox Code Playgroud)

然后我做M-x slime(并等待加载),然后C-c C-c编译并运行该行,SBCL每次都崩溃,每次都会提示一个对话框说sbcl quit unexpectedly:

错误对话框:sbcl意外退出

我通过点击"报告..."按钮保存了可访问的输出; 如果那是有用的,我可以在这里添加(或将它放在pastebin或其他东西上)......简短的版本是它得到了SIGTRAP.

每次我尝试在SLIME下运行时都会发生这种情况......但是,有趣的是,如果我从命令行运行SBCL,则不会发生这种情况.

所以,问题是:这是SBCL中的错误吗?在cl-opengl?我错误配置的东西?其他?任何见解将不胜感激.


注意:

我做了一些谷歌搜索,我找到了一个页面,提供了将以下内容放入的解决方法~/.swank.lisp:

(setf swank:*communication-style* :fd-handler)
Run Code Online (Sandbox Code Playgroud)

事实上,这让我超越了直接的崩溃,让我能够做一些工作.如果这只是答案,有人请将其作为答案发布,并解释为什么要这样做,以便其他人可以找到它.否则,我想象这是一个错误,但是,这可能是固定的,而不是解决...和/或至少我可以帮助更好地理解的东西; 我仍然没有响应的REPL与我当前的代码(基本上在brian的大脑,作为测试用例)运行(通过run),这可能是也可能不是一个单独的问题?改变swank配置改变了我的情况吗?


平台细节:

操作系统:MacOS 10.6.8

SBCL:来自MacPorts的sbcl@1.1.10_0+fancy ; launch header 这是SBCL 1.1.10,ANSI Common Lisp的一个实现.

Emacs:macports安装的Emacs 版本24.3(9.0)(根据窗口的GUI,或者2013-04-07每个的GNU Emacs 24.3.1(x86_64-apple-darwin10.8.0,NS apple-appkit-1038.36)M-x version,或者emacs-app@24.3_1端口)

史莱姆:来自MacPorts的史莱姆@ 20130630

gho*_*sjr 0

听起来像是 SWANK 的线程支持问题

:fd-handler 选项将 SWANK 的通信方式从默认使用单独的线程进行通信更改为使用循环方法 ( http://www.common-lisp.net/projects/slime/doc/html/通信风格.html)。

曾经有很多关于在 Mac OS 上使用带有线程的 SBCL 的抱怨,从表面上看这些基本上已经得到解决;也许 SWANK 也有类似的问题?

我不能 100% 确定这是造成您问题的唯一原因,但这是我能找到的最好解释。