Menu

#674 saveinitmem :executable t doesn't save the modules.

lisp error
open
nobody
None
5
2017-10-17
2015-08-07
No

As seen below, when we load modules, such as (require "syscall") and then save an executable image, this image cannot run, because it has lost the modules: it is not standalone!

Also, this saved executable image is considered created by a different runtime!

This worked correctly earlier, when we had -Kfull, etc.

[pjb@kuiper :0.0 clisp-syscall-bug]$ cat generate.lisp
;;;; -- mode:lisp;coding:utf-8 --
(in-package "COMMON-LISP-USER")
(print (sort (mapcar (function package-name) (list-all-packages))
(function string<)))
(print modules)
(terpri)

(defun main ()
(print (sort (mapcar (function package-name) (list-all-packages))
(function string<)))
(print modules)
(terpri)
0)

(ext:saveinitmem
"test-bug-syscalls"
:quiet t
:verbose t
:norc t
:script t
:init-function (lambda ()
(ext:exit (handler-case
(main)
(error ()
1))))
:documentation "Test bug syscalls"
:start-package "COMMON-LISP-USER"
:keep-global-handlers nil
:executable t)

(ext:quit)

;;;; THE END ;;;;
[pjb@kuiper :0.0 clisp-syscall-bug]$ cat Makefile
all:bug

bug:test-bug-syscalls
@ printf "==================== ./test-bug-syscalls \n"
- ./test-bug-syscalls \ -q -ansi -norc \ -x '(sort (mapcar (function package-name) (list-all-packages)) (function string<))' \ -x 'modules'
@ printf "==================== ./test-bug-syscalls -M /usr/lib/clisp-2.49/base/lispinit.mem \n"
- ./test-bug-syscalls \ -q -ansi -norc \ -M /usr/lib/clisp-2.49/base/lispinit.mem \ -x '(sort (mapcar (function package-name) (list-all-packages)) (function string<))' \ -x 'modules'
@ printf "==================== /usr/lib/clisp-2.49/base/lisp.run -M ./test-bug-syscalls \n"
- /usr/lib/clisp-2.49/base/lisp.run \ -q -ansi -norc \ -M ./test-bug-syscalls \ -x '(sort (mapcar (function package-name) (list-all-packages)) (function string<))' \ -x 'modules'

test-bug-syscalls:generate.lisp
/usr/bin/clisp --quiet -ansi \ -x '(load "generate.lisp")'

clean:
- rm test-bug-syscalls
[pjb@kuiper :0.0 clisp-syscall-bug]$ make clean
rm test-bug-syscalls
[pjb@kuiper :0.0 clisp-syscall-bug]$ make
/usr/bin/clisp --quiet -ansi \ -x '(load "generate.lisp")'
;; Loading file /home/pjb/.clisprc.lisp ...
;; Loading file /usr/lib/clisp-2.49/dynmod/linux.lisp ...
;; Loading module linux from /usr/lib/clisp-2.49/dynmod/lib-linux.so
;; Loaded module linux from /usr/lib/clisp-2.49/dynmod/lib-linux.so
;; Loading file /usr/lib/clisp-2.49/bindings/glibc/linux.fas ...
;; Loaded file /usr/lib/clisp-2.49/bindings/glibc/linux.fas
;; Loading file /usr/lib/clisp-2.49/bindings/glibc/wrap.fas ...
;; Loaded file /usr/lib/clisp-2.49/bindings/glibc/wrap.fas
;; Loaded file /usr/lib/clisp-2.49/dynmod/linux.lisp
;; Loading file /home/pjb/rc/common.lisp ...
;; -- mode:lisp --
(:OUTPUT-TRANSLATIONS (T (:HOME ".cache" "common-lisp" :HOSTNAME :IMPLEMENTATION))
(T (:HOME ".cache" "common-lisp" :IMPLEMENTATION)) :INHERIT-CONFIGURATION)
;; Loading file /home/pjb/quicklisp/setup.lisp ...
;; Loaded file /home/pjb/quicklisp/setup.lisp
To load "com.informatimago.common-lisp":
Load 1 ASDF system:
com.informatimago.common-lisp
; Loading "com.informatimago.common-lisp"
.
To load "com.informatimago.common-lisp.lisp.stepper":
Load 1 ASDF system:
com.informatimago.common-lisp.lisp.stepper
; Loading "com.informatimago.common-lisp.lisp.stepper"

To load "com.informatimago.clmisc":
Load 1 ASDF system:
com.informatimago.clmisc
; Loading "com.informatimago.clmisc"

To load "com.informatimago.tools.pathname":
Load 1 ASDF system:
com.informatimago.tools.pathname
; Loading "com.informatimago.tools.pathname"

