我目前正在想办法安装通用音乐库: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:
- 将目录更改为Lisp安装目录
$cd/usr/local/lisp
- 将shell变量CVSROOT设置为指向CVS存储库:
$export CVSROOT=":p服务器:anonymous@commonmusic.cvs.sourceforge.net:/cvsroot/commonmusic";
- 使用cvs登录连接到Sourceforge cvs服务器,在提示输入密码时按Enter键:
$cvs登录CVS密码:
- 使用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)))
的行替换为。
……但我认为这只是冰山一角。祝你好运