unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#5162: 23.1.90; display-time broken in non-X build
@ 2009-12-09  9:40 Sven Joachim
  2009-12-10  2:07 ` Glenn Morris
  2010-04-01 17:06 ` Chong Yidong
  0 siblings, 2 replies; 16+ messages in thread
From: Sven Joachim @ 2009-12-09  9:40 UTC (permalink / raw)
  To: emacs-pretest-bug

In non-X builds, the display-time command is broken, because the
find-image function is not defined:

,----
| Debugger entered--Lisp error: (void-function find-image)
|   (find-image (quote (... ...)))
|   (defvar display-time-mail-icon (find-image (quote ...)) ("/usr/local/src/emacs-23.1.90/lisp/time.elc" . 7689))
|   execute-extended-command(nil)
|   call-interactively(execute-extended-command nil nil)
`----

The following error messages from the build process (I used the 23.1.90
pretest tarball) might also be relevant:

,----
| EMACSLOADPATH=/usr/local/src/emacs-23.1.90/leim/../lisp LC_ALL=C ../src/emacs -batch --no-init-file --no-site-file --multibyte -l /usr/local/src/emacs-23.1.90/leim/../lisp/international/titdic-cnv \
| 	  -f batch-miscdic-convert -dir quail /usr/local/src/emacs-23.1.90/leim/MISC-DIC; \
| 	  echo "changed" > changed.misc
| Converting CTLau.html to CTLau.el...
| Converting CTLau.html to CTLau.el...done
| Converting cangjie-table.b5 to tsang-b5.el...
| File mode specification error: (wrong-type-argument stringp image-type-auto-detected-p)
| Converting cangjie-table.b5 to tsang-b5.el...done
| Converting cangjie-table.b5 to quick-b5.el...
| File mode specification error: (wrong-type-argument stringp image-type-auto-detected-p)
| Converting cangjie-table.b5 to quick-b5.el...done
| Converting pinyin.map to PY.el...
| File mode specification error: (wrong-type-argument stringp image-type-auto-detected-p)
| Converting pinyin.map to PY.el...done
| Converting cangjie-table.cns to tsang-cns.el...
| File mode specification error: (wrong-type-argument stringp image-type-auto-detected-p)
| Converting cangjie-table.cns to tsang-cns.el...done
| Converting cangjie-table.cns to quick-cns.el...
| File mode specification error: (wrong-type-argument stringp image-type-auto-detected-p)
| Converting cangjie-table.cns to quick-cns.el...done
| Converting CTLau-b5.html to CTLau-b5.el...
| Converting CTLau-b5.html to CTLau-b5.el...done
| Converting ziranma.cin to ZIRANMA.el...
| File mode specification error: (wrong-type-argument stringp image-type-auto-detected-p)
| Converting ziranma.cin to ZIRANMA.el...done
| Compiling quail/tsang-b5.el
`----

In GNU Emacs 23.1.90.1 (i486-pc-linux-gnu)
 of 2009-12-09 on turtle
configured using `configure  '--without-x' '--build=i486-pc-linux-gnu' 'build_alias=i486-pc-linux-gnu''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: C
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: de_DE.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Fundamental

Minor modes in effect:
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  global-auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
ESC [ > 0 ; 2 5 1 ; 0 c ESC ] 1 1 ; r g b : f f f f 
/ f f f f / f f f f ESC \ ESC x d i s p l TAB t i m 
TAB RET ESC x r e p o r t - e m TAB RET

Recent messages:
("./emacs")
For information about GNU Emacs and the GNU system, type C-h C-a.
defvar: Symbol's function definition is void: find-image

Load-path shadows:
None found.

Features:
(shadow mail-extr message ecomplete rfc822 mml easymenu mml-sec
password-cache mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231
rfc2047 rfc2045 qp ietf-drums mailabbrev nnheader gnus-util netrc
time-date mm-util mail-prsvr gmm-utils wid-edit mailheader canlock sha1
hex-util hashcash mail-utils warnings emacsbug sendmail regexp-opt
ediff-hook vc-hooks lisp-float-type lisp-mode register page menu-bar
rfn-eshadow timer select mldrag mouse jit-lock font-lock syntax facemenu
font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan
thai tai-viet lao korean japanese hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev loaddefs button minibuffer faces
cus-face text-properties overlay md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
dbusbind multi-tty emacs)





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#5162: 23.1.90; display-time broken in non-X build
  2009-12-09  9:40 bug#5162: 23.1.90; display-time broken in non-X build Sven Joachim
@ 2009-12-10  2:07 ` Glenn Morris
  2009-12-10  4:07   ` Stefan Monnier
  2009-12-10  9:22   ` Andreas Schwab
  2010-04-01 17:06 ` Chong Yidong
  1 sibling, 2 replies; 16+ messages in thread
From: Glenn Morris @ 2009-12-10  2:07 UTC (permalink / raw)
  To: Sven Joachim; +Cc: 5162

Sven Joachim wrote:

> In non-X builds, the display-time command is broken, because the
> find-image function is not defined:

Works fine for me, in a clean build from the current CVS trunk.
I didn't try the actual 23.1.90 pretest.

Do you have find-image in your loaddefs.el? If not, I'd guess that you
did a with-x build first, then built without-x using the same
loaddefs.el file. The with and without-x loaddefs.el files are no
longer identical.





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#5162: 23.1.90; display-time broken in non-X build
  2009-12-10  2:07 ` Glenn Morris
