1 | ASDF-JAR |
---|
2 | ======== |
---|
3 | |
---|
4 | ASDF-JAR provides a system for packaging ASDF systems into jar |
---|
5 | archives for ABCL. Given a running ABCL image with loadable ASDF |
---|
6 | systems the code in this package will recursively package all the |
---|
7 | required source and fasls in a jar archive . |
---|
8 | |
---|
9 | To install ASDF systems, [Quicklisp]() is probably the best |
---|
10 | contemporary solution. The QUICKLISP-ABCL <file:../quicklisp-abcl> |
---|
11 | may be used to install Quicklisp at runtime from within ABCL. |
---|
12 | |
---|
13 | [Quicklisp]: http://www.quicklisp.org |
---|
14 | |
---|
15 | Once the requisite ASDF systems have been installed, ensure that this |
---|
16 | contrib is loaded via |
---|
17 | |
---|
18 | CL-USER) (require :abcl-contrib) |
---|
19 | CL-USER> (asdf:make :asdf-jar) |
---|
20 | |
---|
21 | Then, one may package any locally loadable ASDF system via |
---|
22 | ASDF-JAR:PACKAGE as follows: |
---|
23 | |
---|
24 | CL-USER> (asdf-jar:package :chunga :verbose t) |
---|
25 | Packaging ASDF definition of #<ASDF/SYSTEM:SYSTEM "chunga"> |
---|
26 | Performing unforced compilation of /var/tmp/chunga-all-1.1.7.jar. |
---|
27 | Packaging contents in '/var/tmp/chunga-all-1.1.7.jar'. |
---|
28 | Packaging with recursive dependencies #<ASDF/SYSTEM:SYSTEM "trivial-gray-streams">. |
---|
29 | /Users/evenson/quicklisp/dists/quicklisp/software/chunga-20221106-git/streams.lisp |
---|
30 | =>chunga/streams.lisp |
---|
31 | /Users/evenson/quicklisp/dists/quicklisp/software/chunga-20221106-git/input.lisp |
---|
32 | =>chunga/input.lisp |
---|
33 | /Users/evenson/quicklisp/dists/quicklisp/software/chunga-20221106-git/specials.lisp |
---|
34 | =>chunga/specials.lisp |
---|
35 | /Users/evenson/quicklisp/dists/quicklisp/software/chunga-20221106-git/known-words.lisp |
---|
36 | =>chunga/known-words.lisp |
---|
37 | /Users/evenson/quicklisp/dists/quicklisp/software/chunga-20221106-git/util.lisp |
---|
38 | =>chunga/util.lisp |
---|
39 | /Users/evenson/quicklisp/dists/quicklisp/software/chunga-20221106-git/read.lisp |
---|
40 | =>chunga/read.lisp |
---|
41 | /Users/evenson/quicklisp/dists/quicklisp/software/chunga-20221106-git/output.lisp |
---|
42 | =>chunga/output.lisp |
---|
43 | /Users/evenson/quicklisp/dists/quicklisp/software/chunga-20221106-git/conditions.lisp |
---|
44 | =>chunga/conditions.lisp |
---|
45 | /Users/evenson/quicklisp/dists/quicklisp/software/chunga-20221106-git/packages.lisp |
---|
46 | =>chunga/packages.lisp |
---|
47 | /Users/evenson/quicklisp/dists/quicklisp/software/trivial-gray-streams-20210124-git/streams.lisp |
---|
48 | =>trivial-gray-streams/streams.lisp |
---|
49 | /Users/evenson/quicklisp/dists/quicklisp/software/trivial-gray-streams-20210124-git/package.lisp |
---|
50 | =>trivial-gray-streams/package.lisp |
---|
51 | #P"/var/tmp/chunga-all-1.1.7.jar" |
---|
52 | #<EQUAL HASH-TABLE 13 entries, 22 buckets {5368E7A9}> |
---|
53 | |
---|
54 | |
---|
55 | The resulting jar contains the source required to run the ASDF system |
---|
56 | including any transitive ASDF dependencies. Each such system is |
---|
57 | packaged under its own top level directory within the jar archive. |
---|
58 | |
---|
59 | To load the system from the jar one needs to add the ASDF file |
---|
60 | locations to the ASDF source registry, conveniently abstracted as the |
---|
61 | ASDF-JAR:ADD-TO-JAR function: |
---|
62 | |
---|
63 | CL-USER> (asdf-jar:add-to-asdf "/var/tmp/chunga-all-1.1.7.jar) |
---|
64 | |
---|
65 | a subsequent |
---|
66 | |
---|
67 | CL-USER> (asdf:load-system :chunga) |
---|
68 | |
---|
69 | should load the ASDF system from the jar. |
---|
70 | |
---|
71 | Setting CL:*LOAD-VERBOSE* will allow one to verify that the subsequent |
---|
72 | load is indeed coming from the jar. |
---|
73 | |
---|
74 | # Colophon |
---|
75 | |
---|
76 | Mark Evenson |
---|
77 | Created: 20-JUN-2011 |
---|
78 | Revised: 01-APR-2023 |
---|
79 | |
---|
80 | |
---|