To load "com.informatimago.tools.manifest":
Load 1 ASDF system:
com.informatimago.tools.manifest
; Loading "com.informatimago.tools.manifest"

To load "com.informatimago.tools.symbol":
Load 1 ASDF system:
com.informatimago.tools.symbol
; Loading "com.informatimago.tools.symbol"

To load "com.informatimago.tools.source":
Load 1 ASDF system:
com.informatimago.tools.source
; Loading "com.informatimago.tools.source"

To load "com.informatimago.tools.summary":
Load 1 ASDF system:
com.informatimago.tools.summary
; Loading "com.informatimago.tools.summary"

To load "com.informatimago.tools.thread":
Load 1 ASDF system:
com.informatimago.tools.thread
; Loading "com.informatimago.tools.thread"

To load "com.informatimago.tools.quicklisp":
Load 1 ASDF system:
com.informatimago.tools.quicklisp
; Loading "com.informatimago.tools.quicklisp"

To load "com.informatimago.tools.make-depends":
Load 1 ASDF system:
com.informatimago.tools.make-depends
; Loading "com.informatimago.tools.make-depends"

To load "com.informatimago.tools.script":
Load 1 ASDF system:
com.informatimago.tools.script
; Loading "com.informatimago.tools.script"

To load "com.informatimago.tools.check-asdf":
Load 1 ASDF system:
com.informatimago.tools.check-asdf
; Loading "com.informatimago.tools.check-asdf"

To load "com.informatimago.clext":
Load 1 ASDF system:
com.informatimago.clext
; Loading "com.informatimago.clext"

To load "com.informatimago.clisp":
Load 1 ASDF system:
com.informatimago.clisp
; Loading "com.informatimago.clisp"

To load "alexandria":
Load 1 ASDF system:
alexandria
; Loading "alexandria"

