SBCL中的多线程通过Slime创建不返回或关闭的线程

时间:2014-11-11 15:58:54

标签: multithreading common-lisp sbcl slime

我正在尝试使用常见的lisp机器学习库clml

  • Ubuntu 14.04 LT
  • Emacs 24
  • SLIME 2.10.1
  • SBCL 1.2.3

当我在终端中使用SBCL运行以下示例时,一切正常,创建了四个线程,返回结果并关闭。当我从SLIME中运行相同的代码时,以下工作正常:

(setf *read-default-float-format* 'double-float)
(ql:quickload :clml)
(in-package :clml.decision-tree.random-forest)

(defparameter *bc-train*)
(setf *bc-train* (read-data-from-file (clml.utility.data:fetch "https://mmaul.github.io/clml.data/sample/bc.train.csv")
                                  :type :csv
                                  :csv-type-spec
                                  (append (loop for i below 9 collect 'double-float) '(string))))

当我尝试用make-regression-forest训练随机森林时:

 (defparameter *regression-forest*)
 (setf *regression-forest* (make-regression-forest *bc-train* "Cell.size"))

发生以下情况:

  • 粘液repl仍然响应
  • 创建了四个线程,它们不使用任何CPU时间,也不返回或退出。
  • 劣质lisp缓冲区为每个线程显示以下致命错误:

    LBD>在SBCL pid中遇到致命错误####(tid ##########): GC不变丢失,文件" thread.c",第910行

make-regression-forest使用clml futures包,据报道它类似于eager-future。

我想使用SLIME来试验这个软件包,如果需要,我很乐意尝试使用不同的多线程方法。

非常感谢,

0 个答案:

没有答案