Recently Written · git

clapt

Archived: generate SBCL cores for lots of libraries.

git clone https://github.com/equwal/clapt

Log | Files | Refs


README.org (2098 bytes)

1 #+EMAIL: web@spensertruex.com
2 #+OPTIONS: email:t toc:2
3 #+VERSION: 0.0.2
4 
5 Archived. Use [[https://github.com/roswell/roswell][roswell]] instead.
6 #+caption: Librarian icon
7 [[file:https://spensertruex.com/static/librarian-mini.png]]
8 
9 #+begin_quote
10 Clapt, having been clapt into existence, is the apt CL package manager.
11 #+end_quote
12 
13 * Clapt
14 A package managing /client/. Keep a list of packages efficiently installed.
15 * Install
16 We need to know which packages are needed, and whether they are from quicklisp.
17 1. =(asdf:load-system :clapt)=
18 2. =(clapt:install)=. SBCL will save and die.
19 By default clapt will try to overwrite your installed core file. This
20 may require root access on your system; alternatively, try
21 =(clapt:install :core "path-to-your-core")= for a different core.
22 * Adding packages
23 Call =clapt:add= with the manager and packages. Current managers are =:asdf= and
24 =:quicklisp=.
25 * Updating packages
26 #+begin_src common-lisp :tangle no
27 (clapt:update)
28 #+end_src
29 
30 * Rationale
31 Loading a lot of packages from a script is slow, and having to reload the image
32 manually on every update is too laborious. A simple package manager should be able to do all of that.
33 * Alternatives
34 - Just write an init script for your lisp like:
35 #+begin_src common-lisp :tangle no
36 (ql:quickload :petalisp)
37 (ql:quickload :coleslaw)
38 ;;; ... etc.
39 #+end_src
40 This is fine if the number of packages is low. Eventually it can start to take
41 too long.
42 - Store your core manually.
43   1. Write a script like the one above.
44   2. =load= it.
45   3. Save your core. SBCL has =sb-ext:save-lisp-and-die= for this.
46   4. Start your lisp with =sbcl --core "path/to/core"= or similar.
47 This is essentially what this script does, but lacks backups and needs to be
48 done every time the lisp is updated.
49 - clpm is another attempt at the same, and has the benefit of removing itself
50   from the core. It has dependencies, and is a bit involved to use.
51 
52 * Supported Systems
53 Looking to increase the number of items here:
54 - SUPPORTED:
55   - SBCL
56 - TO BE SUPPORTED:
57   - Clisp
58   - CCL
59   -
60 * Contributing
61   See the TODO file for ideas
62 * License
63 GNU GPL v3