;; Loaded file /home/pjb/rc/common.lisp
;; Loaded file /home/pjb/.clisprc.lisp
;; Loading file generate.lisp ...
("ALEXANDRIA.0.DEV" "ASDF" "BORDEAUX-THREADS" "CFFI-GROVEL" "CHARSET" "CL-PPCRE" "CL-PPCRE-ASD" "CLOS" "CLOSER-COMMON-LISP" "CLOSER-COMMON-LISP-USER" "CLOSER-MOP" "COM.INFORMATIMAGO.CLEXT.ASSOCIATION" "COM.INFORMATIMAGO.CLEXT.CHARACTER-SETS" "COM.INFORMATIMAGO.CLEXT.CLOSER-WEAK" "COM.INFORMATIMAGO.CLEXT.CLOSER-WEAK-USER" "COM.INFORMATIMAGO.CLISP.DISK" "COM.INFORMATIMAGO.CLISP.FIFO-STREAM" "COM.INFORMATIMAGO.CLISP.IOTASK" "COM.INFORMATIMAGO.CLISP.MAKE-VOLUMES" "COM.INFORMATIMAGO.CLISP.RFC1413" "COM.INFORMATIMAGO.CLISP.SCRIPT" "COM.INFORMATIMAGO.CLISP.SHELL" "COM.INFORMATIMAGO.CLISP.STRING" "COM.INFORMATIMAGO.CLISP.SUSV3" "COM.INFORMATIMAGO.CLISP.SUSV3-MC3" "COM.INFORMATIMAGO.CLISP.SUSV3-XSI" "COM.INFORMATIMAGO.CLISP.SYSLOG" "COM.INFORMATIMAGO.CLISP.VERSION" "COM.INFORMATIMAGO.CLISP.XTERM" "COM.INFORMATIMAGO.CLMISC.RESOURCE-UTILIZATION" "COM.INFORMATIMAGO.COMMON-LISP.ARITHMETIC.P127N2" "COM.INFORMATIMAGO.COMMON-LISP.ARITHMETIC.PRIMES" "COM.INFORMATIMAGO.COMMON-LISP.BANK.IBAN"
"COM.INFORMATIMAGO.COMMON-LISP.BANK.RIB" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.A-STAR" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.ACTIVITY" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.ARRAY" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.ASCII" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.BRELATION" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.BSET" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.CACHE" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.CHARACTER" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.CHARACTER-SETS" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.CIRCULAR" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.COMBINATION" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.CONSTRAINTS" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.DATE" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.DATE.UTILITY" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.DFA" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.DICTIONARY" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.DLL" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.ECMA048" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.FILE"
"COM.INFORMATIMAGO.COMMON-LISP.CESARUM.FLOAT-BINIO" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.GRAPH" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.HISTOGRAM" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.INDEX-SET" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.ISO3166" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.ISO4217" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.ISO639A" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.LIST" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.LLRBTREE" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.MESSAGE-QUEUE" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.PACKAGE" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.PEEK-STREAM" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.PMATCH" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.PRIORITY-QUEUE" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.QUEUE" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.RAIDEN" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.SEQUENCE" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.SET" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.SIMPLE-TEST" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.STREAM"
"COM.INFORMATIMAGO.COMMON-LISP.CESARUM.STRING" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.TEA" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.UTILITY" "COM.INFORMATIMAGO.COMMON-LISP.CESARUM.VERSION" "COM.INFORMATIMAGO.COMMON-LISP.CSV.CSV" "COM.INFORMATIMAGO.COMMON-LISP.DATA-ENCODING.BENCODE" "COM.INFORMATIMAGO.COMMON-LISP.DATA-ENCODING.DATA-ENCODING" "COM.INFORMATIMAGO.COMMON-LISP.DATA-ENCODING.ECP" "COM.INFORMATIMAGO.COMMON-LISP.DATA-ENCODING.HEXADECIMAL" "COM.INFORMATIMAGO.COMMON-LISP.DATA-ENCODING.IEEE-754" "COM.INFORMATIMAGO.COMMON-LISP.DIAGRAM.TREE-TO-DIAGRAM" "COM.INFORMATIMAGO.COMMON-LISP.ED.ED" "COM.INFORMATIMAGO.COMMON-LISP.GRAPHVIZ.GRAPH-DOT" "COM.INFORMATIMAGO.COMMON-LISP.GREGORIAN-CALENDAR" "COM.INFORMATIMAGO.COMMON-LISP.HEAP.HEAP" "COM.INFORMATIMAGO.COMMON-LISP.HEAP.MEMORY" "COM.INFORMATIMAGO.COMMON-LISP.HTML-GENERATOR.HTML" "COM.INFORMATIMAGO.COMMON-LISP.HTML-GENERATOR.HTML-ENTITIES" "COM.INFORMATIMAGO.COMMON-LISP.HTML-PARSER.PARSE-HTML" "COM.INFORMATIMAGO.COMMON-LISP.HTTP.HQUERY"
"COM.INFORMATIMAGO.COMMON-LISP.HTTP.HTRANS" "COM.INFORMATIMAGO.COMMON-LISP.INTERACTIVE.BROWSER" "COM.INFORMATIMAGO.COMMON-LISP.INTERACTIVE.INTERACTIVE" "COM.INFORMATIMAGO.COMMON-LISP.INVOICE.INVOICE" "COM.INFORMATIMAGO.COMMON-LISP.JULIAN-CALENDAR" "COM.INFORMATIMAGO.COMMON-LISP.LISP-READER.PACKAGE" "COM.INFORMATIMAGO.COMMON-LISP.LISP-READER.READER" "COM.INFORMATIMAGO.COMMON-LISP.LISP-SEXP.SOURCE-FORM" "COM.INFORMATIMAGO.COMMON-LISP.LISP-TEXT.SOURCE-TEXT" "COM.INFORMATIMAGO.COMMON-LISP.LISP.STEPPER" "COM.INFORMATIMAGO.COMMON-LISP.LISP.STEPPER.INTERNAL" "COM.INFORMATIMAGO.COMMON-LISP.PARSER.PARSER" "COM.INFORMATIMAGO.COMMON-LISP.PARSER.SCANNER" "COM.INFORMATIMAGO.COMMON-LISP.PICTURE.CONS-TO-ASCII" "COM.INFORMATIMAGO.COMMON-LISP.PICTURE.PICTURE" "COM.INFORMATIMAGO.COMMON-LISP.PICTURE.TREE-TO-ASCII" "COM.INFORMATIMAGO.COMMON-LISP.REGEXP.REGEXP" "COM.INFORMATIMAGO.COMMON-LISP.REGEXP.REGEXP-EMACS" "COM.INFORMATIMAGO.COMMON-LISP.REGEXP.REGEXP-POSIX"
"COM.INFORMATIMAGO.COMMON-LISP.REGEXP.REGEXP-POSIX.KEYWORD" "COM.INFORMATIMAGO.COMMON-LISP.RFC2822.RFC2822" "COM.INFORMATIMAGO.COMMON-LISP.RFC3548.RFC3548" "COM.INFORMATIMAGO.COMMON-LISP.UNIX.ALIASES" "COM.INFORMATIMAGO.COMMON-LISP.UNIX.GROUP" "COM.INFORMATIMAGO.COMMON-LISP.UNIX.OPTION" "COM.INFORMATIMAGO.COMMON-LISP.UNIX.PASSWD" "COM.INFORMATIMAGO.PJB" "COM.INFORMATIMAGO.TOOLS.ASDF" "COM.INFORMATIMAGO.TOOLS.ASDF-FILE" "COM.INFORMATIMAGO.TOOLS.CHECK-ASDF" "COM.INFORMATIMAGO.TOOLS.DEPENDENCY-CYCLES" "COM.INFORMATIMAGO.TOOLS.MAKE-DEPENDS" "COM.INFORMATIMAGO.TOOLS.MANIFEST" "COM.INFORMATIMAGO.TOOLS.PATHNAME" "COM.INFORMATIMAGO.TOOLS.QUICKLISP" "COM.INFORMATIMAGO.TOOLS.SCRIPT" "COM.INFORMATIMAGO.TOOLS.SOURCE" "COM.INFORMATIMAGO.TOOLS.SUMMARY" "COM.INFORMATIMAGO.TOOLS.SYMBOL" "COM.INFORMATIMAGO.TOOLS.THREAD" "COMMON-LISP" "COMMON-LISP-USER" "CS-COMMON-LISP" "CS-COMMON-LISP-USER" "CUSTOM" "EXPORTING" "EXT" "FFI" "GRAY" "GSTREAM" "I18N" "IOLIB-GROVEL" "KEYWORD" "LINUX" "POSIX" "QL-ABCL"
"QL-ALLEGRO" "QL-BUNDLE" "QL-CCL" "QL-CDB" "QL-CLASP" "QL-CLISP" "QL-CMUCL" "QL-CONFIG" "QL-DIST" "QL-DIST-USER" "QL-ECL" "QL-GUNZIPPER" "QL-HTTP" "QL-IMPL" "QL-IMPL-UTIL" "QL-INFO" "QL-LISPWORKS" "QL-MINITAR" "QL-MKCL" "QL-NETWORK" "QL-PROGRESS" "QL-SBCL" "QL-SCL" "QL-SETUP" "QL-UTIL" "QUICKLISP-CLIENT" "READLINE" "REGEXP" "SCREEN" "SOCKET" "SPLIT-SEQUENCE" "SYSTEM" "UIOP")
("ASDF" "linux" "readline" "regexp" "syscalls" "i18n")
;; Wrote the memory image into test-bug-syscalls (17,475,208 bytes)
Bytes permanently allocated: 164,640
Bytes currently in use: 14,830,688
Bytes available until next GC: 3,703,692
==================== ./test-bug-syscalls
./test-bug-syscalls \ -q -ansi -norc \ -x '(sort (mapcar (function package-name) (list-all-packages)) (function string<))' \ -x 'modules'
module 'syscalls' requires package OS.
make: [bug] Error 1 (ignored)
==================== ./test-bug-syscalls -M /usr/lib/clisp-2.49/base/lispinit.mem
./test-bug-syscalls \ -q -ansi -norc \ -M /usr/lib/clisp-2.49/base/lispinit.mem \ -x '(sort (mapcar (function package-name) (list-all-packages)) (function string<))' \ -x 'modules'
("CHARSET" "CLOS" "COMMON-LISP" "COMMON-LISP-USER" "CS-COMMON-LISP"
"CS-COMMON-LISP-USER" "CUSTOM" "EXPORTING" "EXT" "FFI" "GRAY" "GSTREAM" "I18N"
"KEYWORD" "POSIX" "READLINE" "REGEXP" "SCREEN" "SOCKET" "SYSTEM")
("readline" "regexp" "syscalls" "i18n")
==================== /usr/lib/clisp-2.49/base/lisp.run -M ./test-bug-syscalls
/usr/lib/clisp-2.49/base/lisp.run \ -q -ansi -norc \ -M ./test-bug-syscalls \ -x '(sort (mapcar (function package-name) (list-all-packages)) (function string<))' \ -x 'modules'
/usr/lib/clisp-2.49/base/lisp.run: initialization file `./test-bug-syscalls' was not created by this version of CLISP runtime
make: [bug] Error 1 (ignored)
[pjb@kuiper :0.0 clisp-syscall-bug]$

Discussion

  • Pascal J. Bourguignon

    Makefile & generate.lisp

     
  • Jean Louis

    Jean Louis - 2017-07-16

    With the recent mercurial version this is happening again. And I cannot make executable image.

    The error I get from executable image is: module 'syscalls' requires package OS

    If somebody knows work around, please let me know.

     
  • Hodorgasm

    Hodorgasm - 2017-10-17

    Are you using a pie enabled compiler? Maybe related to https://bugs.gentoo.org/618170?

     

Log in to post a comment.