如何使用Portacle IDE在Common Lisp中实现Common Music



我目前正在想办法安装通用音乐库:http://commonmusic.sourceforge.net/cm2/doc/cm.html,在Portacle上运行,这是一个集成了Emacs和其他实现以运行Common LISP的IDE。

按照以下步骤,我能够成功地将Common Music的源代码树下载到我的Portacle安装目录中,可以在http://commonmusic.sourceforge.net/cm2/doc/install.html#cvs:

  1. 将目录更改为Lisp安装目录

$cd/usr/local/lisp

  1. 将shell变量CVSROOT设置为指向CVS存储库:

$export CVSROOT=":p服务器:anonymous@commonmusic.cvs.sourceforge.net:/cvsroot/commonmusic";

  1. 使用cvs登录连接到Sourceforge cvs服务器,在提示输入密码时按Enter键:

$cvs登录CVS密码:

  1. 使用cvs checkout将CM的源代码树恢复到Lisp安装目录:

$cvs结账-p cm

打开我的Common Lisp REPL portacle,我输入了相当于(load"/usr/local/Lisp/cm/src/cm.Lisp"(的cm.Lisp.的特定路径名

我收到以下错误。

LOAD:期间出现读取错误

符号";UNIX-FILE-KIND";在SB-UNIX包中找不到。

Line: 116, Column: 47, File-Position: 4278
Stream: #<SB-INT:FORM-TRACKING-STREAM for "file /usr/local/lisp/cm/cm.asd" {1004108F23}>

[SB-C::INPUT-ERROR-IN-LOAD类型的条件]

如果有人熟悉Common Lisp和集成Common Music,任何帮助都将不胜感激。

谢谢。

问题是这个系统是为另一个世界编写的。CCD_ 1是在10多年前从CCD_。

这里,它用于确定路径名是否命名现有目录。我不确定在系统加载上下文中使用cl-fad是如何工作的(现在这可能会变得更简单,但这是一项工作(,所以也许你可以内联cl-fad:directory-exists-p所做的任何事情,或者这对你来说是可行的(尽管有点麻烦(:

#+sbcl (let ((truename (probe-file dir)))
(and truename
(string= (namestring truename)
(directory-namestring truename))))

您可以将cm.lisp中当前显示#+sbcl (eq :directory (sb-unix:unix-file-kind (namestring dir)))的行替换为。

……但我认为这只是冰山一角。祝你好运

最新更新