Re: save-application bug
Gary Byers <[email protected]> Fri, 2 Aug 2002 16:15:40 -0600 (MDT)
| Newsgroups | gmane.lisp.openmcl.bugs |
|---|---|
| Message-ID | <[email protected]> |
There's nothing in SAVE-APPLICATION that (intentionally) cares about what the package is. There's apparently a bug pretty deep in the guts of SAVE-APPLICATION (more likely in the code that tries to "purify" the image by copying code and the pnames of interned symbols to read-only areas) that seems to foul things up, apparently depending on the state of *PACKAGE*. Note that (as of the last couple of versions), *PACKAGE* is set to the CL-USER package when ppc-boot[.image] gets everything loaded, so the initial call to SAVE-APPLICATION is typically made from a package other than CCL. I'm still trying to figure out what gets fouled up, but it seems more likely that it has something to do with some attribute of the package than with what package is current per se (something like "if the package has internal symbols but doesn't have external symbols and it's a Friday, the code that does purification accidentally clobbers some data structure.") For what it's worth, I can provoke the bug under Darwin by: ? (in-package "ANSI-LOOP") ; some random package #<Package "ANSI-LOOP"> ? (save-application "bad.image") but doing the equivalent under LinuxPPC seems to work fine (and yields an image that starts up in the ANSI-LOOP package ...) On Fri, 2 Aug 2002, Hamilton Link wrote: > I think somewhere in the docs it says you have to run save-application > in the ccl package for it to work, but if you don't it should just print > an error message and return, not die. > > ? (load "/Users/helink/work/defsystem-3.x/defsystem.lisp") > ;Compiler warnings : > ; Unknown declaration (OPTIMIZE (INHIBIT-WARNINGS 3)), in > OPERATE-ON-SYSTEM. > ; Variable *COMPILE-VERBOSE* not ignored, in OPERATE-ON-SYSTEM. > ;Compiler warnings : > ; Unused lexical variable ARGUMENTS, in RUN-UNIX-PROGRAM. > ; Unused lexical variable PROGRAM, in RUN-UNIX-PROGRAM. > #P"/Volumes/Data Disk/SVNDIR/defsystem-3.x/defsystem.lisp" > ? (save-application "dppcl-ds.image") > Fatal error: : save_application > - operating system error 14. > % > > vs. > > ? (load "/Users/helink/work/defsystem-3.x/defsystem.lisp") > ;Compiler warnings : > ; Unknown declaration (OPTIMIZE (INHIBIT-WARNINGS 3)), in > OPERATE-ON-SYSTEM. > ; Variable *COMPILE-VERBOSE* not ignored, in OPERATE-ON-SYSTEM. > ;Compiler warnings : > ; Unused lexical variable ARGUMENTS, in RUN-UNIX-PROGRAM. > ; Unused lexical variable PROGRAM, in RUN-UNIX-PROGRAM. > #P"/Volumes/Data Disk/SVNDIR/defsystem-3.x/defsystem.lisp" > ? (in-package :ccl) > #<Package "CCL"> > ? (save-application "dppccl-ds.image") > % > > > >