常见的lisp:fork quicklisp-loaded项目到子目录

时间:2013-09-08 11:18:28

标签: common-lisp ccl quicklisp

我有一个使用lispbuilder-sdl的小型常见lisp项目。我想做一个lispbuilder-sdl的分支,把它放到子目录中并从中删除一些我不需要的东西。

我该怎么做?

据我所知,quicklisp可以加载当前目录中的项目,在“local-projects”目录下(在quicklisp安装到的任何文件夹中),或者从Internet下载它们。那么如何创建一个“子项目”,它是现有项目的一个分支(可通过quickload获得?),而不会使用* .asd文件污染顶级目录?

- 其他信息 -

我在windows 7 64bit上使用32位clozure-cl。

目前项目开始使用此文件:

(ql:quickload "cffi")

(pushnew #P"bin/" cffi:*foreign-library-directories* :test #'equal)
(pushnew #P"build/bin/" cffi:*foreign-library-directories* :test #'equal)
(pushnew #P"build/bin/Debug/" cffi:*foreign-library-directories* :test #'equal)

(ql:quickload "game")

(defun start ()
    (game:main))

(defun reload ()
    (ql:quickload "game"))

(defun restart ()
    (reload)
    (game:main))

(start)
(quit)

game.asd位于当前目录中,依赖项被下载到quicklisp目录并从那里加载。

1 个答案:

答案 0 :(得分:4)

您放入local-projects文件夹的任何项目都将覆盖Quicklisp提供的版本。这是使用项目的修改版本的最简单方法。

通过查看https://github.com/quicklisp/quicklisp-projects,您可以找到Quicklisp获取项目的位置。例如,lispbuilder上游信息来自https://github.com/quicklisp/quicklisp-projects/blob/master/lispbuilder/source.txt