我正在尝试将CLISP 2.49(在Mac OS Sierra上)的ASDF更新到版本3.x.
我现在有ASDF版本2.26。
我已经尝试了我在网上找到的所有内容:我按照this中的说明下载了最新版本的ASDF,但是当我评估(require "asdf")
时,如手册(https://common-lisp.net/project/asdf/中所示)没有任何反应,我仍然有2.26版本。
该手册还告诉您加载文件asdf.lisp
,但新版本文件夹中缺少该文件。
我发现quicklisp有自己的版本asdf.lisp
和asdf.fas
,似乎是正在加载的版本,但我不知道如何用任何新版本替换它们。
我现在已经尝试了很多东西,我担心我搞砸了系统。
有谁知道如何可靠且一步一步地将ASDF升级到版本> = 3.0? 非常感谢。
答案 0 :(得分:6)
1-要从源代码生成asdf.lisp,请在asdf git checkout中输入make
。
2- (load (compile-file ...))
每次都会重新编译它。您可能只想编译一次,然后覆盖通常使用的fasl。
3-如果你从quicklisp获得asdf,就像我想的那样,只需用你的asdf.lisp 3.2.1替换它过时的〜/ quicklisp / asdf.lisp 2.26,然后在〜/ quicklisp / cache中删除缓存/
4-请向Xach投诉将asdf升级到3.1.7或3.2.1。通过分发2.26,Quicklisp正在为lispers做一个伤害。
答案 1 :(得分:2)
asdf本身是可自我更新的。您只需加载最新版本。
http://paste.lisp.org/display/350703
所以基本上,你在某个地方下载asdf 3,说~/rc/asdf.lisp
并在你的~/.clisprc.lisp
中放置:
(load #P"~/quicklisp/setup.lisp") ; will load asdf 2.26
(load (compile-file #P"~/rc/asdf.lisp")) ; will load asdf 3 over asdf 2.26.
答案 2 :(得分:2)
基本上,您需要做的就是用3.2替换2.6。
asdf.lisp
2.6所在的位置。您可以执行(load "asdf")
或(require "asdf")
并查看其加载位置。
让路径为my/asdf/directory/asdf.lisp
。
wget https://common-lisp.net/project/asdf/archives/asdf.lisp -O my/asdf/directory/asdf.lisp
asdf
clisp -norc -c my/asdf/directory/asdf.lisp
答案 3 :(得分:1)
好的,我终于明白了,这是上面两个答案的组合。 首先,我没有在我的系统中使用wget,但是我手动下载了文件https://common-lisp.net/project/asdf/archives/asdf.lisp并将其保存在正确的路径中。 然后添加了两行
(load #P"~/quicklisp/setup.lisp") ; will load asdf 2.26
(load (compile-file #P"~/rc/asdf.lisp")) ; will load asdf 3 over asdf 2.26.
到文件〜/ .clisprc.lisp 现在,重新启动CLISP后,我终于得到了:
(asdf:asdf-version)
"3.2.1"
非常感谢Sam和Pascal的帮助!