The function (
saves the running CLISP's memory to the file EXT:SAVEINITMEM &OPTIONAL
(filename "lispinit.mem") &KEY :KEEP-GLOBAL-HANDLERS :QUIET
:INIT-FUNCTION :LOCKED-PACKAGES :START-PACKAGE :EXECUTABLE :NORC
:SCRIPT :DOCUMENTATION :VERBOSE)filename;
extension #P".mem" is recommended (when filename does not have an
extension, #P".mem" extension is automatically added unless the file
being created is an executable).
:QUIETIf this argument is not NIL, the startup banner
and the good-bye message will be suppressed, as if by -q.
This is not recommended for interactive application delivery, please append your banner to ours (using init function) instead of replacing it.
:VERBOSECUSTOM:*SAVEINITMEM-VERBOSE*; initial value is T.
:NORCNIL, the RC file
loading will be suppressed, as if by -norc.
:INIT-FUNCTIONThis argument specifies a function that will be
executed at startup of the saved image, before entering the standard read-eval-print loop
(but after all other initialization, see Section 31.1.1, “Cradle to Grave”);
thus, if you want to avoid the read-eval-print loop, you have to call EXT:EXIT at the
end of the init function yourself
(this does not prevent CUSTOM:*FINI-HOOKS* from being run).
See the manual for passing command line arguments to this function.
See also CUSTOM:*INIT-HOOKS* and CUSTOM:*FINI-HOOKS*.
:SCRIPTThis options determines the handling of positional arguments when the image is invoked.
T, then the first positional argument
is the script name and the rest is placed into EXT:*ARGS*, as described
in Section 32.6.2, “Scripting with CLISP”.NIL, then all positional arguments
are placed into EXT:*ARGS* to be handled by the init function.
This option defaults to T when init function is NIL and to
NIL when init function is non-NIL.
:DOCUMENTATIONThe description of what this image does, printed
by the -help-image olption.
Defaults to (DOCUMENTATION init function
'FUNCTION)
:LOCKED-PACKAGESCUSTOM:*SYSTEM-PACKAGE-LIST*.
:START-PACKAGE*PACKAGE* in the image being saved, and defaults to the current
value of *PACKAGE*.:KEEP-GLOBAL-HANDLERSWhen non-NIL, the currently established global
handlers (either with EXT:SET-GLOBAL-HANDLER or with -on-error)
are inherited by the image. Defaults to NIL, so that
$clisp -i myfile -x '(EXT:SAVEINITMEM)'
will produce an image without any global handlers inherited from the batch mode of the above command.
:EXECUTABLEWhen non-NIL, the saved file will be a
standalone executable.
In this case, the #P".mem" extension is not added.
On Win32 and Cygwin the extension #P".exe"
is added instead.
Additionally, if this argument is 0, the standard
CLISP command line options will not be processed by the
executable but will be placed into EXT:*ARGS* instead.
This is convenient for application delivery, so that your
CLISP-based application can accept, e.g., -x.
To override this feature of the image, you have to prefix the
options with "--clisp", e.g.,
use --clisp-x instead of -x.
This, given such a CLISP-based application, you can get to an
ordinary CLISP read-eval-print loop by doing
$application --clisp-x '(EXT:SAVEINITMEM"myclisp" :executable t :init-function nil)'$./myclisp [1]> (! 20) 2432902008176640000
These instructions are also printed by
--clisp--help.
Of course, this feature opens a security hole
if the application is running setuid root,
therefore CLISP resets the effective group and user IDs to the real
ones if it sees a "--clisp-*" option.
You can use this memory image with the -M option.
On UNIX systems, you may compress it with GNU gzip to save disk
space.
Memory images are not portable across different platforms
(in contrast with platform-independent #P".fas" files).
They are not even portable across linking sets: image saved using
the full linking set cannot be used with the base runtime:
$clisp -K full -x '(EXT:SAVEINITMEM)'$clisp -K base -M lispinit.mem base/lisp.run: initialization file `lispinit.mem' was not created by this version of CLISP runtime
See also SFmail/BF6EFF38DF3FA647BBD932720D8BED650BAA11%40parmbx02.ilog.biz/Gmane/devel/17757.
| These notes document CLISP version 2.49 | Last modified: 2010-07-07 |