Subject: Re: bug#9132: 24.0.50; bootstrap failure on windows

From: Eli Zaretskii <[email-masked]>
Date: Fri, 22 Jul 2011 17:26:32 +0300

> From: Sam Steingold <[email-masked]>
> Cc: [email-masked]
> Date: Fri, 22 Jul 2011 10:08:08 -0400
> 
> > * Eli Zaretskii <[email-masked]> [2011-07-22 09:00:30 +0300]:
> >
> > So the symbol is bound, but Emacs thinks it's not a function?  What
> > does this print?
> >
> >   "./../src/oo/i386/emacs.exe" -batch -l ../lisp/emacs-lisp/bytecomp.el
> > --eval "(print (symbol-function 'batch-byte-compile))"
> 
> (closure (byte-compile--for-effect print-gensym-alist byte-compile--outbuffer by
> te-compiler-error-flag byte-compile-free-assignments byte-compile-free-reference
> s t) (&optional noforce) "Run `byte-compile-file' on the files remaining on the
> command line.
> Use this from the command line, with `-batch';
> it won't work in an interactive Emacs.
> Each file is processed even if an error occurred previously.
> For example, invoke \"emacs -batch -f batch-byte-compile $emacs/ ~/*.el\".
> If NOFORCE is non-nil, don't recompile a file that seems to be
> already up-to-date." (defvar command-line-args-left) (if (not noninteractive) (e
> rror "`batch-byte-compile' is to be used only with -batch")) (let ((error nil))
> (while command-line-args-left (if (file-directory-p (expand-file-name (car comma
> nd-line-args-left))) (let (source dest) (dolist (file (directory-files (car comm
> and-line-args-left))) (if (and (string-match emacs-lisp-file-regexp file) (not (
> auto-save-file-name-p file)) (setq source (expand-file-name file (car command-li
> ne-args-left))) (setq dest (byte-compile-dest-file source)) (file-exists-p dest)
>  (file-newer-than-file-p source dest)) (if (null (batch-byte-compile-file source
> )) (setq error t))))) (if (or (not noforce) (let* ((source (car command-line-arg
> s-left)) (dest (byte-compile-dest-file source))) (or (not (file-exists-p dest))
> (file-newer-than-file-p source dest)))) (if (null (batch-byte-compile-file (car
> command-line-args-left))) (setq error t)))) (setq command-line-args-left (cdr co
> mmand-line-args-left))) (kill-emacs (if error 1 0))))

Now I'm totally stumped: it shows contents of the symbol-function
cell, but still claims that the function is undefined??

> >> why do I have oo and oo-spd?!
> >
> > oo/ is the unoptimized build, oo-spd/ the optimized one.  Neat, ain't
> > it?
> 
> I would prefer to be able to specify this from the configure command line.

Patches for that are welcome (although I personally would not have any
use for such an option).