* bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size) @ 2008-09-07 11:36 ` Ian Miller 2008-09-24 20:30 ` bug#911: marked as done (23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size)) Emacs bug Tracking System 2008-10-02 20:30 ` Emacs bug Tracking System 0 siblings, 2 replies; 17+ messages in thread From: Ian Miller @ 2008-09-07 11:36 UTC (permalink / raw) To: emacs-pretest-bug 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... ^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#911: marked as done (23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size)) 2008-09-07 11:36 ` bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size) Ian Miller @ 2008-09-24 20:30 ` Emacs bug Tracking System 2008-10-02 20:30 ` Emacs bug Tracking System 1 sibling, 0 replies; 17+ messages in thread From: Emacs bug Tracking System @ 2008-09-24 20:30 UTC (permalink / raw) To: Chong Yidong [-- Attachment #1: Type: text/plain, Size: 891 bytes --] 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 [-- Attachment #2: Type: message/rfc822, Size: 6365 bytes --] From: Ian Miller <emacs@soroban.fastmail.fm> To: emacs-pretest-bug@gnu.org Subject: 23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size) Date: Sun, 7 Sep 2008 12:36:42 +0100 Message-ID: <20080907113642.GB3007@baso.home> 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... [-- Attachment #3: Type: message/rfc822, Size: 2467 bytes --] From: Chong Yidong <cyd@stupidchicken.com> To: martin rudalics <rudalics@gmx.at> Cc: 911-done@emacsbugs.donarmstrong.com, Ian Miller <ian@soroban.fastmail.fm> Subject: Re: bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail Date: Wed, 24 Sep 2008 16:25:39 -0400 Message-ID: <87y71hthoc.fsf@cyd.mit.edu> > 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. ^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#911: marked as done (23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size)) 2008-09-07 11:36 ` bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size) Ian Miller 2008-09-24 20:30 ` bug#911: marked as done (23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size)) Emacs bug Tracking System @ 2008-10-02 20:30 ` Emacs bug Tracking System 1 sibling, 0 replies; 17+ messages in thread From: Emacs bug Tracking System @ 2008-10-02 20:30 UTC (permalink / raw) To: Chong Yidong [-- Attachment #1: Type: text/plain, Size: 901 bytes --] Your message dated Thu, 02 Oct 2008 16:21:16 -0400 with message-id <87tzbuoiir.fsf@cyd.mit.edu> and subject line Re: 23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size) 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 [-- Attachment #2: Type: message/rfc822, Size: 6365 bytes --] From: Ian Miller <emacs@soroban.fastmail.fm> To: emacs-pretest-bug@gnu.org Subject: 23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size) Date: Sun, 7 Sep 2008 12:36:42 +0100 Message-ID: <20080907113642.GB3007@baso.home> 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... [-- Attachment #3: Type: message/rfc822, Size: 987 bytes --] From: Chong Yidong <cyd@stupidchicken.com> To: 911-done@emacsbugs.donarmstrong.com Subject: Re: 23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size) Date: Thu, 02 Oct 2008 16:21:16 -0400 Message-ID: <87tzbuoiir.fsf@cyd.mit.edu> I've checked the patch into CVS. ^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail [not found] <87y71hthoc.fsf@cyd.mit.edu> 2008-09-07 11:36 ` bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size) Ian Miller @ 2008-09-25 9:11 ` martin rudalics 2008-09-25 14:31 ` Chong Yidong 1 sibling, 1 reply; 17+ messages in thread From: martin rudalics @ 2008-09-25 9:11 UTC (permalink / raw) To: Chong Yidong; +Cc: 911, Ian Miller > 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. But who would be responsible for setting and resetting that variable? Hardly `frame-set-background-mode' itself. Would we make this a frame parameter so the command loop can reset it and allow to change it once and only once for a command? Otherwise, we might risk reentering the loop with the next call of `frame-set-background-mode'. martin BTW, it seems you already closed bug#911 ... ^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail 2008-09-25 9:11 ` bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail martin rudalics @ 2008-09-25 14:31 ` Chong Yidong 2008-09-25 15:17 ` martin rudalics 0 siblings, 1 reply; 17+ messages in thread From: Chong Yidong @ 2008-09-25 14:31 UTC (permalink / raw) To: martin rudalics; +Cc: 911, Ian Miller martin rudalics <rudalics@gmx.at> writes: >> 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. > > But who would be responsible for setting and resetting that variable? > Hardly `frame-set-background-mode' itself. Would we make this a frame > parameter so the command loop can reset it and allow to change it once > and only once for a command? Otherwise, we might risk reentering the > loop with the next call of `frame-set-background-mode'. Why not in frame-set-background-mode itself? Then, when it's set, subsequent calls to that function could be no-ops. > BTW, it seems you already closed bug#911 ... Sorry, I must have mistyped when trying to close a different bug. Reopened. ^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail 2008-09-25 14:31 ` Chong Yidong @ 2008-09-25 15:17 ` martin rudalics 0 siblings, 0 replies; 17+ messages in thread From: martin rudalics @ 2008-09-25 15:17 UTC (permalink / raw) To: Chong Yidong; +Cc: 911, Ian Miller > Why not in frame-set-background-mode itself? Then, when it's set, > subsequent calls to that function could be no-ops. We have to reset it eventually. And we have to cater for the situation that a user might want to open two frames in one and the same command. So I suppose the only reliable place is the command loop. And we must make sure that the background determined by the user is considered. martin ^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size) @ 2008-09-07 14:23 martin rudalics 2008-09-07 16:56 ` Ian Miller 0 siblings, 1 reply; 17+ messages in thread From: martin rudalics @ 2008-09-07 14:23 UTC (permalink / raw) To: 911; +Cc: Ian Miller > 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"))))) Can you reproduce the bug with an .emacs that contains just this form and nothing else? > display-color-cells: Variable binding depth exceeds max-specpdl-size Does this occur in `x-display-color-cells'? martin ^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size) 2008-09-07 14:23 bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size) martin rudalics @ 2008-09-07 16:56 ` Ian Miller 2008-09-07 18:47 ` martin rudalics 0 siblings, 1 reply; 17+ messages in thread From: Ian Miller @ 2008-09-07 16:56 UTC (permalink / raw) To: martin rudalics; +Cc: 911 On Sun, Sep 07, 2008 at 04:23:42PM +0200, martin rudalics wrote: > > 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"))))) > > Can you reproduce the bug with an .emacs that contains just this form > and nothing else? Yes. The bug is still present even when .emacs consists of only the above. > > display-color-cells: Variable binding depth exceeds max-specpdl-size > > Does this occur in `x-display-color-cells'? I'm not quite sure what you mean by this... but I can evaluate (x-display-color-cells) in the scratch buffer without any apparent error? (x-display-color-cells) 1677721 ^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size) 2008-09-07 16:56 ` Ian Miller @ 2008-09-07 18:47 ` martin rudalics 2008-09-07 23:42 ` Ian Miller 0 siblings, 1 reply; 17+ messages in thread From: martin rudalics @ 2008-09-07 18:47 UTC (permalink / raw) To: Ian Miller; +Cc: 911 >> Can you reproduce the bug with an .emacs that contains just this form >> and nothing else? > > Yes. The bug is still present even when .emacs consists of only the above. And it happens when you evaluate that form in *scratch*? I'm asking because I can't reproduce it here. Maybe you should also try with a more recent checkout. > I'm not quite sure what you mean by this... but I can evaluate > (x-display-color-cells) in the scratch buffer without any apparent error? > > (x-display-color-cells) > 1677721 I wondered what precisely in `display-color-cells' could trigger the Variable binding depth exceeds max-specpdl-size. Can you debug `display-color-cells'? martin ^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size) 2008-09-07 18:47 ` martin rudalics @ 2008-09-07 23:42 ` Ian Miller 2008-09-08 13:29 ` martin rudalics 0 siblings, 1 reply; 17+ messages in thread From: Ian Miller @ 2008-09-07 23:42 UTC (permalink / raw) To: martin rudalics; +Cc: 911 On Sun, Sep 07, 2008 at 08:47:40PM +0200, martin rudalics wrote: > > And it happens when you evaluate that form in *scratch*? I'm asking > because I can't reproduce it here. Maybe you should also try with a > more recent checkout. If I delete .emacs, and then evaluate the form in *scratch* then the same symptoms occur. If however, I first create a new frame, and then evaluate the form in that new frame, then the symptoms only occur in the frame in which I evaluated the form but I am able to create new frames (with the new font colours) from every other frame, including the original. I have tried this with the latest sources from CVS and get the same results. > I wondered what precisely in `display-color-cells' could trigger the > Variable binding depth exceeds max-specpdl-size. Can you debug > `display-color-cells'? This is what I get if I toggle-debug-on-error (I hope this is useful?): Debugger entered--Lisp error: (error "Variable binding depth exceeds max-specpdl-size") framep-on-display(#<frame emacs@baso 0xed2800>) display-color-cells(#<frame emacs@baso 0xed2800>) face-spec-set-match-display(((min-colors 88) (class color)) #<frame emacs@baso 0xed2800>) face-spec-choose((((... ...) (:foreground "white" :background "blue1")) ((...) (:foreground "white" :background "blue")) (t (:slant italic))) #<frame emacs@baso 0xed2800>) face-spec-match-p(custom-themed (((... ...) (:foreground "white" :background "blue1")) ((...) (:foreground "white" :background "blue")) (t (:slant italic))) #<frame emacs@baso 0xed2800>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "#ffffff" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "#ffffff") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((t :stipple nil :background "#ffffff" :foreground "#000000" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 90 :width normal :foundry "unknown" :family "DejaVu Sans Mono"))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "DarkSlateGray" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "DarkSlateGray") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((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")))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "#ffffff" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "#ffffff") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((t :stipple nil :background "#ffffff" :foreground "#000000" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 90 :width normal :foundry "unknown" :family "DejaVu Sans Mono"))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "DarkSlateGray" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "DarkSlateGray") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((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")))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "#ffffff" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "#ffffff") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((t :stipple nil :background "#ffffff" :foreground "#000000" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 90 :width normal :foundry "unknown" :family "DejaVu Sans Mono"))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "DarkSlateGray" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "DarkSlateGray") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((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")))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "#ffffff" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "#ffffff") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((t :stipple nil :background "#ffffff" :foreground "#000000" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 90 :width normal :foundry "unknown" :family "DejaVu Sans Mono"))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "DarkSlateGray" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "DarkSlateGray") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((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")))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "#ffffff" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "#ffffff") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((t :stipple nil :background "#ffffff" :foreground "#000000" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 90 :width normal :foundry "unknown" :family "DejaVu Sans Mono"))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "DarkSlateGray" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "DarkSlateGray") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((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")))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "#ffffff" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "#ffffff") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((t :stipple nil :background "#ffffff" :foreground "#000000" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 90 :width normal :foundry "unknown" :family "DejaVu Sans Mono"))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "DarkSlateGray" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "DarkSlateGray") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((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")))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "#ffffff" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "#ffffff") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((t :stipple nil :background "#ffffff" :foreground "#000000" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 90 :width normal :foundry "unknown" :family "DejaVu Sans Mono"))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "DarkSlateGray" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "DarkSlateGray") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((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")))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "#ffffff" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "#ffffff") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((t :stipple nil :background "#ffffff" :foreground "#000000" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 90 :width normal :foundry "unknown" :family "DejaVu Sans Mono"))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "DarkSlateGray" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "DarkSlateGray") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((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")))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "#ffffff" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "#ffffff") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((t :stipple nil :background "#ffffff" :foreground "#000000" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 90 :width normal :foundry "unknown" :family "DejaVu Sans Mono"))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "DarkSlateGray" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "DarkSlateGray") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((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")))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "#ffffff" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "#ffffff") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((t :stipple nil :background "#ffffff" :foreground "#000000" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 90 :width normal :foundry "unknown" :family "DejaVu Sans Mono"))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "DarkSlateGray" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "DarkSlateGray") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((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")))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "#ffffff" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "#ffffff") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((t :stipple nil :background "#ffffff" :foreground "#000000" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 90 :width normal :foundry "unknown" :family "DejaVu Sans Mono"))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "DarkSlateGray" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "DarkSlateGray") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((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")))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "#ffffff" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "#ffffff") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((t :stipple nil :background "#ffffff" :foreground "#000000" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 90 :width normal :foundry "unknown" :family "DejaVu Sans Mono"))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "DarkSlateGray" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "DarkSlateGray") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((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")))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "#ffffff" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "#ffffff") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((t :stipple nil :background "#ffffff" :foreground "#000000" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 90 :width normal :foundry "unknown" :family "DejaVu Sans Mono"))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "DarkSlateGray" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "DarkSlateGray") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((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")))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "#ffffff" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "#ffffff") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((t :stipple nil :background "#ffffff" :foreground "#000000" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 90 :width normal :foundry "unknown" :family "DejaVu Sans Mono"))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "DarkSlateGray" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "DarkSlateGray") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((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")))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "#ffffff" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "#ffffff") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((t :stipple nil :background "#ffffff" :foreground "#000000" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 90 :width normal :foundry "unknown" :family "DejaVu Sans Mono"))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "DarkSlateGray" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "DarkSlateGray") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((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")))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "#ffffff" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "#ffffff") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((t :stipple nil :background "#ffffff" :foreground "#000000" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 90 :width normal :foundry "unknown" :family "DejaVu Sans Mono"))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "DarkSlateGray" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "DarkSlateGray") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((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")))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "#ffffff" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "#ffffff") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((t :stipple nil :background "#ffffff" :foreground "#000000" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 90 :width normal :foundry "unknown" :family "DejaVu Sans Mono"))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) internal-set-lisp-face-attribute(default :background "DarkSlateGray" #<frame emacs@baso 0x10107a0>) set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "DarkSlateGray") face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((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")))) face-spec-recalc(default #<frame emacs@baso 0x10107a0>) frame-set-background-mode(#<frame emacs@baso 0x10107a0>) x-create-frame-with-faces(nil) make-frame() make-frame-command() call-interactively(make-frame-command nil nil) ^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size) 2008-09-07 23:42 ` Ian Miller @ 2008-09-08 13:29 ` martin rudalics 2008-09-14 13:50 ` martin rudalics 0 siblings, 1 reply; 17+ messages in thread From: martin rudalics @ 2008-09-08 13:29 UTC (permalink / raw) To: Ian Miller; +Cc: 911 > This is what I get if I toggle-debug-on-error > (I hope this is useful?): > > Debugger entered--Lisp error: (error "Variable binding depth exceeds max-specpdl-size") > framep-on-display(#<frame emacs@baso 0xed2800>) > display-color-cells(#<frame emacs@baso 0xed2800>) > face-spec-set-match-display(((min-colors 88) (class color)) #<frame emacs@baso 0xed2800>) > face-spec-choose((((... ...) (:foreground "white" :background "blue1")) ((...) (:foreground "white" :background "blue")) (t (:slant italic))) #<frame emacs@baso 0xed2800>) > face-spec-match-p(custom-themed (((... ...) (:foreground "white" :background "blue1")) ((...) (:foreground "white" :background "blue")) (t (:slant italic))) #<frame emacs@baso 0xed2800>) > frame-set-background-mode(#<frame emacs@baso 0x10107a0>) > internal-set-lisp-face-attribute(default :background "#ffffff" #<frame emacs@baso 0x10107a0>) > set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "#ffffff") > face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((t :stipple nil :background "#ffffff" :foreground "#000000" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 90 :width normal :foundry "unknown" :family "DejaVu Sans Mono"))) > face-spec-recalc(default #<frame emacs@baso 0x10107a0>) > frame-set-background-mode(#<frame emacs@baso 0x10107a0>) > internal-set-lisp-face-attribute(default :background "DarkSlateGray" #<frame emacs@baso 0x10107a0>) > set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "DarkSlateGray") > face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((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")))) > face-spec-recalc(default #<frame emacs@baso 0x10107a0>) > frame-set-background-mode(#<frame emacs@baso 0x10107a0>) [...] > internal-set-lisp-face-attribute(default :background "#ffffff" #<frame emacs@baso 0x10107a0>) > set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "#ffffff") > face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((t :stipple nil :background "#ffffff" :foreground "#000000" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 90 :width normal :foundry "unknown" :family "DejaVu Sans Mono"))) > face-spec-recalc(default #<frame emacs@baso 0x10107a0>) > frame-set-background-mode(#<frame emacs@baso 0x10107a0>) > internal-set-lisp-face-attribute(default :background "DarkSlateGray" #<frame emacs@baso 0x10107a0>) > set-face-attribute(default #<frame emacs@baso 0x10107a0> :background "DarkSlateGray") > face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((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")))) > face-spec-recalc(default #<frame emacs@baso 0x10107a0>) > frame-set-background-mode(#<frame emacs@baso 0x10107a0>) > x-create-frame-with-faces(nil) > make-frame() > make-frame-command() > call-interactively(make-frame-command nil nil) IIUC it has entered infinite recursion where `frame-set-background-mode' is entered over and over again. Somehow alternating between a "#ffffff" and "DarkSlateGray" background, very interesting. But I don't really understand where this happens :-( martin ^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size) 2008-09-08 13:29 ` martin rudalics @ 2008-09-14 13:50 ` martin rudalics 2008-09-16 12:11 ` Ian Miller 0 siblings, 1 reply; 17+ messages in thread From: martin rudalics @ 2008-09-14 13:50 UTC (permalink / raw) To: 911; +Cc: Ian Miller Ian, I can't reproduce this here. Could your try to edebug the functions `face-spec-set-2' and `face-spec-recalc' to find out why (or better how) in the trace > > face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((t :stipple > nil :background "#ffffff" :foreground "#000000" :inverse-video nil :box > nil :strike-through nil :overline nil :underline nil :slant normal > :weight normal :height 90 :width normal :foundry "unknown" :family > "DejaVu Sans Mono"))) > > face-spec-recalc(default #<frame emacs@baso 0x10107a0>) [...] > > face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((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")))) > > face-spec-recalc(default #<frame emacs@baso 0x10107a0>) the function `face-spec-set-2' is called alternately with different backgrounds. That is, edebug these two functions, call C-x 5 2 or whatever you have to make a new frame, and tell me whether (1) `face-spec-recalc' in one and the same call invokes `face-spec-set-2' at least twice (where an invocation should cause `face-spec-set-2' to really call `set-face-attributes'), or (2) `face-spec-recalc' is called at least twice when making a new frame. Please complain immediately whem my recipe is unclear. Thanks in advance, martin. ^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size) 2008-09-14 13:50 ` martin rudalics @ 2008-09-16 12:11 ` Ian Miller 2008-09-16 12:50 ` martin rudalics 0 siblings, 1 reply; 17+ messages in thread From: Ian Miller @ 2008-09-16 12:11 UTC (permalink / raw) To: martin rudalics; +Cc: 911 On Sun, Sep 14, 2008 at 03:50:05PM +0200, martin rudalics wrote: > Ian, > > I can't reproduce this here. Could your try to edebug the functions > `face-spec-set-2' and `face-spec-recalc' to find out why (or better how) > in the trace > > > > face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((t :stipple > > nil :background "#ffffff" :foreground "#000000" :inverse-video nil :box > > nil :strike-through nil :overline nil :underline nil :slant normal > > :weight normal :height 90 :width normal :foundry "unknown" :family > > "DejaVu Sans Mono"))) > > > face-spec-recalc(default #<frame emacs@baso 0x10107a0>) > [...] > > > face-spec-set-2(default #<frame emacs@baso 0x10107a0> ((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")))) > > > face-spec-recalc(default #<frame emacs@baso 0x10107a0>) > > the function `face-spec-set-2' is called alternately with different > backgrounds. That is, edebug these two functions, call C-x 5 2 or > whatever you have to make a new frame, and tell me whether Martin, When I tried to instrument those two functions, there was no problem with face-spec-recalc, but face-spec-set-2 refused to instrument with the following complaint: edebug-syntax-error: Invalid read syntax: "Expected lambda expression" (defun face-spec-set-2 (face frame spec) "Set the face attributes of FACE on FRAME according to SPEC." (let* ((attrs (face-spec-choose spec frame))) (while attrs (let ((attribute (car attrs)) (value (car (cdr attrs)))) ;; Support some old-style attribute names and values. (case attribute (:bold (setq attribute :weight value (if value 'bold 'normal))) (:italic (setq attribute :slant value (if value 'italic 'normal))) ((:foreground :background) ^ this is the cursor marking the syntax error > (1) `face-spec-recalc' in one and the same call invokes > `face-spec-set-2' at least twice (where an invocation should cause > `face-spec-set-2' to really call `set-face-attributes'), or > > (2) `face-spec-recalc' is called at least twice when making a new frame. When I edebug face-spec-recalc and attempt to create a new frame, each time I press 'T' to Trace Fast the function appears to be re-entered, and this appears to go on indefinitely? Additionally a frame *is* created now, but it does not appear automatically on the screen - however, it can be accessed via the Buffers->Frames menu, and it does not use the colour scheme specified in .emacs. Also, when edebug reaches face-spec-recalc, I get the following console message with each subsequent step of edebug (sorry, I don't know if this is relevant, I am a complete novice when it comes to emacs debugging!): (emacs:21944): Gtk-CRITICAL **: gtk_box_pack_start: assertion `child->parent ==NULL' failed cheers, ian ^ permalink raw reply [flat|nested] 17+ messages in thread
* bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size) 2008-09-16 12:11 ` Ian Miller @ 2008-09-16 12:50 ` martin rudalics [not found] ` <20080916141738.GA3025@baso.home> 0 siblings, 1 reply; 17+ messages in thread From: martin rudalics @ 2008-09-16 12:50 UTC (permalink / raw) To: Ian Miller; +Cc: 911 > When I tried to instrument those two functions, there was no problem > with face-spec-recalc, but face-spec-set-2 refused to instrument > with the following complaint: > > edebug-syntax-error: Invalid read syntax: "Expected lambda expression" Sorry. Please append the code below at the end of your .emacs and send me the contents of the *face-spec-set-2* buffer after the bug occurred. Thanks, martin. ;;;; Code starts here (require 'cl) (require 'faces) (defun face-spec-set-2 (face frame spec) "Set the face attributes of FACE on FRAME according to SPEC." (with-current-buffer (get-buffer-create "*face-spec-set-2*") (insert (format "face %s frame %s spec %s" face frame spec)) (insert "\n")) (let* ((attrs (face-spec-choose spec frame))) (while attrs (let ((attribute (car attrs)) (value (car (cdr attrs)))) ;; Support some old-style attribute names and values. (case attribute (:bold (setq attribute :weight value (if value 'bold 'normal))) (:italic (setq attribute :slant value (if value 'italic 'normal))) ((:foreground :background) ;; Compatibility with 20.x. Some bogus face specs seem to ;; exist containing things like `:foreground nil'. (if (null value) (setq value 'unspecified))) (t (unless (assq attribute face-x-resources) (setq attribute nil)))) (when attribute (set-face-attribute face frame attribute value))) (setq attrs (cdr (cdr attrs)))))) ;;;; Code ends here ^ permalink raw reply [flat|nested] 17+ messages in thread
[parent not found: <20080916141738.GA3025@baso.home>]
* bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size) [not found] ` <20080916141738.GA3025@baso.home> @ 2008-09-16 14:54 ` martin rudalics [not found] ` <48CFCA45.8050201@gmx.at> 1 sibling, 0 replies; 17+ messages in thread From: martin rudalics @ 2008-09-16 14:54 UTC (permalink / raw) To: Ian Miller; +Cc: 911 >> Sorry. Please append the code below at the end of your .emacs and send >> me the contents of the *face-spec-set-2* buffer after the bug occurred. > > Please see attached for contents of this buffer. My bad. When I tried this here it got me a buffer with a couple of lines. Yours is 600K :-( apologies to you and everyone on this list. Please try again with the following (it should print only calls for the default face and distinguish them according to where they are called in `face-spec-recalc'). But please don't post it on the list this time if it gets too large. martin ;;;; Code starts here (require 'cl) (require 'faces) (defvar face-counter 0) (defun face-spec-recalc (face frame) "Reset the face attributes of FACE on FRAME according to its specs. This applies the defface/custom spec first, then the custom theme specs, then the override spec." (face-spec-reset-face face frame) (setq face-counter (1+ face-counter)) (let ((face-sym (or (get face 'face-alias) face))) (or (get face 'customized-face) (get face 'saved-face) (progn (when (eq face 'default) (with-current-buffer (get-buffer-create "*face-spec-set-2*") (insert (format "%s-1 face %s frame %s spec %s\n" face-counter face frame spec)))) (face-spec-set-2 face frame (face-default-spec face)))) (let ((theme-faces (reverse (get face-sym 'theme-face)))) (dolist (spec theme-faces) (when (eq face 'default) (with-current-buffer (get-buffer-create "*face-spec-set-2*") (insert (format "%s-2 face %s frame %s spec %s\n" face-counter face frame spec)))) (face-spec-set-2 face frame (cadr spec)))) (when (eq face 'default) (with-current-buffer (get-buffer-create "*face-spec-set-2*") (insert (format "%s-3 face %s frame %s spec %s\n" face-counter face frame spec)))) (face-spec-set-2 face frame (get face-sym 'face-override-spec)))) ;;;; Code ends here ^ permalink raw reply [flat|nested] 17+ messages in thread
[parent not found: <48CFCA45.8050201@gmx.at>]
* bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size) [not found] ` <48CFCA45.8050201@gmx.at> @ 2008-09-17 10:41 ` Ian Miller [not found] ` <48D11231.3050707@gmx.at> 0 siblings, 1 reply; 17+ messages in thread From: Ian Miller @ 2008-09-17 10:41 UTC (permalink / raw) To: martin rudalics; +Cc: 911 On Tue, Sep 16, 2008 at 05:01:25PM +0200, martin rudalics wrote: > Ahhh no ... > > The code below shouldn't get you any bugs because `spec' is undefined. > Martin, Sorry about the last post - my fault, I was in a hurry and didn't check size. Output from latest run here: http://emacs.fastmail.fm/face-spec-set-2.txt cheers, ian ^ permalink raw reply [flat|nested] 17+ messages in thread
[parent not found: <48D11231.3050707@gmx.at>]
[parent not found: <20080917153343.GA3925@baso.home>]
[parent not found: <48D12A4A.2010003@gmx.at>]
[parent not found: <20080919180120.GA22672@baso.home>]
[parent not found: <48D3F7B6.1050001@gmx.at>]
[parent not found: <20080919195533.GA27756@baso.home>]
* bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size) [not found] ` <20080919195533.GA27756@baso.home> @ 2008-09-21 18:30 ` martin rudalics 0 siblings, 0 replies; 17+ messages in thread From: martin rudalics @ 2008-09-21 18:30 UTC (permalink / raw) To: 911; +Cc: Ian Miller Ian Miller has patiently continued to debug this and we finally came to the conclusion that the following sequence of events leads to the error. Ian uses (custom-set-faces '(default ((t (... :background "DarkSlateGray" ...))))) When creating a new frame `frame-set-background-mode' gets called which eventually calls `face-spec-recalc'. The latter has this loop (dolist (spec theme-faces) (face-spec-set-2 face frame (cadr spec)))) 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. Now (>= (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. In fact, Ian told me > Incidently, whilst testing I have found that the same bug does indeed > manifest itself elsewhere. Normally I have the toolbar disabled in my > .emacs, but after stripping everything out of .emacs for testing > purposes, I noticed that I get the following errors whenever I hover > over an icon in the toolbar: > > Error while displaying tooltip: (error Variable binding depth exceeds > max-specpdl-size) > Read a directory, to operate on its files > Error while displaying tooltip: (error Variable binding depth exceeds > max-specpdl-size) > Read an existing file into an Emacs buffer which seems due to the fact that x_create_tip_frame calls `modify-frame-parameters' ... Anyone out there with good ideas for a fix? martin ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2008-10-02 20:30 UTC | newest] Thread overview: 17+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <87y71hthoc.fsf@cyd.mit.edu> 2008-09-07 11:36 ` bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size) Ian Miller 2008-09-24 20:30 ` bug#911: marked as done (23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size)) Emacs bug Tracking System 2008-10-02 20:30 ` Emacs bug Tracking System 2008-09-25 9:11 ` bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail martin rudalics 2008-09-25 14:31 ` Chong Yidong 2008-09-25 15:17 ` martin rudalics 2008-09-07 14:23 bug#911: 23.0.60; custom-set-faces causes "New Frame" to fail (max-specpdl-size) martin rudalics 2008-09-07 16:56 ` Ian Miller 2008-09-07 18:47 ` martin rudalics 2008-09-07 23:42 ` Ian Miller 2008-09-08 13:29 ` martin rudalics 2008-09-14 13:50 ` martin rudalics 2008-09-16 12:11 ` Ian Miller 2008-09-16 12:50 ` martin rudalics [not found] ` <20080916141738.GA3025@baso.home> 2008-09-16 14:54 ` martin rudalics [not found] ` <48CFCA45.8050201@gmx.at> 2008-09-17 10:41 ` Ian Miller [not found] ` <48D11231.3050707@gmx.at> [not found] ` <20080917153343.GA3925@baso.home> [not found] ` <48D12A4A.2010003@gmx.at> [not found] ` <20080919180120.GA22672@baso.home> [not found] ` <48D3F7B6.1050001@gmx.at> [not found] ` <20080919195533.GA27756@baso.home> 2008-09-21 18:30 ` martin rudalics
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.