bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#911: marked as done (23.0.60; custom-set-faces causes "New Frame" t


From: Emacs bug Tracking System
Subject: bug#911: marked as done (23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size))
Date: Wed, 24 Sep 2008 13:30:04 -0700

Your message dated Wed, 24 Sep 2008 16:25:39 -0400
with message-id <87y71hthoc.fsf@cyd.mit.edu>
and subject line Re: bug#911: 23.0.60; custom-set-faces causes "New Frame" to 
fail
has caused the Emacs bug report #911,
regarding 23.0.60; custom-set-faces causes "New Frame" to fail 
(max-specpdl-size)
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact don@donarmstrong.com
immediately.)


-- 
911: http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=911
Emacs Bug Tracking System
Contact don@donarmstrong.com with problems
--- Begin Message --- Subject: 23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size) Date: Sun, 7 Sep 2008 12:36:42 +0100 User-agent: Mutt/1.5.18 (2008-05-17)

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@gnu.org
mailing list.

Please describe exactly what actions triggered the bug
and the precise symptoms of the bug:

Whenever I select "File->New Frame" (C-x 5 2) a new frame does not
appear and I receive the message "Variable binding depth exceeds
max-specpdl-size". 

This seems to be caused by any use of custom-set-faces in the
.emacs file. When I remove the custom-set-faces code from .emacs, the
bug does not occur. 

Example custom-set-faces in .emacs that causes the bug:

     (custom-set-faces
      ;; custom-set-faces was added by Custom.
      ;; If you edit it by hand, you could mess it up, so be careful.
      ;; Your init file should contain only one such instance.
      ;; If there is more than one, they won't work right.
      '(default ((t (:stipple nil :background "DarkSlateGray"
     :foreground "wheat" :inverse-video nil :box nil :strike-through
     nil :overline nil :underline nil :slant normal :weight normal
     :height 121 :width normal :foundry "unknown" :family "DejaVu Sans 
Mono")))))

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
/usr/share/emacs/23.0.60/etc/DEBUG for instructions.


In GNU Emacs 23.0.60.1 (x86_64-redhat-linux-gnu, GTK+ Version 2.12.11)
 of 2008-08-01 on x86-1
Windowing system distributor `The X.Org Foundation', version
 11.0.10499905
configured using `configure  '--build=x86_64-redhat-linux-gnu'
 '--host=x86_64-redhat-linux-gnu' '--target=x86_64-redhat-linux-gnu'
 '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr'
 '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc'
 '--datadir=/usr/share' '--includedir=/usr/include'
 '--libdir=/usr/lib64' '--libexecdir=/usr/libexec'
 '--localstatedir=/var' '--sharedstatedir=/usr/com'
 '--mandir=/usr/share/man' '--infodir=/usr/share/info'
 'build_alias=x86_64-redhat-linux-gnu'
 'host_alias=x86_64-redhat-linux-gnu'
 'target_alias=x86_64-redhat-linux-gnu' 'CFLAGS=-DMAIL_USE_LOCKF -O2
 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
 --param=ssp-buffer-size=4 -m64 -mtune=generic''

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.utf8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default-enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
  show-paren-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

Recent input:
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <help-echo> <help-echo> <menu-bar> <file> 
<make-frame> M-x r e p o <tab> r <tab> <return>

Recent messages:
Loading /usr/share/emacs/site-lisp/site-start.d/igrep-init.el
(source)...done
Loading /usr/share/emacs/site-lisp/site-start.d/muse-init.el
(source)...done
Loading /usr/share/emacs/site-lisp/site-start.d/php-mode-init.el
(source)...done
Loading /usr/share/emacs/site-lisp/site-start.d/po-mode-init.el
(source)...done
Loading /usr/share/emacs/site-lisp/site-start.d/rpm-spec-mode-init.el
(source)...done
Loading gnus...done
Loading paren...done
For information about GNU Emacs and the GNU system, type C-h C-a.
display-color-cells: Variable binding depth exceeds max-specpdl-size
Making completion list...



--- End Message ---
--- Begin Message --- Subject: Re: bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail Date: Wed, 24 Sep 2008 16:25:39 -0400
> When creating a new frame `frame-set-background-mode' gets called
> which eventually calls `face-spec-recalc'...  which calls
> `face-spec-set-2' two times for the default face background, one time
> for #ffffff and one time for DarkSlateGray.  `face-spec-set-2' calls
> `set-face-attribute', which calls `internal-set-lisp-face-attribute'
> which calls Fmodify_frame_parameters which calls
> `frame-set-background-mode' again.

The Emacs face code strikes again, huh.

> (>= (apply '+ (color-values "DarkSlateGrey"))
>     (* (apply '+ (color-values "white")) .6))
>
> evaluates to nil while
>
> (>= (apply '+ (color-values "#ffffff"))
>     (* (apply '+ (color-values "white")) .6))
>
> evaluates to t.  This means that `bg-mode' never equals `old-bg-mode'
> but continuously alternates between 'light and 'dark, so
> `frame-set-background-mode' will call `face-spec-recalc' thus sending
> Emacs into a nasty loop.
>
> Note that the looping behavior is due to the second call in the dolist
> (that for DarkSlateGrey).  The first call (for #ffffff) terminates.
>
> I'm not sure how to fix this because that looping has no specific entry
> point.

How about defining a variable `frame-set-background-mode-bg-mode'?  If
it's nil, frame-set-background-mode uses the existing calculation to
determine whether it's light or dark; if it's non-nil, it uses that
existing value.  This should prevent the oscillation.


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]