@ 2009-12-10  4:07   ` Stefan Monnier
  2009-12-10  5:03     ` Glenn Morris
  2009-12-10  9:22   ` Andreas Schwab
  1 sibling, 1 reply; 16+ messages in thread
From: Stefan Monnier @ 2009-12-10  4:07 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 5162, Sven Joachim

> The with and without-x loaddefs.el files are no longer identical.

Then we need to detect this situation somehow and cause loaddefs.el to
be updated correspondingly.


        Stefan





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#5162: 23.1.90; display-time broken in non-X build
  2009-12-10  4:07   ` Stefan Monnier
@ 2009-12-10  5:03     ` Glenn Morris
  2009-12-10  7:58       ` Stefan Monnier
  0 siblings, 1 reply; 16+ messages in thread
From: Glenn Morris @ 2009-12-10  5:03 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 5162, Sven Joachim

Stefan Monnier wrote:

>> The with and without-x loaddefs.el files are no longer identical.
>
> Then we need to detect this situation somehow and cause loaddefs.el to
> be updated correspondingly.

The only idea I had was to regenerate loaddefs from scratch whenever
src/config.h changes.





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#5162: 23.1.90; display-time broken in non-X build
  2009-12-10  5:03     ` Glenn Morris
@ 2009-12-10  7:58       ` Stefan Monnier
  2009-12-10 10:27         ` Sven Joachim
  0 siblings, 1 reply; 16+ messages in thread
From: Stefan Monnier @ 2009-12-10  7:58 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 5162, Sven Joachim

>>> The with and without-x loaddefs.el files are no longer identical.
>> Then we need to detect this situation somehow and cause loaddefs.el to
>> be updated correspondingly.
> The only idea I had was to regenerate loaddefs from scratch whenever
> src/config.h changes.

I think the way to make it work is to let autoload.el store the
autoload-excludes in the loaddefs.el file (as a special comment,
similar to the special comment listing the files that had no autoload
cookies).
Then autoload can compare the old list with the new one and force scan
any new unexcluded file, even if it's older than the timestamp.

Tho, maybe just not storing the auto-excludes in the "no-autoloads"
section might be enough to do the trick.  E.g. the patch below seems to
do the trick for me,


        Stefan


=== modified file 'lisp/emacs-lisp/autoload.el'
--- lisp/emacs-lisp/autoload.el	2009-11-07 01:55:16 +0000
+++ lisp/emacs-lisp/autoload.el	2009-12-10 07:52:26 +0000
@@ -457,8 +457,6 @@
           relfile
           ;; nil until we found a cookie.
           output-start)
-      (if (member absfile autoload-excludes)
-      	  (message "Generating autoloads for %s...skipped" file)
       (with-current-buffer (or visited
                                ;; It is faster to avoid visiting the file.
                                (autoload-find-file file))
@@ -572,7 +570,7 @@
           (message "Generating autoloads for %s...done" file))
         (or visited
             ;; We created this buffer, so we should kill it.
-            (kill-buffer (current-buffer)))))
+            (kill-buffer (current-buffer))))
       ;; If the entries were added to some other buffer, then the file
       ;; doesn't add entries to OUTFILE.
       (or (not output-start) otherbuf))))
@@ -729,8 +727,11 @@
 		  ((not (stringp file)))
 		  ((or (not (file-exists-p file))
                        ;; Remove duplicates as well, just in case.
-                       (member file done))
+                       (member file done)
+                       ;; If the file is actually excluded.
+                       (member (expand-file-name file) autoload-excludes))
                    ;; Remove the obsolete section.
+                   (setq changed t)
 		   (autoload-remove-section (match-beginning 0)))
 		  ((not (time-less-p (nth 4 form)
                                      (nth 5 (file-attributes file))))
@@ -746,9 +747,11 @@
 	    (setq files (delete file files)))))
       ;; Elements remaining in FILES have no existing autoload sections yet.
       (dolist (file files)
-        (if (autoload-generate-file-autoloads file nil buffer-file-name)
-            (push file no-autoloads)
-          (setq changed t)))
+        (cond
+         ((member (expand-file-name file) autoload-excludes) nil)
+         ((autoload-generate-file-autoloads file nil buffer-file-name)
+          (push file no-autoloads))
+         (t (setq changed t))))
 
       (when no-autoloads
 	;; Sort them for better readability.






^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#5162: 23.1.90; display-time broken in non-X build
  2009-12-10  2:07 ` Glenn Morris
  2009-12-10  4:07   ` Stefan Monnier
@ 2009-12-10  9:22   ` Andreas Schwab
  2009-12-10 17:09     ` Stefan Monnier
  2009-12-10 18:51     ` Eli Zaretskii
  1 sibling, 2 replies; 16+ messages in thread
