1

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.

SigTerm
  • 26,089
  • 6
  • 66
  • 115
  • Out of interest what kind of stuff are you looking to remove? – Baggers Sep 09 '13 at 08:51
  • @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 Sep 09 '13 at 15:00
  • https://github.com/cbaggers/lispbuilder-mini is this any help? – Baggers Sep 09 '13 at 15:23
  • @Baggers: Oh. I'll check it out. Sounds close to what I wanted. Is that your project, by the way (similar username)? – SigTerm Sep 09 '13 at 15:53
  • 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 Sep 09 '13 at 16:09

1 Answers1

4

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.

Xach
  • 11,774
  • 37
  • 38
  • I know about local-projects folder, however, as far as I know it installs system-wide override. I'd like to install override for current project only. I.e. If I have a folder structure with bunch of files (that represents entire project), "overriden" project should be located within subfolder of that main project. – SigTerm Sep 09 '13 at 15:03
  • Yes, that works within local-projects. It scans the entire folder structure for system files. – Xach Sep 10 '13 at 12:41
  • So, if I have a project (say, "x:/myproject") that is not within `~/.quikclisp`(or wherever quicklisp is installed), but has "local-project" subfolder (that'll be "x:/myproject/local-projects"), quicklisp will try to load projects from that folder? – SigTerm Sep 10 '13 at 14:11
  • No, it won't. But if you put it in the local-projects folder, it will. – Xach Sep 10 '13 at 15:16
  • That's not what I've been looking for. I'd like to load additional projects from current project's subfolder. – SigTerm Sep 10 '13 at 15:33