Hi! I noticed a possible mistake in the dump-image code for CLISP:
--8<---------------cut here---------------start------------->8---
(apply #'ext:saveinitmem filename
:quiet t
:start-package *package*
:keep-global-handlers nil
:executable (if executable 0 t) ;--- requires clisp 2.48 or later,
still catches --clisp-x
(when executable
(list
;; :parse-options nil ;--- requires a non-standard patch to clisp.
:norc t :script nil :init-function #'restore-image)))
--8<---------------cut here---------------end--------------->8---
According to the documentation
(https://clisp.sourceforge.io/impnotes/image.html):
> When 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.
Here since we are setting `:executable` to 0 or t, the result is always
executable. I don't think this is right because then the result cannot
be loaded with `clisp -M path/ro/result`.
I believe the fix would be
```diff
- :executable (if executable 0 t)
+ :executable (if executable 0 nil)
```
Cheers!
--
Pierre Neidhardt
https://ambrevar.xyz/
signature.asc
Description: PGP signature
