1
votes

I have small common lisp project that uses lispbuilder-sdl. I'd like to make a fork of lispbuilder-sdl, put it into subdirectory and remove some stuff I don't need from it.

How can I do that?

As far as I know, quicklisp can load projects that are within current directory, within "local-projects" directory (in whatever folder quicklisp installed itself into), or downloads them from the internet. So how do I make a "subproject" that is a fork of existing project (that is available via quickload?) without polluting top-level directory with *.asd files?

--additional info--

I'm using 32bit clozure-cl on windows 7 64bit.

Currently project starts using this file:

(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 is located within current directory, dependencies are downloaded into quicklisp directory and are loaded from there.

1
Out of interest what kind of stuff are you looking to remove?Baggers
@Baggers: lisp-builder-sdl has bunch of pixel software rendering functions I don't need. There's also OpenGL bindings I don't need (because I use cl-opengl), also it has a habit of complaining that "bare structure pointers are deprecated" during cffi calls. I'm not actually sure if I'll ever get to stripping down extra features, but I'd still like to know how to install local override for a project.SigTerm
@Baggers: Oh. I'll check it out. Sounds close to what I wanted. Is that your project, by the way (similar username)?SigTerm
Aye it is one of mine. It is lispbuilder with anything unrelated to modern opengl ripped out. I use cl-opengl too so their own wrapper is gone too. Also I didn’t like how lispbuilder owned the main loop so the event handling has been separated from main loop control. I haven’t look at it in a while as it was working enough for me to carry on with other development so if you use it look out for unfinished hackery!Baggers

1 Answers

4
votes

Any project you put into the local-projects folder will override the Quicklisp-supplied version. That is the easiest way to use a modified version of a project.

You can find out where Quicklisp gets a project by checking https://github.com/quicklisp/quicklisp-projects. For example, lispbuilder upstream info comes from https://github.com/quicklisp/quicklisp-projects/blob/master/lispbuilder/source.txt.