Package: emacs;
Reported by: Jason Rumney <jasonr <at> gnu.org>
Date: Thu, 22 Jan 2009 13:30:04 UTC
Severity: normal
Done: Chong Yidong <cyd <at> stupidchicken.com>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 1990 in the body.
You can then email your comments to 1990 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:bug#1990
; Package emacs
.
(Thu, 22 Jan 2009 13:30:04 GMT) Full text and rfc822 format available.Jason Rumney <jasonr <at> gnu.org>
:Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Thu, 22 Jan 2009 13:30:04 GMT) Full text and rfc822 format available.Message #5 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):
From: Jason Rumney <jasonr <at> gnu.org> To: emacs-pretest-bug <emacs-pretest-bug <at> gnu.org> Subject: 23.0.60; Emacs trying too hard to find fonts that don't exist Date: Thu, 22 Jan 2009 21:22:32 +0800
Please write in English if possible, because the Emacs maintainers usually do not have translators to read other languages for them. Your bug report will be posted to the emacs-pretest-bug <at> gnu.org mailing list. Please describe exactly what actions triggered the bug and the precise symptoms of the bug: If fonts are not installed for some characters, then Emacs keeps trying to find fonts for them every time those characters are redisplayed. The following excerpt from font-log is with the xft font backend on GNU/Linux where the search is quick, thus not noticeable, but on Windows the search for fonts is expensive, so redisplay takes a couple of seconds. I have cut the end off, as the full font-log is long, but you can see from the first two font-for entries that Emacs is trying twice for the same character (and it tries again many times further down the log). font for: (4121 . mule-unicode-0100-24ff) list: -mutt-clearlyu-*-iso10646-1 list: -gnu-unifont-*-iso10646-1 list: -bitstream-Bitstream Vera Sans Mono-*-gb18030*-* list: -*-Bitstream Vera Sans Mono-*-gb18030*-* list: -bitstream-*-gb18030*-* list: -*-gb18030*-* list: -bitstream-Bitstream Vera Sans Mono-*-ksc5601.1987*-* list: -*-Bitstream Vera Sans Mono-*-ksc5601.1987*-* list: -bitstream-*-ksc5601.1987*-* list: -*-ksc5601.1987*-* list: -bitstream-Bitstream Vera Sans Mono-*-cns11643.1992-1 list: -*-Bitstream Vera Sans Mono-*-cns11643.1992-1 list: -bitstream-*-cns11643.1992-1 list: -*-cns11643.1992-1 list: -bitstream-Bitstream Vera Sans Mono-*-cns11643.1992-4 list: -*-Bitstream Vera Sans Mono-*-cns11643.1992-4 list: -bitstream-*-cns11643.1992-4 list: -*-cns11643.1992-4 list: -bitstream-Bitstream Vera Sans Mono-*-cns11643.1992-5 list: -*-Bitstream Vera Sans Mono-*-cns11643.1992-5 list: -bitstream-*-cns11643.1992-5 list: -*-cns11643.1992-5 list: -bitstream-Bitstream Vera Sans Mono-*-cns11643.1992-6 list: -*-Bitstream Vera Sans Mono-*-cns11643.1992-6 list: -bitstream-*-cns11643.1992-6 list: -*-cns11643.1992-6 list: -bitstream-Bitstream Vera Sans Mono-*-cns11643.1992-7 list: -*-Bitstream Vera Sans Mono-*-cns11643.1992-7 list: -bitstream-*-cns11643.1992-7 list: -*-cns11643.1992-7 font for: (4121 . mule-unicode-0100-24ff) list: -mutt-clearlyu-*-iso10646-1 list: -gnu-unifont-*-iso10646-1 list: -bitstream-Bitstream Vera Sans Mono-*-gb18030*-* list: -*-Bitstream Vera Sans Mono-*-gb18030*-* list: -bitstream-*-gb18030*-* list: -*-gb18030*-* list: -bitstream-Bitstream Vera Sans Mono-*-ksc5601.1987*-* list: -*-Bitstream Vera Sans Mono-*-ksc5601.1987*-* list: -bitstream-*-ksc5601.1987*-* list: -*-ksc5601.1987*-* list: -bitstream-Bitstream Vera Sans Mono-*-cns11643.1992-1 list: -*-Bitstream Vera Sans Mono-*-cns11643.1992-1 list: -bitstream-*-cns11643.1992-1 list: -*-cns11643.1992-1 list: -bitstream-Bitstream Vera Sans Mono-*-cns11643.1992-4 list: -*-Bitstream Vera Sans Mono-*-cns11643.1992-4 list: -bitstream-*-cns11643.1992-4 list: -*-cns11643.1992-4 list: -bitstream-Bitstream Vera Sans Mono-*-cns11643.1992-5 list: -*-Bitstream Vera Sans Mono-*-cns11643.1992-5 list: -bitstream-*-cns11643.1992-5 list: -*-cns11643.1992-5 list: -bitstream-Bitstream Vera Sans Mono-*-cns11643.1992-6 list: -*-Bitstream Vera Sans Mono-*-cns11643.1992-6 list: -bitstream-*-cns11643.1992-6 list: -*-cns11643.1992-6 list: -bitstream-Bitstream Vera Sans Mono-*-cns11643.1992-7 list: -*-Bitstream Vera Sans Mono-*-cns11643.1992-7 list: -bitstream-*-cns11643.1992-7 list: -*-cns11643.1992-7 To reproduce: C-h h On my system, there are boxes displayed for Sinhala, Tibetan, Khmer and Burmese. Scroll down so that the first set of boxes disappears just off the top of the window. M-: (setq font-log nil) Scroll back up M-x font-show-log If Emacs crashed, and you have the Emacs process in the gdb debugger, please include the output from the following gdb commands: `bt full' and `xbacktrace'. If you would like to further debug the crash, please read the file /home/jasonr/emacs/etc/DEBUG for instructions. In GNU Emacs 23.0.60.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.12.11) of 2008-12-28 on wanchan.jasonrumney.net Windowing system distributor `Colin Harrison', version 11.0.60900031 Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil 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: en_GB.UTF-8 value of $XMODIFIERS: nil locale-coding-system: utf-8-unix default-enable-multibyte-characters: t Major mode: Help Minor modes in effect: tooltip-mode: t tool-bar-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t global-auto-composition-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t view-mode: t Recent input: <help-echo> <help-echo> <help-echo> <help-echo> <escape> x C-g C-h h <help-echo> <next> <prior> <down> <down> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <mouse-1> <escape> : ( s e t q SPC f o n t - l o g SPC n i l ) <return> <prior> <escape> x f o n t - s h <tab> <return> <down-mouse-1> <mouse-movement> <mouse-movement> <mouse-movement> <mouse-movement> <mouse-movement> <drag-mouse-1> <down-mouse-1> <mouse-1> <prior> <prior> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> C-@ <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <down> <escape> w <help-echo> <help-echo> <help-echo> <help-echo> <escape> x r e p o r t - e m a <tab> <return> Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. Quit Loading vc-cvs...done View mode: type C-h for help, h for commands, q to quit. nil Mark activated Saved text from "font for: (4121 . mule-unicode-0100-24ff"
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:bug#1990
; Package emacs
.
(Fri, 23 Jan 2009 05:10:03 GMT) Full text and rfc822 format available.Chong Yidong <cyd <at> stupidchicken.com>
:Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Fri, 23 Jan 2009 05:10:03 GMT) Full text and rfc822 format available.Message #10 received at 1990 <at> emacsbugs.donarmstrong.com (full text, mbox):
From: Chong Yidong <cyd <at> stupidchicken.com> To: Jason Rumney <jasonr <at> gnu.org> Cc: Kenichi Handa <handa <at> m17n.org>, 1990 <at> debbugs.gnu.org Subject: Re: 23.0.60; Emacs trying too hard to find fonts that don't exist Date: Fri, 23 Jan 2009 00:04:09 -0500
> If fonts are not installed for some characters, then Emacs keeps > trying to find fonts for them every time those characters are > redisplayed. The following excerpt from font-log is with the xft font > backend on GNU/Linux where the search is quick, thus not noticeable, > but on Windows the search for fonts is expensive, so redisplay takes a > couple of seconds. I have cut the end off, as the full font-log is > long, but you can see from the first two font-for entries that Emacs > is trying twice for the same character (and it tries again many times > further down the log). At the end of fontset_font (fontset.c:699), there is the following code: /* Remeber that we have no font for C. */ FONTSET_SET (fontset, make_number (c), Qt); return Qnil; However, there are several other places in that function that return with a Qnil, without doing this FONTSET_SET. Do matters improve if we do the same FONTSET_SET call before returning?
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:bug#1990
; Package emacs
.
(Fri, 23 Jan 2009 14:10:03 GMT) Full text and rfc822 format available.Jason Rumney <jasonr <at> gnu.org>
:Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Fri, 23 Jan 2009 14:10:03 GMT) Full text and rfc822 format available.Message #15 received at 1990 <at> emacsbugs.donarmstrong.com (full text, mbox):
From: Jason Rumney <jasonr <at> gnu.org> To: Chong Yidong <cyd <at> stupidchicken.com> Cc: Kenichi Handa <handa <at> m17n.org>, 1990 <at> debbugs.gnu.org Subject: Re: 23.0.60; Emacs trying too hard to find fonts that don't exist Date: Fri, 23 Jan 2009 22:00:51 +0800
Chong Yidong wrote: > At the end of fontset_font (fontset.c:699), there is the following code: > > /* Remeber that we have no font for C. */ > FONTSET_SET (fontset, make_number (c), Qt); > > return Qnil; > > However, there are several other places in that function that return > with a Qnil, without doing this FONTSET_SET. Do matters improve if we > do the same FONTSET_SET call before returning? > It doesn't seem to help much, if at all. Looking at those other locations, nil is only returned when some other function returns t, indicating that it already remembers that we have no font.
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:bug#1990
; Package emacs
.
(Sat, 24 Jan 2009 13:35:03 GMT) Full text and rfc822 format available.Juanma Barranquero <lekktu <at> gmail.com>
:Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Sat, 24 Jan 2009 13:35:03 GMT) Full text and rfc822 format available.Message #20 received at 1990 <at> emacsbugs.donarmstrong.com (full text, mbox):
From: Juanma Barranquero <lekktu <at> gmail.com> To: Jason Rumney <jasonr <at> gnu.org> Cc: 1990 <at> debbugs.gnu.org Subject: Re: bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't exist Date: Sat, 24 Jan 2009 14:28:59 +0100
On Thu, Jan 22, 2009 at 14:22, Jason Rumney <jasonr <at> gnu.org> wrote: > If fonts are not installed for some characters, then Emacs keeps trying to > find fonts for them every time those characters are redisplayed. Is this bug related to #1952, "23.0.60[W32-Mingw];opening etc/HELLO is slower than before"? Juanma
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:bug#1990
; Package emacs
.
(Sat, 24 Jan 2009 14:10:05 GMT) Full text and rfc822 format available.Jason Rumney <jasonr <at> gnu.org>
:Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Sat, 24 Jan 2009 14:10:05 GMT) Full text and rfc822 format available.Message #25 received at 1990 <at> emacsbugs.donarmstrong.com (full text, mbox):
From: Jason Rumney <jasonr <at> gnu.org> To: Juanma Barranquero <lekktu <at> gmail.com> Cc: 1990 <at> debbugs.gnu.org Subject: Re: bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't exist Date: Sat, 24 Jan 2009 22:02:09 +0800
Juanma Barranquero wrote: > On Thu, Jan 22, 2009 at 14:22, Jason Rumney <jasonr <at> gnu.org> wrote: > >> If fonts are not installed for some characters, then Emacs keeps trying to >> find fonts for them every time those characters are redisplayed. >> > > Is this bug related to #1952, "23.0.60[W32-Mingw];opening etc/HELLO is > slower than before"? > Probably.
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:bug#1990
; Package emacs
.
(Sat, 24 Jan 2009 19:55:04 GMT) Full text and rfc822 format available.Chong Yidong <cyd <at> stupidchicken.com>
:Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Sat, 24 Jan 2009 19:55:04 GMT) Full text and rfc822 format available.Message #30 received at 1990 <at> emacsbugs.donarmstrong.com (full text, mbox):
From: Chong Yidong <cyd <at> stupidchicken.com> To: Jason Rumney <jasonr <at> gnu.org> Cc: Kenichi Handa <handa <at> m17n.org>, 1990 <at> debbugs.gnu.org Subject: Re: 23.0.60; Emacs trying too hard to find fonts that don't exist Date: Sat, 24 Jan 2009 14:47:16 -0500
Jason Rumney <jasonr <at> gnu.org> writes: >> However, there are several other places in that function that return >> with a Qnil, without doing this FONTSET_SET. Do matters improve if >> we do the same FONTSET_SET call before returning? > > It doesn't seem to help much, if at all. How about something like this? Does it improve performance noticeably? *** trunk/src/fontset.c.~1.150.~ 2009-01-08 06:46:23.000000000 -0500 --- trunk/src/fontset.c 2009-01-24 14:44:09.000000000 -0500 *************** *** 660,665 **** --- 660,668 ---- Lisp_Object rfont_def; Lisp_Object base_fontset; + if (EQ (Fchar_table_range (fontset, make_number (c)), Qt)) + return Qnil; + /* Try a font-group of FONTSET. */ rfont_def = fontset_find_font (fontset, c, face, id, 0); if (VECTORP (rfont_def))
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:bug#1990
; Package emacs
.
(Sat, 24 Jan 2009 22:00:03 GMT) Full text and rfc822 format available.Juanma Barranquero <lekktu <at> gmail.com>
:Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Sat, 24 Jan 2009 22:00:04 GMT) Full text and rfc822 format available.Message #35 received at 1990 <at> emacsbugs.donarmstrong.com (full text, mbox):
From: Juanma Barranquero <lekktu <at> gmail.com> To: Chong Yidong <cyd <at> stupidchicken.com> Cc: Jason Rumney <jasonr <at> gnu.org>, Kenichi Handa <handa <at> m17n.org>, 1990 <at> debbugs.gnu.org Subject: Re: bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't exist Date: Sat, 24 Jan 2009 22:50:04 +0100
On Sat, Jan 24, 2009 at 20:47, Chong Yidong <cyd <at> stupidchicken.com> wrote: > How about something like this? Does it improve performance noticeably? For me, it fixes #1952: moving in etc/HELLO is again fast. It does not fix #1990, though. Emacs is still repeatedly trying to find fonts for characters that do not have one: 9 matches for "1501" in buffer: *Help* 28:font for: (1501 . hebrew-iso8859-8) 218:font for: (1501 . mule-unicode-0100-24ff) 299:font for: (1501 . hebrew-iso8859-8) 335:font for: (1501 . hebrew-iso8859-8) 525:font for: (1501 . mule-unicode-0100-24ff) 606:font for: (1501 . hebrew-iso8859-8) 642:font for: (1501 . hebrew-iso8859-8) 832:font for: (1501 . mule-unicode-0100-24ff) Juanma
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:bug#1990
; Package emacs
.
(Sat, 24 Jan 2009 22:00:05 GMT) Full text and rfc822 format available.Chong Yidong <cyd <at> stupidchicken.com>
:Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Sat, 24 Jan 2009 22:00:05 GMT) Full text and rfc822 format available.Message #40 received at 1990 <at> emacsbugs.donarmstrong.com (full text, mbox):
From: Chong Yidong <cyd <at> stupidchicken.com> To: Juanma Barranquero <lekktu <at> gmail.com> Cc: Jason Rumney <jasonr <at> gnu.org>, Kenichi Handa <handa <at> m17n.org>, 1990 <at> debbugs.gnu.org Subject: Re: bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't exist Date: Sat, 24 Jan 2009 16:55:52 -0500
Juanma Barranquero <lekktu <at> gmail.com> writes: > For me, it fixes #1952: moving in etc/HELLO is again fast. > > It does not fix #1990, though. Emacs is still repeatedly trying to > find fonts for characters that do not have one: > > 9 matches for "1501" in buffer: *Help* > 28:font for: (1501 . hebrew-iso8859-8) That log message is emitted just before calling fontset_font (which is where we would check whether fonts are known not to exist).
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:bug#1990
; Package emacs
.
(Sat, 24 Jan 2009 22:15:03 GMT) Full text and rfc822 format available.Juanma Barranquero <lekktu <at> gmail.com>
:Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Sat, 24 Jan 2009 22:15:03 GMT) Full text and rfc822 format available.Message #45 received at 1990 <at> emacsbugs.donarmstrong.com (full text, mbox):
From: Juanma Barranquero <lekktu <at> gmail.com> To: Chong Yidong <cyd <at> stupidchicken.com> Cc: Jason Rumney <jasonr <at> gnu.org>, Kenichi Handa <handa <at> m17n.org>, 1990 <at> debbugs.gnu.org Subject: Re: bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't exist Date: Sat, 24 Jan 2009 23:06:34 +0100
On Sat, Jan 24, 2009 at 22:55, Chong Yidong <cyd <at> stupidchicken.com> wrote: > That log message is emitted just before calling fontset_font (which is > where we would check whether fonts are known not to exist). OK. Then, please install your change. It's a big improvement. Juanma
Chong Yidong <cyd <at> stupidchicken.com>
:Jason Rumney <jasonr <at> gnu.org>
:Message #50 received at 1990-done <at> emacsbugs.donarmstrong.com (full text, mbox):
From: Chong Yidong <cyd <at> stupidchicken.com> To: Juanma Barranquero <lekktu <at> gmail.com> Cc: Jason Rumney <jasonr <at> gnu.org>, Kenichi Handa <handa <at> m17n.org>, 1990-done <at> debbugs.gnu.org, 1952-done <at> debbugs.gnu.org Subject: Re: bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't exist Date: Sat, 24 Jan 2009 17:44:13 -0500
Juanma Barranquero <lekktu <at> gmail.com> writes: >> That log message is emitted just before calling fontset_font (which is >> where we would check whether fonts are known not to exist). > > OK. > > Then, please install your change. It's a big improvement. I have installed a similar patch in CVS.
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:bug#1990
; Package emacs
.
(Sun, 25 Jan 2009 05:30:03 GMT) Full text and rfc822 format available.Jason Rumney <jasonr <at> gnu.org>
:Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Sun, 25 Jan 2009 05:30:03 GMT) Full text and rfc822 format available.Message #55 received at 1990 <at> emacsbugs.donarmstrong.com (full text, mbox):
From: Jason Rumney <jasonr <at> gnu.org> To: Juanma Barranquero <lekktu <at> gmail.com> Cc: Chong Yidong <cyd <at> stupidchicken.com>, Kenichi Handa <handa <at> m17n.org>, 1990 <at> debbugs.gnu.org Subject: Re: bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't exist Date: Sun, 25 Jan 2009 13:22:58 +0800
Juanma Barranquero wrote: > It does not fix #1990, though. Emacs is still repeatedly trying to > find fonts for characters that do not have one: > > 9 matches for "1501" in buffer: *Help* > 28:font for: (1501 . hebrew-iso8859-8) > 218:font for: (1501 . mule-unicode-0100-24ff) That looks much better though. Before, each "font for:" log entry was followed by a dozen or so "list:" entries, which is what takes excessive time on Windows.
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:bug#1990
; Package emacs
.
(Sun, 25 Jan 2009 12:05:05 GMT) Full text and rfc822 format available.Juanma Barranquero <lekktu <at> gmail.com>
:Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Sun, 25 Jan 2009 12:05:05 GMT) Full text and rfc822 format available.Message #60 received at 1990 <at> emacsbugs.donarmstrong.com (full text, mbox):
From: Juanma Barranquero <lekktu <at> gmail.com> To: Jason Rumney <jasonr <at> gnu.org> Cc: Chong Yidong <cyd <at> stupidchicken.com>, Kenichi Handa <handa <at> m17n.org>, 1990 <at> debbugs.gnu.org Subject: Re: bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't exist Date: Sun, 25 Jan 2009 12:57:41 +0100
On Sun, Jan 25, 2009 at 06:22, Jason Rumney <jasonr <at> gnu.org> wrote: > That looks much better though. Before, each "font for:" log entry was > followed by a dozen or so "list:" entries, which is what takes excessive > time on Windows. They still are. That was the output of M-occur on the *Help* buffer. For example, that's the result of emacs -Q C-h H M-: (setq font-log nil) M-x font-show-log font for: (1513 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1500 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1493 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1501 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (3626 . tis620-2533) list: -mutt-clearlyu-*-mono-*-iso10646-1 list: -mutt-clearlyu-*-iso10646-1 list: -gnu-unifont-*-mono-*-iso10646-1 list: -gnu-unifont-*-iso10646-1 font for: (3623 . tis620-2533) list: -mutt-clearlyu-*-mono-*-iso10646-1 list: -mutt-clearlyu-*-iso10646-1 list: -gnu-unifont-*-mono-*-iso10646-1 list: -gnu-unifont-*-iso10646-1 font for: (3626 . tis620-2533) list: -mutt-clearlyu-*-mono-*-iso10646-1 list: -mutt-clearlyu-*-iso10646-1 list: -gnu-unifont-*-mono-*-iso10646-1 list: -gnu-unifont-*-iso10646-1 font for: (3604 . tis620-2533) list: -mutt-clearlyu-*-mono-*-iso10646-1 list: -mutt-clearlyu-*-iso10646-1 list: -gnu-unifont-*-mono-*-iso10646-1 list: -gnu-unifont-*-iso10646-1 font for: (3588 . tis620-2533) list: -mutt-clearlyu-*-mono-*-iso10646-1 list: -mutt-clearlyu-*-iso10646-1 list: -gnu-unifont-*-mono-*-iso10646-1 list: -gnu-unifont-*-iso10646-1 font for: (3619 . tis620-2533) list: -mutt-clearlyu-*-mono-*-iso10646-1 list: -mutt-clearlyu-*-iso10646-1 list: -gnu-unifont-*-mono-*-iso10646-1 list: -gnu-unifont-*-iso10646-1 font for: (3610 . tis620-2533) list: -mutt-clearlyu-*-mono-*-iso10646-1 list: -mutt-clearlyu-*-iso10646-1 list: -gnu-unifont-*-mono-*-iso10646-1 list: -gnu-unifont-*-iso10646-1 font for: (20803 . korean-ksc5601) list: -outline-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-* list: -outline-DejaVu Sans Mono-*-ksc5601.1987*-* list: -*-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-* list: -*-DejaVu Sans Mono-*-ksc5601.1987*-* list: -outline-*-mono-*-ksc5601.1987*-* list: -outline-*-ksc5601.1987*-* list: -*-mono-*-ksc5601.1987*-* list: -*-ksc5601.1987*-* font for: (27683 . korean-ksc5601) list: -outline-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-* list: -outline-DejaVu Sans Mono-*-ksc5601.1987*-* list: -*-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-* list: -*-DejaVu Sans Mono-*-ksc5601.1987*-* list: -outline-*-mono-*-ksc5601.1987*-* list: -outline-*-ksc5601.1987*-* list: -*-mono-*-ksc5601.1987*-* list: -*-ksc5601.1987*-* font for: (38283 . korean-ksc5601) list: -outline-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-* list: -outline-DejaVu Sans Mono-*-ksc5601.1987*-* list: -*-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-* list: -*-DejaVu Sans Mono-*-ksc5601.1987*-* list: -outline-*-mono-*-ksc5601.1987*-* list: -outline-*-ksc5601.1987*-* list: -*-mono-*-ksc5601.1987*-* list: -*-ksc5601.1987*-* font for: (30332 . korean-ksc5601) list: -outline-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-* list: -outline-DejaVu Sans Mono-*-ksc5601.1987*-* list: -*-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-* list: -*-DejaVu Sans Mono-*-ksc5601.1987*-* list: -outline-*-mono-*-ksc5601.1987*-* list: -outline-*-ksc5601.1987*-* list: -*-mono-*-ksc5601.1987*-* list: -*-ksc5601.1987*-* font for: (940 . mule-unicode-0100-24ff) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=greek list: -outline-DejaVu Sans Mono-*-iso10646-1:script=greek list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=greek list: -*-DejaVu Sans Mono-*-iso10646-1:script=greek list: -outline-*-mono-*-iso10646-1:script=greek list: -outline-*-iso10646-1:script=greek list: -*-mono-*-iso10646-1:script=greek list: -*-iso10646-1:script=greek font for: (1513 . mule-unicode-0100-24ff) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1500 . mule-unicode-0100-24ff) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1493 . mule-unicode-0100-24ff) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1501 . mule-unicode-0100-24ff) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1514 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1497 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1512 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1489 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1506 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1513 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1500 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1493 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1501 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1513 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1500 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1493 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1501 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (3626 . tis620-2533) list: -mutt-clearlyu-*-mono-*-iso10646-1 list: -mutt-clearlyu-*-iso10646-1 list: -gnu-unifont-*-mono-*-iso10646-1 list: -gnu-unifont-*-iso10646-1 font for: (3623 . tis620-2533) list: -mutt-clearlyu-*-mono-*-iso10646-1 list: -mutt-clearlyu-*-iso10646-1 list: -gnu-unifont-*-mono-*-iso10646-1 list: -gnu-unifont-*-iso10646-1 font for: (3626 . tis620-2533) list: -mutt-clearlyu-*-mono-*-iso10646-1 list: -mutt-clearlyu-*-iso10646-1 list: -gnu-unifont-*-mono-*-iso10646-1 list: -gnu-unifont-*-iso10646-1 font for: (3604 . tis620-2533) list: -mutt-clearlyu-*-mono-*-iso10646-1 list: -mutt-clearlyu-*-iso10646-1 list: -gnu-unifont-*-mono-*-iso10646-1 list: -gnu-unifont-*-iso10646-1 font for: (3588 . tis620-2533) list: -mutt-clearlyu-*-mono-*-iso10646-1 list: -mutt-clearlyu-*-iso10646-1 list: -gnu-unifont-*-mono-*-iso10646-1 list: -gnu-unifont-*-iso10646-1 font for: (3619 . tis620-2533) list: -mutt-clearlyu-*-mono-*-iso10646-1 list: -mutt-clearlyu-*-iso10646-1 list: -gnu-unifont-*-mono-*-iso10646-1 list: -gnu-unifont-*-iso10646-1 font for: (3610 . tis620-2533) list: -mutt-clearlyu-*-mono-*-iso10646-1 list: -mutt-clearlyu-*-iso10646-1 list: -gnu-unifont-*-mono-*-iso10646-1 list: -gnu-unifont-*-iso10646-1 font for: (20803 . korean-ksc5601) list: -outline-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-* list: -outline-DejaVu Sans Mono-*-ksc5601.1987*-* list: -*-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-* list: -*-DejaVu Sans Mono-*-ksc5601.1987*-* list: -outline-*-mono-*-ksc5601.1987*-* list: -outline-*-ksc5601.1987*-* list: -*-mono-*-ksc5601.1987*-* list: -*-ksc5601.1987*-* font for: (27683 . korean-ksc5601) list: -outline-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-* list: -outline-DejaVu Sans Mono-*-ksc5601.1987*-* list: -*-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-* list: -*-DejaVu Sans Mono-*-ksc5601.1987*-* list: -outline-*-mono-*-ksc5601.1987*-* list: -outline-*-ksc5601.1987*-* list: -*-mono-*-ksc5601.1987*-* list: -*-ksc5601.1987*-* font for: (38283 . korean-ksc5601) list: -outline-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-* list: -outline-DejaVu Sans Mono-*-ksc5601.1987*-* list: -*-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-* list: -*-DejaVu Sans Mono-*-ksc5601.1987*-* list: -outline-*-mono-*-ksc5601.1987*-* list: -outline-*-ksc5601.1987*-* list: -*-mono-*-ksc5601.1987*-* list: -*-ksc5601.1987*-* font for: (30332 . korean-ksc5601) list: -outline-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-* list: -outline-DejaVu Sans Mono-*-ksc5601.1987*-* list: -*-DejaVu Sans Mono-*-mono-*-ksc5601.1987*-* list: -*-DejaVu Sans Mono-*-ksc5601.1987*-* list: -outline-*-mono-*-ksc5601.1987*-* list: -outline-*-ksc5601.1987*-* list: -*-mono-*-ksc5601.1987*-* list: -*-ksc5601.1987*-* font for: (940 . mule-unicode-0100-24ff) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=greek list: -outline-DejaVu Sans Mono-*-iso10646-1:script=greek list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=greek list: -*-DejaVu Sans Mono-*-iso10646-1:script=greek list: -outline-*-mono-*-iso10646-1:script=greek list: -outline-*-iso10646-1:script=greek list: -*-mono-*-iso10646-1:script=greek list: -*-iso10646-1:script=greek font for: (1513 . mule-unicode-0100-24ff) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1500 . mule-unicode-0100-24ff) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1493 . mule-unicode-0100-24ff) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1501 . mule-unicode-0100-24ff) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1514 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1497 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1512 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1489 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1506 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1513 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1500 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1493 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (1501 . hebrew-iso8859-8) list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew list: -outline-*-mono-*-iso10646-1:script=hebrew list: -outline-*-iso10646-1:script=hebrew list: -*-mono-*-iso10646-1:script=hebrew list: -*-iso10646-1:script=hebrew font for: (295 . iso-8859-3) list: -outline-DejaVu Sans Mono-normal-*-normal-mono-*-c-*-iso8859-1 -outline-DejaVu Sans Mono-normal-normal-normal-mono-*-c-*-iso8859-1 -outline-DejaVu Sans Mono-normal-italic-normal-mono-*-c-*-iso8859-1 -outline-DejaVu Sans Mono-normal-normal-normal-mono-*-c-*-iso8859-1 -outline-DejaVu Sans Mono-normal-italic-normal-mono-*-c-*-iso8859-1 sort-by: -outline-DejaVu Sans Mono-normal-italic-normal-mono-13-*-c-*-iso8859-1 uniscribe:-outline-DejaVu Sans Mono-normal-italic-normal-mono-*-c-*-iso8859-1 open: -outline-DejaVu Sans Mono-normal-italic-normal-mono-*-c-*-iso8859-1 uniscribe:-outline-DejaVu Sans Mono-normal-italic-normal-mono-13-*-c-*-iso8859-1
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:bug#1990
; Package emacs
.
(Mon, 26 Jan 2009 08:10:04 GMT) Full text and rfc822 format available.Kenichi Handa <handa <at> m17n.org>
:Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Mon, 26 Jan 2009 08:10:04 GMT) Full text and rfc822 format available.Message #65 received at 1990 <at> emacsbugs.donarmstrong.com (full text, mbox):
From: Kenichi Handa <handa <at> m17n.org> To: Chong Yidong <cyd <at> stupidchicken.com> Cc: jasonr <at> gnu.org, 1990 <at> debbugs.gnu.org Subject: Re: 23.0.60; Emacs trying too hard to find fonts that don't exist Date: Mon, 26 Jan 2009 17:00:09 +0900
In article <87d4ec1o6z.fsf <at> cyd.mit.edu>, Chong Yidong <cyd <at> stupidchicken.com> writes: > Jason Rumney <jasonr <at> gnu.org> writes: >>> However, there are several other places in that function that return >>> with a Qnil, without doing this FONTSET_SET. Do matters improve if >>> we do the same FONTSET_SET call before returning? > > > > It doesn't seem to help much, if at all. > How about something like this? Does it improve performance noticeably? > *** trunk/src/fontset.c.~1.150.~ 2009-01-08 06:46:23.000000000 -0500 > --- trunk/src/fontset.c 2009-01-24 14:44:09.000000000 -0500 > *************** > *** 660,665 **** > --- 660,668 ---- > Lisp_Object rfont_def; > Lisp_Object base_fontset; > + if (EQ (Fchar_table_range (fontset, make_number (c)), Qt)) > + return Qnil; > + > /* Try a font-group of FONTSET. */ > rfont_def = fontset_find_font (fontset, c, face, id, 0); > if (VECTORP (rfont_def)) I found a bug in fontset_find_font in handling non-cons return value of fontset_get_font_group (it seems that I embugged it when I modified fontset.c largely last time). Your change surely fixes the bug, but it does unnecessary char-table lookup for the normal case (i.e. a font is found). So, I think the following patch is better. If you agree, please install it. I, at the moment, can't do cvs commit. 2009-01-26 Kenichi Handa <handa <at> m17n.org> * fontset.c (fontset_find_font): Fix handling of non-cons return value of fontset_get_font_group. (fontset_font): Cancel previous change. *** fontset.c.~1.151.~ 2009-01-26 16:52:57.000000000 +0900 --- fontset.c 2009-01-26 16:53:14.000000000 +0900 *************** *** 521,527 **** font_group = fontset_get_font_group (fontset, fallback ? -1 : c); if (! CONSP (font_group)) ! return Qnil; vec = XCDR (font_group); if (ASIZE (vec) == 0) return Qnil; --- 521,527 ---- font_group = fontset_get_font_group (fontset, fallback ? -1 : c); if (! CONSP (font_group)) ! return font_group; vec = XCDR (font_group); if (ASIZE (vec) == 0) return Qnil; *************** *** 660,669 **** Lisp_Object rfont_def; Lisp_Object base_fontset; - /* If we know there is no font of C, don't do any work. */ - if (EQ (fontset_ref (fontset, c), Qt)) - return Qnil; - /* Try a font-group of FONTSET. */ rfont_def = fontset_find_font (fontset, c, face, id, 0); if (VECTORP (rfont_def)) --- 660,665 ---- --- Kenichi Handa handa <at> m17n.org
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:bug#1990
; Package emacs
.
(Mon, 26 Jan 2009 11:55:03 GMT) Full text and rfc822 format available.Kenichi Handa <handa <at> m17n.org>
:Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Mon, 26 Jan 2009 11:55:04 GMT) Full text and rfc822 format available.Message #70 received at 1990 <at> emacsbugs.donarmstrong.com (full text, mbox):
From: Kenichi Handa <handa <at> m17n.org> To: Juanma Barranquero <lekktu <at> gmail.com> Cc: jasonr <at> gnu.org, cyd <at> stupidchicken.com, 1990 <at> debbugs.gnu.org Subject: Re: bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't exist Date: Mon, 26 Jan 2009 20:46:35 +0900
In article <f7ccd24b0901250357p6ac606beh67a4f2d4562e6230 <at> mail.gmail.com>, Juanma Barranquero <lekktu <at> gmail.com> writes: > On Sun, Jan 25, 2009 at 06:22, Jason Rumney <jasonr <at> gnu.org> wrote: > > That looks much better though. Before, each "font for:" log entry was > > followed by a dozen or so "list:" entries, which is what takes excessive > > time on Windows. > They still are. That was the output of M-occur on the *Help* buffer. > For example, that's the result of > emacs -Q > C-h H > M-: (setq font-log nil) > M-x font-show-log > font for: (1513 . hebrew-iso8859-8) > list: -outline-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew > list: -outline-DejaVu Sans Mono-*-iso10646-1:script=hebrew > list: -*-DejaVu Sans Mono-*-mono-*-iso10646-1:script=hebrew > list: -*-DejaVu Sans Mono-*-iso10646-1:script=hebrew > list: -outline-*-mono-*-iso10646-1:script=hebrew > list: -outline-*-iso10646-1:script=hebrew > list: -*-mono-*-iso10646-1:script=hebrew > list: -*-iso10646-1:script=hebrew [...] As there's no logs from the font-backend's `list' method, the above listings actually did cache looking up only, and thus they should not be that slow. If you do: M-: (setq font-log nil) before C-h H, you'll see logs from the font-backend (labeled "uniscribe-list:" or "w32font-list:" on Windows). --- Kenichi Handa handa <at> m17n.org
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:bug#1990
; Package emacs
.
(Mon, 26 Jan 2009 12:10:04 GMT) Full text and rfc822 format available.Juanma Barranquero <lekktu <at> gmail.com>
:Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Mon, 26 Jan 2009 12:10:04 GMT) Full text and rfc822 format available.Message #75 received at 1990 <at> emacsbugs.donarmstrong.com (full text, mbox):
From: Juanma Barranquero <lekktu <at> gmail.com> To: Kenichi Handa <handa <at> m17n.org> Cc: jasonr <at> gnu.org, cyd <at> stupidchicken.com, 1990 <at> debbugs.gnu.org Subject: Re: bug#1990: 23.0.60; Emacs trying too hard to find fonts that don't exist Date: Mon, 26 Jan 2009 13:02:56 +0100
On Mon, Jan 26, 2009 at 12:46, Kenichi Handa <handa <at> m17n.org> wrote: > As there's no logs from the font-backend's `list' method, > the above listings actually did cache looking up only, and > thus they should not be that slow. I meant that still are a lot of `list's in the output, not that it still was a bug. As I reported, it is quite fast now. > before C-h H, you'll see logs from the font-backend (labeled > "uniscribe-list:" or "w32font-list:" on Windows). Yes, and after the buffer is displayed there's none when moving around. Juanma
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:bug#1990
; Package emacs
.
(Mon, 26 Jan 2009 16:00:03 GMT) Full text and rfc822 format available.Chong Yidong <cyd <at> stupidchicken.com>
:Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Mon, 26 Jan 2009 16:00:03 GMT) Full text and rfc822 format available.Message #80 received at 1990 <at> emacsbugs.donarmstrong.com (full text, mbox):
From: Chong Yidong <cyd <at> stupidchicken.com> To: Kenichi Handa <handa <at> m17n.org> Cc: jasonr <at> gnu.org, 1990 <at> debbugs.gnu.org Subject: Re: 23.0.60; Emacs trying too hard to find fonts that don't exist Date: Mon, 26 Jan 2009 10:51:57 -0500
Kenichi Handa <handa <at> m17n.org> writes: > I found a bug in fontset_find_font in handling non-cons > return value of fontset_get_font_group (it seems that I > embugged it when I modified fontset.c largely last time). > > Your change surely fixes the bug, but it does unnecessary > char-table lookup for the normal case (i.e. a font is > found). So, I think the following patch is better. > > If you agree, please install it. I, at the moment, can't do > cvs commit. Installed, thanks.
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> emacsbugs.donarmstrong.com
.
(Tue, 24 Feb 2009 15:24:05 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.