common lisp: разветвить загруженный quicklisp проект в подкаталог

У меня есть небольшой общий проект lisp, который использует lispbuilder-sdl. Я хотел бы сделать ответвление lispbuilder-sdl, поместить его в подкаталог и удалить из него некоторые вещи, которые мне не нужны.

Как я могу это сделать?

Насколько мне известно, quicklisp может загружать проекты, которые находятся в текущем каталоге, в каталоге «local-projects» (в любую папку, в которую установлен quicklisp) или загружает их из Интернета. Итак, как мне создать «подпроект», который является ответвлением существующего проекта (доступного через быструю загрузку?), не загрязняя каталог верхнего уровня файлами *.asd?

--Дополнительная информация--

Я использую 32-битный clozure-cl на 64-битной Windows 7.

В настоящее время проект начинает использовать этот файл:

(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 и загружаются оттуда.


person SigTerm    schedule 08.09.2013    source источник
comment
Ради интереса, какие вещи вы хотите удалить?   -  person Baggers    schedule 09.09.2013
comment
@Baggers: lisp-builder-sdl имеет множество функций рендеринга программного обеспечения для пикселей, которые мне не нужны. Есть также привязки OpenGL, которые мне не нужны (потому что я использую cl-opengl), также у него есть привычка жаловаться, что указатели голой структуры устарели во время вызовов cffi. На самом деле я не уверен, что когда-нибудь уберу дополнительные функции, но мне все же хотелось бы знать, как установить локальное переопределение для проекта.   -  person SigTerm    schedule 09.09.2013
comment
github.com/cbaggers/lispbuilder-mini поможет ли это?   -  person Baggers    schedule 09.09.2013
comment
@Баггерс: О. Я проверю это. Звучит близко к тому, что я хотел. Кстати, это твой проект (похожее имя пользователя)?   -  person SigTerm    schedule 09.09.2013
comment
Да, это один из моих. Это lispbuilder, из которого вырвано все, что не связано с современным opengl. Я тоже использую cl-opengl, поэтому их собственная оболочка тоже исчезла. Также мне не понравилось, что lispbuilder владел основным циклом, поэтому обработка событий была отделена от управления основным циклом. Я не смотрел на него какое-то время, так как он работал достаточно, чтобы я мог продолжать другие разработки, поэтому, если вы используете его, следите за незавершенным хакерством!   -  person Baggers    schedule 09.09.2013


Ответы (1)


Любой проект, который вы поместите в папку локальных проектов, переопределит версию, предоставленную Quicklisp. Это самый простой способ использовать модифицированную версию проекта.

Вы можете узнать, откуда Quicklisp получает проект, проверив https://github.com/quicklisp/quicklisp-projects< /а>. Например, исходная информация lispbuilder поступает с https://github.com/quicklisp/quicklisp-projects/blob/master/lispbuilder/source.txt.

person Xach    schedule 09.09.2013
comment
Я знаю о папке локальных проектов, однако, насколько мне известно, она устанавливает общесистемное переопределение. Я хочу установить переопределение только для текущего проекта. т.е. Если у меня есть структура папок с кучей файлов (которые представляют весь проект), переопределенный проект должен находиться в подпапке этого основного проекта. - person SigTerm; 09.09.2013
comment
Да, это работает в рамках локальных проектов. Он сканирует всю структуру папок на наличие системных файлов. - person Xach; 10.09.2013
comment
Итак, если у меня есть проект (скажем, x:/myproject), который не находится в ~/.quikclisp (или там, где установлен quicklisp), но имеет подпапку local-project (это будет x:/myproject/local-projects), quicklisp попытается загрузить проекты из этой папки? - person SigTerm; 10.09.2013
comment
Нет, не будет. Но если вы поместите его в папку локальных проектов, он будет. - person Xach; 10.09.2013
comment
Это не то, что я искал. Я хочу загрузить дополнительные проекты из подпапки текущего проекта. - person SigTerm; 10.09.2013