I managed to reproduce this with 21.4.6 and 21.5.4 under cygwin and 21.4.5 under Linux.
quimby$ cat foo.el
(let* ((buf (compile "make"))
(proc (get-buffer-process buf)))
(while (= 0 (process-exit-status proc))
(sleep-for 1))
(message "%s" (buffer-string buf)))
quimby$
quimby$
quimby$ xemacs -vanilla -batch -load foo.el
(No files need saving)
Fatal error (11).
Your files have been auto-saved.
Use `M-x recover-session' to recover them.
If you have access to the PROBLEMS file that came with your
version of XEmacs, please check to see if your crash is described
there, as there may be a workaround available.
Otherwise, please report this bug by running the send-pr
script included with XEmacs, or selecting `Send Bug Report'
from the help menu.
As a last resort send ordinary email to `crashes(a)xemacs.org'.
*MAKE SURE* to include the information in the command
M-x describe-installation.
If at all possible, *please* try to obtain a C stack backtrace;
it will help us immensely in determining what went wrong.
To do this, locate the core file that was produced as a result
of this crash (it's usually called `core' and is located in the
directory in which you started the editor, or maybe in your home
directory), and type
gdb /usr/local/bin/xemacs core
then type `where' when the debugger prompt comes up.
(If you don't have GDB on your system, you might have DBX,
or XDB, or SDB. A similar procedure should work for all of
these. Ask your system administrator if you need more help.)
Lisp backtrace follows:
pos-visible-in-window-p(152 #<window on "*compilation*" 0x2436>)
# bind (buffer-read-only status)
# (unwind-protect ...)
# bind (obuf omax opoint estatus window buffer msg proc)
compilation-sentinel(#<process "compilation" pid 3612 state:exit>
"exited abnormally with code 2\n")
# (condition-case ... . error)
# bind (inhibit-quit)
# (unwind-protect ...)
# (unwind-protect ...)
sleep-for(1)
(while (= 0 (process-exit-status proc)) (sleep-for 1))
# bind (proc buf)
(let* ((buf ...) (proc ...)) (while (= 0 ...) (sleep-for 1)) (message "%s"
(buffer-string buf)))
# bind (current-load-list)
# (unwind-protect ...)
# bind (load-file-name)
# (unwind-protect ...)
# (unwind-protect ...)
# (unwind-protect ...)
# (unwind-protect ...)
# (unwind-protect ...)
load-internal("/home/stodghil/foo.el" nil t nil undecided)
# bind (path handler filename nosuffix nomessage noerror file)
load("/home/stodghil/foo.el" nil t)
# bind (file arg)
command-line-do-load("-load")
# bind (dir file-count line end-of-options file-p arg tem)
command-line-1()
# bind (command-line-args-left)
command-line()
# (unwind-protect ...)
normal-top-level()
# (condition-case ... . error)
# (catch top-level ...)
Segmentation fault
quimby$