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

时间:2013-08-20 21:43:00

标签: opengl common-lisp sbcl slime

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

(ql:quickload :cl-opengl)

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

error dialog: sbcl quit unexpectedly

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

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

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


注意

我已经完成了一些谷歌搜索,我发现a page提供了一个解决方法,将以下内容放入~/.swank.lisp

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

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


平台详细信息:

操作系统: MacOS 10.6.8

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

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

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

2 个答案:

答案 0 :(得分:0)

这听起来像SWANK

的线程支持问题

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

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

我不是百分百肯定这是你问题的唯一原因,但这是我能找到的最佳解释。

答案 1 :(得分:0)

我一直在查看我的设置以查看不同的内容

OS X 10.9
SBCL 1.1.8.0-19cda10
slime-20131003

但最可能的罪犯仍然是粘糊糊的。 我真的建议使用quicklisp来管理你的粘液设置,而不是macports,这将保持粘液和swank同步和最新。我一直在用这种方式使用粘液一两年,到目前为止没有问题。

来自quicklisp page

  

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

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

然后按照显示的说明进行操作。 quicklisp-slime-helper会   创建一个可以在Emacs中加载的文件来配置正确的文件   加载Quicklisp的SLIME安装的加载路径

我还制作了一个小视频,展示如何在Windows下install emacs+sbcl+quicklisp+slime。粘液部分仍然适用于所有平台。

希望它有所帮助。