Common Lisp style: multiple packages in same repo

Daniel Pezely daniel at pezely.com
Tue Aug 21 22:36:48 UTC 2018


I posted this to Stack Overflow but was hoping for more input.

https://stackoverflow.com/questions/51638864/common-lisp-style-multiple-packages-in-same-repo


May I get recommendations or links to representative code repositories 
with good style for multiple related Common Lisp packages, please?

For instance, consider a high-level workflow library with accompanying 
lower-level API, each in its own CL package but same git repo due to 
synchronized releases.

Each system (|*.asd| file) isolates tests and may be invoked using:

|(asdf:test-system foo :force t)|

Separate systems may be built via |make|, which definitely helps isolate 
SBCL code-coverage reports.

Some users of the library may only want to load the lower-level API. For 
simplifying dependencies for those using higher-level API, it seems best 
to keep everything bundled in one repo. Any revision to one library 
would likely require updating all for the same release.

I currently have a single directory tree with a subdirectory for each CL 
package. There's a top-level |Makefile| plus one in each subdirectory 
that the library maintain would use. The top-level also contains 
symbolic links for |.asd| files pointing into relevant subdirectories. 
(It's a library deeply dependent upon POSIX calls via |uiop-posix|, so 
it's only applicable on an OS with sym-links.)

This seems to be an issue at large considering issue #1 for 
Quicklisp-docs [0].

Found nothing relevant in Google's CL style guide [1], State of the 
Common Lisp Ecosystem, 2015 [2], Edi's CL Recipes [3] or Lisp-lang [4]. 
Browsing repos seem to have quite a mix of styles.

  * [0] https://github.com/rudolfochrist/quicklisp-docs/issues/1
  * [1] https://google.github.io/styleguide/lispguide.xml
  * [2]
    https://web.archive.org/web/20160305061250/http://eudoxia.me/article/common-lisp-sotu-2015/
  * [3] http://weitz.de/cl-recipes/
  * [4] http://lisp-lang.org/learn/writing-libraries but see also their
    section on Continuous Integration

Repo to be fixed: https://gitlab.com/dpezely/cl-mmap
(commit a23bd88d of 2018-07-14; release will be tagged when fixed)

Thanks,
   -Daniel


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/pro/attachments/20180821/43d9f96b/attachment.html>


More information about the pro mailing list