From: Andreas Schwab @ 2009-12-10  9:22 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 5162, Sven Joachim

Glenn Morris <rgm@gnu.org> writes:

> The with and without-x loaddefs.el files are no longer identical.

If that is true then it is a major bug.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#5162: 23.1.90; display-time broken in non-X build
  2009-12-10  7:58       ` Stefan Monnier
@ 2009-12-10 10:27         ` Sven Joachim
  2009-12-10 19:09           ` Stefan Monnier
  0 siblings, 1 reply; 16+ messages in thread
From: Sven Joachim @ 2009-12-10 10:27 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 5162

On 2009-12-10 08:58 +0100, Stefan Monnier wrote:

>>>> The with and without-x loaddefs.el files are no longer identical.
>>> Then we need to detect this situation somehow and cause loaddefs.el to
>>> be updated correspondingly.
>> The only idea I had was to regenerate loaddefs from scratch whenever
>> src/config.h changes.
>
> I think the way to make it work is to let autoload.el store the
> autoload-excludes in the loaddefs.el file (as a special comment,
> similar to the special comment listing the files that had no autoload
> cookies).
> Then autoload can compare the old list with the new one and force scan
> any new unexcluded file, even if it's older than the timestamp.
>
> Tho, maybe just not storing the auto-excludes in the "no-autoloads"
> section might be enough to do the trick.  E.g. the patch below seems to
> do the trick for me,

I see that you have already committed it, and it has definitely improved
the situation, but it is still necessary to run "make clean" when
re-configuring "--without-x" (before your patch, only the brute
"make maintainer-clean" would have done the trick).

Sven





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#5162: 23.1.90; display-time broken in non-X build
  2009-12-10  9:22   ` Andreas Schwab
@ 2009-12-10 17:09     ` Stefan Monnier
  2009-12-10 17:17       ` Andreas Schwab
  2009-12-10 18:51     ` Eli Zaretskii
  1 sibling, 1 reply; 16+ messages in thread
From: Stefan Monnier @ 2009-12-10 17:09 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: 5162, Sven Joachim

>> The with and without-x loaddefs.el files are no longer identical.
> If that is true then it is a major bug.

I thought so too at first, but I think it'll work.  Of course, thre may
still be scenario where it screws up somehow, but I can't hink of any:
basically loaddefs.el is only used during the dump process, so it
doesn't matter if it's build-specific.


        Stefan





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#5162: 23.1.90; display-time broken in non-X build
  2009-12-10 17:09     ` Stefan Monnier
