configure.ac: Don't try to dump Lisps which we couldn't find.
[runlisp] / dump-runlisp-image.1.in
CommitLineData
10427eb2
MW
1.\" -*-nroff-*-
2.\"
3.\" Manual for `dump-runlisp-image'
4.\"
5.\" (c) 2020 Mark Wooding
6.\"
7.
8.\"----- Licensing notice ---------------------------------------------------
9.\"
10.\" This file is part of Runlisp, a tool for invoking Common Lisp scripts.
11.\"
12.\" Runlisp is free software: you can redistribute it and/or modify it
13.\" under the terms of the GNU General Public License as published by the
14.\" Free Software Foundation; either version 3 of the License, or (at your
15.\" option) any later version.
16.\"
17.\" Runlisp is distributed in the hope that it will be useful, but WITHOUT
18.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
20.\" for more details.
21.\"
22.\" You should have received a copy of the GNU General Public License
23.\" along with Runlisp. If not, see <https://www.gnu.org/licenses/>.
24.
25.ie t \{\
26. ds o \(bu
27. if \n(.g \{\
28. fam P
29. ev an-1
30. fam P
31. ev
32. \}
33.\}
34.el \{\
35. ds o o
36.\}
37.
38.de hP
39.IP
40\h'-\w'\fB\\$1\ \fP'u'\fB\\$1\ \fP\c
41..
42.ds , \h'.16667m'
43.
44.\"--------------------------------------------------------------------------
45.TH dump-runlisp-image 1 "12 August 2020" "Mark Wooding"
46.SH NAME
47dump-runlisp-image \- dump Lisp images for faster script execution
48.
49.\"--------------------------------------------------------------------------
50.SH SYNOPSIS
51.
52.B dump-runlisp-image
53.RB [ \-RUafinqrv ]
54.RB [ +RUfinr ]
55.RB [ \-O
56.IR output ]
57.br
58 \&
59.RB [ \-c
60.IR conf ]
61.RB [ \-o
62.RI [ sect \c
63.BR : ] \c
64.IB var = \c
65.IR value ]
66.RB [ \-j
67.IR njobs ]
68.RI [ lisp
69\&...]
70.
71.\"--------------------------------------------------------------------------
72.SH DESCRIPTION
73.
74The
75.B dump-runlisp-image
76program builds custom images for use by
77.BR runlisp (1).
78For many Lisp implementation,
79a custom image,
80with ASDF already loaded,
81can start scripts much more quickly
82than the `vanilla' images installed by default.
83The downside is that custom images may be rather large.
84.
85.SS "Options"
86The following options are accepted on the command line.
87.
88.TP
89.BR "\-h" ", " "\-\-help"
90Write a synopsis of
91.BR dump-runlisp-image 's
92command-line syntax
93and a description of the command-line options
94to standard output
95and immediately exit with status 0.
96.
97.TP
98.BR "\-V" ", " "\-\-version"
99Write
100.BR dump-runlisp-image 's
101version number
102to standard output
103and immediately exit with status 0.
104.
105.TP
106.BR "\-R" ", " "\-\-remove-other"
107After processing the selected Lisp implementations,
108delete all of the image files corresponding to other Lisps
109defined in the configuration.
110Negate with
111.B +R
112or
113.BR \-\-no-remove-other .
114.
115.TP
116.BR "\-U" ", " "\-\-remove-unknown"
117After processing the selected Lisp implementations,
118delete all of the files in the image directory which
119.I aren't
120image files of a configured Lisp implementation.
121Negate with
122.B +U
123or
124.BR \-\-no-remove-unknown .
125.
126.TP
127.BI "\-O" "\fR, " "\-\-output=" output
128If
129.I output
130names a directory,
131then write images to that directory
132with their default names as specified in the configuration file.
133Otherwise,
134exactly one Lisp implementation must be explicitly named,
135the
136.RB ` \-R '
137and
138.RB `\-U '
139options must not be set,
140and
141the image is written to a file named
142.IR output .
143By default,
144images are written to the directory in which
145.BR runlisp (1)
146will look in when checking for custom images:
147run
148.B query-runlisp-config -x@image-dir
149to see the default setting.
150.
151.TP
152.BR "\-a" ", " "\-\-all-configured"
153Select all configured Lisp implementations.
154You must either list Lisp implementations explicitly on the command line
155or set the
156.RB ` \- a'
157option,
158but not both.
159.
160.TP
161.BI "\-c" "\fR, " "\-\-config-file=" conf
162Read configuration from
163.IR conf .
164If
165.I conf
166is a directory, then all of the files within
167whose names end with
168.RB ` .conf ',
169are loaded, in ascending lexicographical order;
170otherwise,
171.I conf
172is opened as a file.
173All of the files are expected to as described in
174.BR runlisp.conf (5).
175.
176.TP
177.BR "\-f" ", " "\-\-force"
178Create fresh Lisp images
179even if a file with the appropriate name
180already exists.
181Negate with
182.B +f
183or
184.BR \-\-no-force .
185.
186.TP
187.BR "\-i" ", " "\-\-check-installed"
188Only select those Lisp implementations
189which are actually installed
190(and can be found).
191To count as `installed',
192the program named by
193.B command
194must exist and be executable in one of the directories listed in the
195.B PATH
196environment variable,
197as must the command named in the first word of the
198.B dump-image
199command line.
200Note that a Lisp implementation which fails this check
201is not counted as `selected' for the purposes of the
202.RB ` \-R '
203option above.
204For example, the command
205.B "dump-runlisp-image \-Rai"
206will dump images for Lisps which have been installed since the last run,
207and delete images for Lisps which have been uninstalled since then.
208Negate with
209.B +i
210or
211.BR \-\-no-check-installed .
212.
213.TP
214.BI "\-j" "\fR, " "\-\-jobs=" njobs
215Dump image for up to
216.I njobs
217Lisp implementations in parallel.
218The default is to run the jobs sequentially.
219.
220.TP
221.BR "\-n" ", " "-\-dry-run"
222Don't actually run any commands to dump images.
223This may be helpful for the curious,
224in conjunction with
225.RB ` \-v '
226to increase the verbosity.
227Negate with
228.B +n
229or
230.BR "\-\-no-dry-run" .
231.
232.TP
233.BR "\-q" ", " "\-\-quiet"
234Don't print warning messages.
235This option may be repeated:
236each use reduces verbosity by one step,
237counteracting one
238.RB ` \-v '
239option.
240The default verbosity level is 1,
241which prints only warning measages.
242.
243.TP
244.BR "\-r" ", " "\-\-remove-image"
245Delete image files for the selected Lisp implementations,
246rather than dumping them.
247Negate with
248.B +r
249or
250.BR \-\-no-remove-image .
251.
252.TP
253.BR "\-v" ", " "\-\-verbose"
254Be more verbose about the process of creating images.
255Lisp implementations can be rather noisy:
256by default,
257.B dump-runlisp-image
258runs silently unless something goes wrong,
259in which case it prints the failed Lisp command line
260and its output.
261If you set
262.B \-v
263then
264.B dump-runlisp-image
265will show Lisp implementation's noise immediately,
266without waiting to see whether it succeeds or fails.
267.
268.SS "Operation"
269The
270.B dump-runlisp-image
271program first determines a collection of
272.I selected
273Lisp implementations.
274If the
275.RB ` \-a '
276option is not set,
277then the selected Lisps are those named on the command line.
278If
279.RB ` \-a '
280is set,
281and the configuration contains a setting for
282.B dump
283in the
284.B @CONFIG
285section,
286then its (expanded) value is taken to be
287a list of Lisp implementation names
288separated by commas and/or one or more whitespace characters,
289and these named Lisp implementations are selected;
290if there is no
291.B dump
292setting, then
293.I all
294configured Lisp implementations which claim support for custom images
295\(en i.e., configuration sections with settings for
296.B run-script
297and
298.B image-file
299\(en are selected, and the
300.RB ` \-i '
301option is forced on.
302If the
303.RB ` \-i '
304option is set,
305then only those Lisp implementations which are actually installed
306are selected.
307.PP
308Having established the selected Lisps,
309.B dump-runlisp-image
310proceeds to act on them:
311in the absence of the
312.RB ` \-r '
313option,
314it attempts to dump a custom image
315for each selected Lisp implementation,
316unless an image file already exists
317or the
318.RB ` \-f '
319option is set.
320(Note that
321.RB ` \-f '
322is an optimization of image dumping,
323and does not affect selection.)
324On the other hand, if
325.RB ` \-r '
326is set,
327then the custom image files of the selected Lisp implementations
328are deleted.
329.PP
330Next, if the
331.RB ` \-R '
332option is set,
333then all the images for Lisp implementations
334which are defined in the configuration
335but were
336.I not
337selected
338are deleted.
339.PP
340Finally, if the
341.RB ` \-U '
342option is set,
343then all files in the image directory
344which aren't recognized as being
345the custom image of some Lisp implementation
346are deleted.
347.PP
348If all of these operations are successfully performed
349then
350.B dump-runlisp-image
351exits with status 0;
352if there was a problem with the command line,
353or if any jobs fail,
354then it exits with status 127.
355.
356.\"--------------------------------------------------------------------------
357.
358.SH SEE ALSO
359.BR query-runlisp-config (1),
360.BR runlisp (1),
361.BR runlisp.conf (5).
362.
363.SH AUTHOR
364Mark Wooding, <mdw@distorted.org.uk>
365.
366.\"----- That's all, folks --------------------------------------------------