dump-image should not make CLISP images executable

Pierre Neidhardt mail at ambrevar.xyz
Tue Dec 1 09:56:34 UTC 2020


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/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 511 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20201201/759ec975/attachment.sig>


More information about the asdf-devel mailing list