@ 2009-12-10 17:17       ` Andreas Schwab
  0 siblings, 0 replies; 16+ messages in thread
From: Andreas Schwab @ 2009-12-10 17:17 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 5162, Sven Joachim

Stefan Monnier <monnier@IRO.UMontreal.CA> writes:

>>> The with and without-x loaddefs.el files are no longer identical.
>> If that is true then it is a major bug.
>
> I thought so too at first, but I think it'll work.  Of course, thre may
> still be scenario where it screws up somehow, but I can't hink of any:
> basically loaddefs.el is only used during the dump process, so it
> doesn't matter if it's build-specific.

Then it should be moved out of the source directory (and not be
distributed).

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#5162: 23.1.90; display-time broken in non-X build
  2009-12-10  9:22   ` Andreas Schwab
  2009-12-10 17:09     ` Stefan Monnier
@ 2009-12-10 18:51     ` Eli Zaretskii
  2009-12-10 18:59       ` Glenn Morris
  1 sibling, 1 reply; 16+ messages in thread
From: Eli Zaretskii @ 2009-12-10 18:51 UTC (permalink / raw)
  To: Andreas Schwab, 5162; +Cc: svenjoac

> From: Andreas Schwab <schwab@linux-m68k.org>
> Date: Thu, 10 Dec 2009 10:22:19 +0100
> Cc: 5162@emacsbugs.donarmstrong.com, Sven Joachim <svenjoac@gmx.de>
> 
> Glenn Morris <rgm@gnu.org> writes:
> 
> > The with and without-x loaddefs.el files are no longer identical.
> 
> If that is true then it is a major bug.

I agree.  Does anyone know why, and which change(s) caused this?





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#5162: 23.1.90; display-time broken in non-X build
  2009-12-10 18:51     ` Eli Zaretskii
@ 2009-12-10 18:59       ` Glenn Morris
  2009-12-10 19:09         ` Eli Zaretskii
  0 siblings, 1 reply; 16+ messages in thread
From: Glenn Morris @ 2009-12-10 18:59 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 5162, Andreas Schwab, svenjoac

Eli Zaretskii wrote:

> I agree.  Does anyone know why, and which change(s) caused this?

http://lists.gnu.org/archive/html/emacs-devel/2009-10/msg00117.html

A discussion that most of the commenters on this bug were involved in,
but this consequence was not appreciated till now.

If no good solution can be found, it can be reverted at no great loss.





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#5162: 23.1.90; display-time broken in non-X build
  2009-12-10 18:59       ` Glenn Morris
@ 2009-12-10 19:09         ` Eli Zaretskii
  0 siblings, 0 replies; 16+ messages in thread
From: Eli Zaretskii @ 2009-12-10 19:09 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 5162, schwab, svenjoac

> From: Glenn Morris <rgm@gnu.org>
> Cc: Andreas Schwab <schwab@linux-m68k.org>,  5162@emacsbugs.donarmstrong.com,  svenjoac@gmx.de
> Date: Thu, 10 Dec 2009 13:59:19 -0500
> 
> Eli Zaretskii wrote:
> 
> > I agree.  Does anyone know why, and which change(s) caused this?
> 
> http://lists.gnu.org/archive/html/emacs-devel/2009-10/msg00117.html

Thanks for the reminder.

> If no good solution can be found, it can be reverted at no great loss.

Maybe we should.  Having loaddefs.el depend on the particulars of the
build will definitely open a can of worms, because *.el files are
generally considered architecture and build independent.  For example,
does it still work to invoke Emacs built with X with the -nw option?

In general, if some build-dependent set of autoloads is skipped, then
how can we be sure that a binary which supports two different
configurations will work?





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#5162: 23.1.90; display-time broken in non-X build
  2009-12-10 10:27         ` Sven Joachim
@ 2009-12-10 19:09           ` Stefan Monnier
  2009-12-10 22:22             ` Sven Joachim
  0 siblings, 1 reply; 16+ messages in thread
From: Stefan Monnier @ 2009-12-10 19:09 UTC (permalink / raw)
  To: Sven Joachim; +Cc: 5162

> I see that you have already committed it, and it has definitely improved
> the situation, but it is still necessary to run "make clean" when
> re-configuring "--without-x" (before your patch, only the brute
> "make maintainer-clean" would have done the trick).

Hmm... indeed it seems that the normal build procedure runs
`cd lisp; make autoloads' only when lisp/loaddefs.el is missing and
doesn't otherwise update the file.

