| 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 | |
|---|