opengl根据SLIME在MacOS上崩溃SBCL ... bug?

我想在Common Lisp中的Emacs和SLIME下做一些OpenGL编程。 我没有设置它,但我目前正在尝试使用SBCL。 如果我从一开始就打开emacs,只需要这一行创建一个新文件:

(ql:quickload :cl-opengl)

然后我做Mx slime(并等待它加载),然后是Cc Cc编译并运行该行,SBCL每次都会立即崩溃,每次都会提示一个对话框,提示sbcl quit unexpectedly

错误对话框:sbcl意外退出

我保存了可通过点击“Report ...”按钮访问的输出; 如果这很有用,我可以在这里添加(或者将其放在pastebin或其他东西上)......简短版本就是获取SIGTRAP

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

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


注意

我已经做了一些谷歌搜索,并且我找到了一个页面,它提供了一个解决方案,将以下内容放入~/.swank.lisp

(setf swank:*communication-style* :fd-handler)

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


平台详情:

操作系统: MacOS 10.6.8

SBCL:来自MacPorts的sbcl@1.1.10_0 + fancy ; 启动标题这是SBCL 1.1.10,ANSI Common Lisp的一个实现。

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

史莱姆:来自MacPorts的slime @ 20130630


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

:fd-handler选项改变了SWANK与缺省的通信方式,即使用单独的线程进行通信,以使用循环方法(http://www.common-lisp.net/projects/slime/doc/html/通信style.html)。

过去有很多关于在Mac OS上使用SBCL进行线程处理的抱怨,这些问题在很大程度上取决于它的外观; 也许SWANK有类似的问题?

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


我一直在查看我的设置,看看有什么不同

OS X 10.9
SBCL 1.1.8.0-19cda10
slime-20131003

但最可能的罪犯仍然是粘液/流氓。 我真的推荐使用quicklisp来管理你的slime设置而不是macports,这样可以保持同步和最新状态。 我一直用这种方法使用粘液一年或两年,迄今为止没有任何问题。

从quicklisp页面:

要安装和配置SLIME,请使用:

(ql:quickload "quicklisp-slime-helper")

然后按照它显示的指示。 quicklisp-slime-helper将创建一个文件,您可以在Emacs中加载该文件,该文件配置正确的加载路径以加载Quicklisp安装的SLIME

我还制作了一个小视频,演示如何在Windows下安装emacs + sbcl + quicklisp + slime。 粘液部分在所有平台上仍然相关。

希望能帮助到你。

链接地址: http://www.djcxy.com/p/67613.html

上一篇: opengl under SLIME on MacOS crashing SBCL... bug?

下一篇: how to compensate probable recent changes