The patch below should fix that, tho at the cost of making the autoloads
twice in the bootstrap case.  Can you confirm it fixes the problem?
Assuming it does, I'm not sure whether we should use such a patch as is,
or whether we should "do it right"


        Stefan


--- Makefile.in.~1.213.~	2009-12-01 12:51:45.000000000 -0500
+++ Makefile.in	2009-12-10 13:26:49.000000000 -0500
@@ -109,7 +109,7 @@
 # with "make -j" and results in more deterministic compilation warnings.
 # cus-load and finder-inf are not explicitly requested by anything, so
 # we add them here to make sure they get built.
-all: compile-main $(lisp)/cus-load.el $(lisp)/finder-inf.el
+all: autoloads compile-main $(lisp)/cus-load.el $(lisp)/finder-inf.el
 	@: Let us check that we byte-compiled all the files.
 	$(MAKE) $(MFLAGS) compile-last EMACS=$(EMACS)
 





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#5162: 23.1.90; display-time broken in non-X build
  2009-12-10 19:09           ` Stefan Monnier
@ 2009-12-10 22:22             ` Sven Joachim
  2009-12-22  3:38               ` Glenn Morris
  0 siblings, 1 reply; 16+ messages in thread
From: Sven Joachim @ 2009-12-10 22:22 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 5162

On 2009-12-10 20:09 +0100, Stefan Monnier wrote:

>> I see that you have already committed it, and it has definitely improved
>> the situation, but it is still necessary to run "make clean" when
>> re-configuring "--without-x" (before your patch, only the brute
>> "make maintainer-clean" would have done the trick).
>
> Hmm... indeed it seems that the normal build procedure runs
> `cd lisp; make autoloads' only when lisp/loaddefs.el is missing and
> doesn't otherwise update the file.
>
> The patch below should fix that, tho at the cost of making the autoloads
> twice in the bootstrap case.  Can you confirm it fixes the problem?

It doesn't, because Emacs is rebuilt first, using the outdated
loaddefs.el, and the autoloads are only updated later.

Sven





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#5162: 23.1.90; display-time broken in non-X build
  2009-12-10 22:22             ` Sven Joachim
@ 2009-12-22  3:38               ` Glenn Morris
  0 siblings, 0 replies; 16+ messages in thread
From: Glenn Morris @ 2009-12-22  3:38 UTC (permalink / raw)
  To: 5162


This change is pertinent to this issue, but does not seem to have been
mentioned here:

2009-12-17  Andreas Schwab  <schwab at linux-m68k.org>

    * emacs-lisp/autoload.el (batch-update-autoloads): Only
    exclude unconditionally preloaded files.






^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#5162: 23.1.90; display-time broken in non-X build
  2009-12-09  9:40 bug#5162: 23.1.90; display-time broken in non-X build Sven Joachim
  2009-12-10  2:07 ` Glenn Morris
@ 2010-04-01 17:06 ` Chong Yidong
  1 sibling, 0 replies; 16+ messages in thread
From: Chong Yidong @ 2010-04-01 17:06 UTC (permalink / raw)
  To: Glenn Morris; +Cc: 5162

> This change is pertinent to this issue, but does not seem to have been
> mentioned here:
>
> 2009-12-17  Andreas Schwab  <schwab at linux-m68k.org>
>
>     * emacs-lisp/autoload.el (batch-update-autoloads): Only
>     exclude unconditionally preloaded files.

Looks like the with-x and without-x builds now have the same
loaddefs.el.






^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2010-04-01 17:06 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-09  9:40 bug#5162: 23.1.90; display-time broken in non-X build Sven Joachim
2009-12-10  2:07 ` Glenn Morris
2009-12-10  4:07   ` Stefan Monnier
2009-12-10  5:03     ` Glenn Morris
2009-12-10  7:58       ` Stefan Monnier
2009-12-10 10:27         ` Sven Joachim
2009-12-10 19:09           ` Stefan Monnier
2009-12-10 22:22             ` Sven Joachim
2009-12-22  3:38               ` Glenn Morris
2009-12-10  9:22   ` Andreas Schwab
2009-12-10 17:09     ` Stefan Monnier
2009-12-10 17:17       ` Andreas Schwab
2009-12-10 18:51     ` Eli Zaretskii
2009-12-10 18:59       ` Glenn Morris
2009-12-10 19:09         ` Eli Zaretskii
2010-04-01 17:06 ` Chong Yidong

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).