Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Infinite recursion #13

Open
dabrahams opened this issue Sep 28, 2011 · 3 comments · May be fixed by #14
Open

Infinite recursion #13

dabrahams opened this issue Sep 28, 2011 · 3 comments · May be fixed by #14

Comments

@dabrahams
Copy link
Contributor

Can't prove this is a zenburn issue, but chances seem good that it's related:

  color-theme-spec-resolve-inheritance((:inherit))
  (let ((more-atts ...) att val) (while more-atts (setq att ... val ... more-atts ...) (cond ... ...)))
  (progn (setq atts (delq ... ...)) (let (... att val) (while more-atts ... ...)))
  (if face (progn (setq atts ...) (let ... ...)))
  (when face (setq atts (delq ... ...)) (let (... att val) (while more-atts ... ...)))
  (let ((face ...)) (when face (setq atts ...) (let ... ...)) atts)
  color-theme-spec-resolve-inheritance((:inherit))
  (let ((more-atts ...) att val) (while more-atts (setq att ... val ... more-atts ...) (cond ... ...)))
  (progn (setq atts (delq ... ...)) (let (... att val) (while more-atts ... ...)))
  (if face (progn (setq atts ...) (let ... ...)))
  (when face (setq atts (delq ... ...)) (let (... att val) (while more-atts ... ...)))
  (let ((face ...)) (when face (setq atts ...) (let ... ...)) atts)
  color-theme-spec-resolve-inheritance((:inherit))
  (color-theme-spec-maybe-invert (color-theme-spec-resolve-inheritance (color-theme-face-attr-construct face ...)))
  (color-theme-spec-canonical-font (color-theme-spec-maybe-invert (color-theme-spec-resolve-inheritance ...)))
  (let ((atts ...)) (if atts (\` ...) (\` ...)))
  color-theme-spec(custom-face-tag)
  mapcar(color-theme-spec (default Buffer-menu-buffer-face apt-utils-broken apt-utils-broken-face apt-utils-description apt-utils-description-face apt-utils-field-contents apt-utils-field-contents-face apt-utils-field-keyword apt-utils-field-keyword-face apt-utils-normal-package apt-utils-normal-package-face apt-utils-summary apt-utils-summary-face apt-utils-version apt-utils-version-face apt-utils-virtual-package apt-utils-virtual-package-face bold bold-italic bongo-unfilled-seek-bar border breakpoint-disabled breakpoint-disabled-bitmap breakpoint-disabled-bitmap-face breakpoint-enabled breakpoint-enabled-bitmap breakpoint-enabled-bitmap-face buffer-menu-buffer button c-nonbreakable-space-face calendar-today calendar-today-face change-log-acknowledgement change-log-conditionals change-log-date change-log-date-face change-log-email change-log-file change-log-function change-log-list change-log-name circe-highlight-nick-face circe-my-message-face circe-originator-face circe-prompt-face circe-server-face comint-highlight-input comint-highlight-prompt compilation-column-number ...))
  (let ((faces ...)) (mapcar (quote color-theme-spec) faces))
  color-theme-get-face-definitions()
  (cons (color-theme-get-vars) (color-theme-get-face-definitions))
  (cons (color-theme-get-params) (cons (color-theme-get-vars) (color-theme-get-face-definitions)))
  (cons (quote color-theme-snapshot) (cons (color-theme-get-params) (cons ... ...)))
  (backquote-list* (quote color-theme-snapshot) (color-theme-get-params) (color-theme-get-vars) (color-theme-get-face-definitions))
  (list (quote quote) (backquote-list* (quote color-theme-snapshot) (color-theme-get-params) (color-theme-get-vars) (color-theme-get-face-definitions)))
  (list (quote color-theme-install) (list (quote quote) (backquote-list* ... ... ... ...)))
  (list (quote lambda) nil "The color theme in use when the selection buffer was created.\n\\[color-theme-select] creates the color theme selection buffer.  At the\nsame time, this snapshot is created as a very simple undo mechanism.\nThe snapshot is created via `color-theme-snapshot'." (quote (interactive)) (list (quote color-theme-install) (list ... ...)))
  (\` (lambda nil "The color theme in use when the selection buffer was created.\n\\[color-theme-select] creates the color theme selection buffer.  At the\nsame time, this snapshot is created as a very simple undo mechanism.\nThe snapshot is created via `color-theme-snapshot'." (interactive) (color-theme-install ...)))
  (eval (\` (lambda nil "The color theme in use when the selection buffer was created.\n\\[color-theme-select] creates the color theme selection buffer.  At the\nsame time, this snapshot is created as a very simple undo mechanism.\nThe snapshot is created via `color-theme-snapshot'." ... ...)))
  color-theme-make-snapshot()
  (fset (quote color-theme-snapshot) (color-theme-make-snapshot))
  (progn (fset (quote color-theme-snapshot) (color-theme-make-snapshot)) (setq color-themes (delq ... color-themes) color-themes (delq ... color-themes) color-themes (append ... color-themes)))
  (if (or (not ...) (not ...)) (progn (fset ... ...) (setq color-themes ... color-themes ... color-themes ...)))
  (when (or (not ...) (not ...)) (fset (quote color-theme-snapshot) (color-theme-make-snapshot)) (setq color-themes (delq ... color-themes) color-themes (delq ... color-themes) color-themes (append ... color-themes)))
  color-theme-select(nil)
  call-interactively(color-theme-select t nil)
  execute-extended-command(nil)
  call-interactively(execute-extended-command nil nil)
@dabrahams
Copy link
Contributor Author

Yeah, this patch to color-theme.el helps catch the problem:

--- /tmp/color-theme.el 2011-09-28 14:39:53.000000000 -0400
+++ color-theme.el  2011-09-28 14:31:02.000000000 -0400
@@ -767,6 +767,7 @@
       ;; remove :inherit face from atts -- this assumes only one
       ;; :inherit attribute.
       (setq atts (delq ':inherit (delq face atts)))
+      (unless atts (debug))
       (let ((more-atts (color-theme-spec-resolve-inheritance
            (color-theme-face-attr-construct
             face (selected-frame))))

When I start commenting out bits of zenburn it gets a little further... the alias for Buffer-menu-buffer-face, the apt-utils stuff...

@dabrahams
Copy link
Contributor Author

Hmm, that patch seems a little too eager; it might not be valid.

@dabrahams
Copy link
Contributor Author

More on this: it's definitely a zenburn interaction. I put color-theme.el and zenburn.el in the appropriate places and then did

emacs -Q -l <thefilebelow>

(setq load-path (append (list "/Users/dave/.emacs.d/el-get/color-theme" "/Users/dave/.emacs.d/el-get/color-theme-zenburn") load-path))
(require 'color-theme)
(require 'zenburn)
(color-theme-zenburn) ;; comment out this line to see it work
(color-theme-select)
(color-theme-zenburn) ;; as long as color-theme-select is called first, we can do this here 
(color-theme-select)  ;; and call color-theme-select again

dabrahams added a commit to dabrahams/zenburn-el that referenced this issue Oct 3, 2011
This was causing color-theme-select to recurse infinitely when trying
to resolve the inheritance.

Fixes dbrock#13
dabrahams added a commit to dabrahams/zenburn-el that referenced this issue Oct 3, 2011
This was causing color-theme-select to recurse infinitely when trying
to resolve the inheritance.

Fixes dbrock#13
mdengler pushed a commit to mdengler/zenburn-el that referenced this issue Mar 2, 2012
This was causing color-theme-select to recurse infinitely when trying
to resolve the inheritance.

Fixes dbrock#13
(cherry picked from commit a942799)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant