Late breaking news on the matter:
Doing
(require 'compile)
in
xemacs-21.1.10.exe -vanilla
causes following error:
Signaling: (end-of-file "internal input stream")
load-internal("compile" nil t nil binary)
load("compile" nil t nil)
require(compile)
I spent a lot of weekend to debug this.
Finally I had the idea to
#define ENCAPSULATE_CLOSE
in nt\config.h and rebuild XEmacs.
Setting a breakpoint in sys_close revealed that
/* Close all descriptors in use for Fload_internal.
This is used when starting a subprocess. */
void
close_load_descs (void)
{
Lisp_Object tail;
LIST_LOOP (tail, Vload_descriptor_list)
close (XINT (XCAR (tail)));
}
called by Fcall_process_internal is closing the fd of compile.el[1],
causing the error above.
Commenting out the call to
close_load_descs()
in
Fcall_process_internal
makes the error going away.
I haven't seen any averse effect of leaving these fd's open.
The problem is not really fixed in 21.2-b33.
It does not show up there because the renamed
Fold_call_process_internal is only used under these circumstances:
(if (or (noninteractive) (not (eq 'windows-nt system-type)))
(apply 'old-call-process-internal program infile buffer display args)
What do the Windows process-experts suggest to fix this for 21.1.x?
Best regards,
Adrian
Footnotes:
[1] I have moved compile.elc out of the way temporarily.
--
Adrian Aichner <adrian(a)xemacs.org>
Show replies by date