<klaus.berndl(a)sdm.de> writes:
Hi
can anybody help us with this problem related to XEmacs 21.5 and ECB
(s.b.)?
Hello Klaus, I have spent a bit of time on this off and on.
What I found seems to be a bad interaction between one of the many
advices in ecb with XEmacs 21.5. This is still reproducible in CVS
HEAD.
It's probably the advice of current-window-configuration.
What I do is start XEmacs -vanilla.
I then go on to
M-x toggle-debug-on-quit
followed by
M-x ecb-activate
with the current directory containing a hierarchy of emacs lisp files
and backtraces.
After ca. 7s I interrupt by
C-g (keyboard-quit)
or
C-G (keyboard-quit)
The result was following Backtrace.
Please note that the biggest part of the Backtrace was the repetition
of six identical linnes, as commented near the end of the Backtrace.
Perhaps we could take it further together from here.
Do you have a working 21.5 XEmacs installed?
Please advise,
Adrian
Debugger entered--Lisp error: (quit)
byte-code("..." [current-point current-frame select-frame] 2)
ecb-window-list(#<mswindows-frame "emacs" 0xbf1> 0 #<window on
"*Ibuffer*" 0x8d926>)
ecb-canonical-windows-list()
ecb-canonical-ecb-windows-list()
ecb-get-current-visible-ecb-buffers()
byte-code("..." [ecb-compile-window ad-return-value f frame ecb-windows-hidden
ecb-frame selected-frame ecb-window-config-cache-add ecb-get-current-visible-ecb-buffers
ecb-compile-window-live-p ecb-position ecb-canonical-windows-list
ecb-window-configuration-data ecb-layout-name ecb-compile-window-height
ecb-compile-window-width ecb-windows-width ecb-windows-height ecb-edit-area-creators] 11)
current-window-configuration(nil)
ecb-window-list(#<mswindows-frame "emacs" 0xbf1>)
ecb-make-windows-not-dedicated(#<mswindows-frame "emacs" 0xbf1>)
byte-code("..." [ecb-compile-window ecb-compile-window-height configuration
win-list ecb-frame config selected-frame ecb-window-config-cache-get
ecb-window-configuration-invalidp ecb-make-windows-not-dedicated
ecb-set-windows-dedicated-state t 2 ecb-canonical-windows-list 4 5 ecb-set-minor-mode-text
ecb-edit-area-creators ecb-windows-hidden] 4)
set-window-configuration([cl-struct-window-configuration #<mswindows-frame
"emacs" 0xbf1> 662 641 #<buffer "*Compile-Log*"> 16 10 4
[cl-struct-saved-window t nil nil #<buffer "*Ibuffer*"> #<marker at
4569 in *Ibuffer* 0x36db2ac> #<marker at 1 in *Ibuffer* 0x36db27c> #<marker at
407 in *Ibuffer* 0x36db294> 0 0 662 604 0 0 nil nil nil [cl-struct-saved-window nil t
nil #<buffer " *Minibuf-0*"> #<marker in no buffer 0x36db264>
#<marker at 1 in *Minibuf-0* 0x36db234> #<marker at 1 in *Minibuf-0*
0x36db24c> 0 604 662 620 0 0 nil nil nil nil]]])
ecb-window-list(#<mswindows-frame "emacs" 0xbf1> 0 #<window on
"*Ibuffer*" 0x8d926>)
ecb-canonical-windows-list()
ecb-canonical-ecb-windows-list()
ecb-get-edit-area-size()
ecb-window-configuration-data()
byte-code("..." [ecb-compile-window ad-return-value f frame ecb-windows-hidden
ecb-frame selected-frame ecb-window-config-cache-add ecb-get-current-visible-ecb-buffers
ecb-compile-window-live-p ecb-position ecb-canonical-windows-list
ecb-window-configuration-data ecb-layout-name ecb-compile-window-height
ecb-compile-window-width ecb-windows-width ecb-windows-height ecb-edit-area-creators] 11)
current-window-configuration(nil)
ecb-window-list(#<mswindows-frame "emacs" 0xbf1>)
ecb-make-windows-not-dedicated(#<mswindows-frame "emacs" 0xbf1>)
byte-code("..." [ecb-compile-window ecb-compile-window-height configuration
win-list ecb-frame config selected-frame ecb-window-config-cache-get
ecb-window-configuration-invalidp ecb-make-windows-not-dedicated
ecb-set-windows-dedicated-state t 2 ecb-canonical-windows-list 4 5 ecb-set-minor-mode-text
ecb-edit-area-creators ecb-windows-hidden] 4)
set-window-configuration([cl-struct-window-configuration #<mswindows-frame
"emacs" 0xbf1> 662 641 #<buffer "*Compile-Log*"> 16 10 4
[cl-struct-saved-window t nil nil #<buffer "*Ibuffer*"> #<marker at
4569 in *Ibuffer* 0xa3ce5b4> #<marker at 1 in *Ibuffer* 0xa3ce584> #<marker at
407 in *Ibuffer* 0xa3ce59c> 0 0 662 604 0 0 nil nil nil [cl-struct-saved-window nil t
nil #<buffer " *Minibuf-0*"> #<marker in no buffer 0xa3ce56c>
#<marker at 1 in *Minibuf-0* 0xa3ce53c> #<marker at 1 in *Minibuf-0*
0xa3ce554> 0 604 662 620 0 0 nil nil nil nil]]])
ecb-window-list(#<mswindows-frame "emacs" 0xbf1> 0 #<window on
"*Ibuffer*" 0x8d926>)
ecb-canonical-windows-list()
ecb-canonical-edit-windows-list()
ecb-window-configuration-data()
byte-code("..." [ecb-compile-window ad-return-value f frame ecb-windows-hidden
ecb-frame selected-frame ecb-window-config-cache-add ecb-get-current-visible-ecb-buffers
ecb-compile-window-live-p ecb-position ecb-canonical-windows-list
ecb-window-configuration-data ecb-layout-name ecb-compile-window-height
ecb-compile-window-width ecb-windows-width ecb-windows-height ecb-edit-area-creators] 11)
|----------------------------------------------------------------------------
current-window-configuration(nil)
ecb-window-list(#<mswindows-frame "emacs" 0xbf1> 0 #<window on
"*Ibuffer*" 0x8d926>)
ecb-canonical-windows-list()
ecb-canonical-ecb-windows-list()
ecb-get-current-visible-ecb-buffers()
byte-code("..." [ecb-compile-window ad-return-value f frame ecb-windows-hidden
ecb-frame selected-frame ecb-window-config-cache-add ecb-get-current-visible-ecb-buffers
ecb-compile-window-live-p ecb-position ecb-canonical-windows-list
ecb-window-configuration-data ecb-layout-name ecb-compile-window-height
ecb-compile-window-width ecb-windows-width ecb-windows-height ecb-edit-area-creators] 11)
|----------------------------------------------------------------------------
| Block of 6 lines above executed another 157 times (in place of this
| text) until I quit!
|----------------------------------------------------------------------------
current-window-configuration()
display-buffer(#<buffer "*Compile-Log-Show*"> nil nil t)
byte-code("..." [temp-buffer-shrink-to-fit buffer display-buffer nil] 5)
show-temp-buffer-in-current-frame(#<buffer "*Compile-Log-Show*">)
byte-code("..." [byte-compile-point-max-prev byte-compile-log-buffer
byte-compile-warnings-beginning temp-buffer-show-function show-begin show-buffer "\n" nil get-buffer-create "*Compile-Log-Show*" erase-buffer copy-to-buffer
select-window selected-window display-buffer recenter 1 buffer-read-only] 5)
byte-compile(custom-save-all)
ad-compile-function(custom-save-all)
ad-activate-advised-definition(custom-save-all nil)
ad-activate(custom-save-all)
ecb-enable-advices(((delete-frame . around) (compilation-set-window-height . around)
(shrink-window-if-larger-than-buffer . around) (show-temp-buffer-in-current-frame .
around) (pop-to-buffer . around) (find-file . around) (find-file-other-window . around)
(current-window-configuration . after) (set-window-configuration . after)
(scroll-other-window . around) (custom-save-all . around) (count-windows . around)
(scroll-all-mode . after)))
byte-code("..." [ecb-upgrade-check-done dummy-buf-name ecb-running-xemacs
--dolist-temp--28017 curr-buffer-list ecb-frame ecb-check-requirements ecb-nav-initialize
ecb-enable-advices ecb-check-not-compatible-options ecb-upgrade-not-compatible-options
ecb-upgrade-renamed-options t ecb-initialize-layout ecb-initialize-all-internals run-hooks
ecb-activate-before-new-frame-created-hook make-frame put ecb-new-frame-created
selected-frame nil raise-frame select-frame ecb-enable-own-temp-buffer-show-function
mapcar #<compiled-function (buff) "...(4)" [buff buffer-name] 2>
buffer-list ecb-create-directories-tree-buffer ecb-create-sources-tree-buffer
ecb-create-methods-tree-buffer ecb-create-history-tree-buffer
ecb-eshell-activate-integration add-hook semantic-after-partial-cache-change-hook
ecb-update-after-partial-reparse semantic-after-toplevel-cache-change-hook
ecb-rebuild-methods-buffer-with-tagcache ecb-activate-ecb-autocontrol-functions
ecb-tag-sync ecb-window-sync-function ecb-compilation-buffer-list-changed-p post
ecb-layout-post-command-hook pre ecb-layout-pre-command-hook 0.5
ecb-repair-only-ecb-window-layout after-save-hook ecb-update-methods-after-saving ...] 4)
ecb-activate--impl()
ecb-activate-internal()
ecb-minor-mode(1)
#<compiled-function nil "...(4)" [ecb-minor-mode 1] 2 ("c:\\Program
Files\\XEmacs\\xemacs-packages\\lisp\\ecb\\ecb.elc" . 38445) nil>()
call-interactively(ecb-activate)
command-execute(ecb-activate t)
execute-extended-command(nil)
call-interactively(execute-extended-command)
Thanks in advance!
Ciao,
Klaus
Berndl, Klaus wrote:
> Hi,
>
> Adrian Aichner has already reported that XEmacs 21.5 eats up whole CPU
> when running ECB... seems that you run into the same problem ;-)
>
> The real problem is, that i have no XEmacs 21.5 available to test
> ECB with it and make ECB compatible with it...i have tried:
> 1) Downloading a precompiled XEmacs 21.5. but it seems missing some
> important el-libs which are included in XEmacs 21.4. and are needed
> by ECB...my question to the beta-mailing-list where these libs are
> and why they are not contained and what can i do has not been
> answerded 2) Building XEmacs 21.5 from scratch i.e. compiling from
> the sources with Visual C++ 6.0 - but somehow no real success
>
> I have to the time to invest days and days to get the beast running
> so i
> gave up...
>
> I'm using Windows XP and cygwin-environment - so if you can point me
> to an easy installable XEmacs 21.5 (either native Window-build or
> cygwin-build) then i will download and install it and give it a
> second try to find out
> why ECB does not work with 21.5 - currently i have no chance to find
> out
> what is the problem... the backtrace "mentions" often
> set-window-configuration which has an important advice in ECB...maybe
> this function has changed
> in an important aspect with 21.5. so the advice and its usage by ECB
> does
> not work with this implementation - but its just poking in the fog
> for now ;-)
>
> Ciao,
> Klaus
>
> fAX k.root wrote:
>> Symptoms: few seconds after ecb-activate, XEmacs 21.5 beta18 writes
>> in mini-buffer 'variable semantic--before-fetch-tags-hook is bound
>> but not referenced', then 'Error in pre-gc-hook: stack owerflow',
>> then 'Error in `post-gc-hook': Attempt to throw outside the function
>> call. All this time XEmacs consumes all the CPU. ECB version 2.31,
>> the latest one.
>>
>> If I kill xemacs, I'm getting the following backtrace.
>> =====================
>>
>> Lisp backtrace follows:
>>
>> # (unwind-protect ...)
>> # (unwind-protect ...)
>> # (unwind-protect ...)
>> # (unwind-protect ...)
>> # (unwind-protect ...)
>> # (unwind-protect ...)
>> # (unwind-protect ...)
>> # (unwind-protect ...)
>> # bind (/home/fax> left top right bottom buffer edges window)
>> root-window->saved-window(#<window on " *Minibuf-0*" 0x10c4>)
>> # bind (left top right bottom buffer edges window)
>> root-window->saved-window(#<window on "*scratch*" 0xf11>) #
bind
>> (frame frame) ad-Orig-current-window-configuration(nil)
>> # bind (ad-return-value frame)
>> current-window-configuration()
>> # bind (frame configuration)
>> ad-Orig-set-window-configuration([cl-struct-window-configuration
>> #<x-frame "emacs" 0xf10> 724 894 #<buffer
"*Compile-Log*"> 13 10 4
>> [cl-struct-saved-window t nil nil #<buffer "*scratch*">
#<marker in
>> no buffer 0x8eef75c> #<marker at 1 in *scratch* 0x8eef78c> #<marker
>> at 398 in *scratch* 0x8eef774> 0 0 716 852 0 0 nil nil nil
>> [cl-struct-saved-window nil t nil #<buffer " *Minibuf-0*">
#<marker
>> in no buffer 0x8eef7a4> #<marker at 1 in *Minibuf-0* 0x8eef864>
>> #<marker at 1 in *Minibuf-0* 0x8eef7bc> 0 852 716 865 0 0 nil nil
>> nil nil]]]) # bind (ad-return-value configuration)
>> set-window-configuration([cl-struct-window-configuration #<x-frame
>> "emacs" 0xf10> 724 894 #<buffer "*Compile-Log*"> 13
10 4
>> [cl-struct-saved-window t nil nil #<buffer "*scratch*">
#<marker in
>> no buffer 0x8eef75c> #<marker at 1 in *scratch* 0x8eef78c> #<marker
>> at 398 in *scratch* 0x8eef774> 0 0 716 852 0 0 nil nil nil
>> [cl-struct-saved-window nil t nil #<buffer " *Minibuf-0*">
#<marker
>> in no buffer 0x8eef7a4> #<marker at 1 in *Minibuf-0* 0x8eef864>
>> #<marker at 1 in *Minibuf-0* 0x8eef7bc> 0 852 716 865 0 0 nil nil
>> nil nil]]]) # bind (G39906) # (unwind-protect ...)
>> # bind (current-frame current-point list window minibuf frame)
>> ecb-window-list(#<x-frame "emacs" 0xf10> 0 #<window on
"*scratch*"
>> 0xf11>) # bind (winlist) ecb-canonical-ecb-windows-list()
>> ecb-get-current-visible-ecb-buffers()
>> # bind (f)
>> byte-code("..." [ecb-compile-window ad-return-value f frame
>> ecb-windows-hidden ecb-frame selected-frame
>> ecb-window-config-cache-add ecb-get-current-visible-ecb-buffers
>> ecb-compile-window-live-p ecb-position ecb-window-list 0
>> frame-first-window ecb-window-configuration-data ecb-layout-name
>> ecb-compile-window-height ecb-compile-window-width ecb-windows-width
>> ecb-windows-height ecb-edit-area-creators] 10)
>> # (condition-case ... . ((error (byte-code "A#" [oops
>> ecb-layout-debug-error "advice of current-window-configuration
>> failed: (error-type: %S, error-data: %S)"] 4))))
>> # bind (ad-return-value frame)
>> current-window-configuration()
>> # bind (frame configuration)
>> ad-Orig-set-window-configuration([cl-struct-window-configuration
>> #<x-frame "emacs" 0xf10> 724 894 #<buffer
"*Compile-Log*"> 13 10 4
>> [cl-struct-saved-window t nil nil #<buffer "*scratch*">
#<marker in
>> no buffer 0x8eb9bec> #<marker at 1 in *scratch* 0x8eb9c1c> #<marker
>> at 398 in *scratch* 0x8eb9c04> 0 0 716 852 0 0 nil nil nil
>> [cl-struct-saved-window nil t nil #<buffer " *Minibuf-0*">
#<marker
>> in no buffer 0x8eb9c34> #<marker at 1 in *Minibuf-0* 0x8eb9c64>
>> #<marker at 1 in *Minibuf-0* 0x8eb9c4c> 0 852 716 865 0 0 nil nil
>> nil nil]]]) # bind (ad-return-value configuration)
>> set-window-configuration([cl-struct-window-configuration #<x-frame
>> "emacs" 0xf10> 724 894 #<buffer "*Compile-Log*"> 13
10 4
>> [cl-struct-saved-window t nil nil #<buffer "*scratch*">
#<marker in
>> no buffer 0x8eb9bec> #<marker at 1 in *scratch* 0x8eb9c1c> #<marker
>> at 398 in *scratch* 0x8eb9c04> 0 0 716 852 0 0 nil nil nil
>> [cl-struct-saved-window nil t nil #<buffer " *Minibuf-0*">
#<marker
>> in no buffer 0x8eb9c34> #<marker at 1 in *Minibuf-0* 0x8eb9c64>
>> #<marker at 1 in *Minibuf-0* 0x8eb9c4c> 0 852 716 865 0 0 nil nil
>> nil nil]]]) # bind (G39906) # (unwind-protect ...)
>> # bind (current-frame current-point list window minibuf frame)
>> ecb-window-list(#<x-frame "emacs" 0xf10> 0 #<window on
"*scratch*"
>> 0xf11>) # bind (winlist) ecb-canonical-edit-windows-list()
>> ecb-window-configuration-data()
>> # bind (f)
>> byte-code("..." [ecb-compile-window ad-return-value f frame
>> ecb-windows-hidden ecb-frame selected-frame
>> ecb-window-config-cache-add ecb-get-current-visible-ecb-buffers
>> ecb-compile-window-live-p ecb-position ecb-window-list 0
>> frame-first-window ecb-window-configuration-data ecb-layout-name
>> ecb-compile-window-height ecb-compile-window-width ecb-windows-width
>> ecb-windows-height ecb-edit-area-creators] 10)
>> ................
>> And so on.
>> ................
>> byte-code("..." [ecb-compile-window ad-return-value f frame
>> ecb-windows-hidden ecb-frame selected-frame
>> ecb-window-config-cache-add ecb-get-current-visible-ecb-buffers
>> ecb-compile-window-live-p ecb-position ecb-window-list 0
>> frame-first-window ecb-window-configuration-data ecb-layout-name
>> ecb-compile-window-height ecb-compile-window-width ecb-windows-width
>> ecb-windows-height ecb-edit-area-creators] 10)
>> # (condition-case ... . ((error (byte-code "A#" [oops
>> ecb-layout-debug-error "advice of current-window-configuration
>> failed: (error-type: %S, error-data: %S)"] 4))))
>> # bind (ad-return-value frame)
>> current-window-configuration()
>> # bind (shrink-to-fit override-frame not-this-window-p buffer)
>> display-buffer(#<buffer "*Compile-Log-Show*"> nil nil nil)
>> byte-code("..." [temp-buffer-shrink-to-fit buffer display-buffer nil]
>> 5) # (condition-case ... . ((wrong-number-of-arguments (byte-code
>> ▒À \n# Ə#)" [temp-buffer-shrink-to-fit buffer
>> ecb-temp-buffer-shrink-to-fit ecb-layout-debug-error
>> "show-temp-buffer-in-current-frame for %s: we call a 3-arg
>> display-buffer: %s" display-buffer nil] 4)) (error (byte-code
A\""
>> [oops signal] 3)) (quit (byte-code "@�"" [signal quit
nil]
>> 3)))) # (unwind-protect ...) # bind (pre-display-buffer-function
>> ad-return-value buffer) show-temp-buffer-in-current-frame(#<buffer
>> "*Compile-Log-Show*">) # bind (show-buffer show-begin)
>> # (unwind-protect ...)
>> byte-code("..." [byte-compile-point-max-prev byte-compile-log-buffer
>> byte-compile-warnings-beginning temp-buffer-show-function show-begin
>> show-buffer " \n" nil get-buffer-create
>> "*Compile-Log-Show*" erase-buffer copy-to-buffer select-window
>> selected-window display-buffer recenter 1 buffer-read-only] 5)
>> # bind (byte-compile-warnings-beginning byte-compile-point-max-prev
>> byte-compile-log-buffer form) byte-compile(custom-save-all)
>> # bind (ad-activate-on-top-level function)
>> ad-compile-function(custom-save-all)
>> # bind (verified-cached-definition compile function)
>> ad-activate-advised-definition(custom-save-all nil)
>> # bind (ad-activate-on-top-level compile function)
>> ad-activate(custom-save-all)
>> # bind (--dolist-temp--39907 elem advice-list)
>> ecb-enable-advices(((delete-frame . around)
>> (compilation-set-window-height . around)
>> (shrink-window-if-larger-than-buffer . around)
>> (show-temp-buffer-in-current-frame . around) (pop-to-buffer . around)
>> (current-window-configuration . after) (set-window-configuration .
>> after) (scroll-other-window . around) (custom-save-all . around)
>> (count-windows . around) (scroll-all-mode . after)))
>> byte-code("..." [ecb-upgrade-check-done dummy-buf-name
>> ecb-running-xemacs --dolist-temp--39916 curr-buffer-list ecb-frame
>> ecb-check-requirements ecb-nav-initialize
>> ecb-check-not-compatible-options ecb-upgrade-not-compatible-options
>> ecb-upgrade-renamed-options t ecb-initialize-layout
>> ecb-clear-tag-tree-cache ecb-clear-files-and-subdirs-cache
>> ecb-clear-directory-empty-cache ecb-sources-cache-clear
>> ecb-reset-history-filter ecb-initialize-internal-vars
>> ecb-enable-advices run-hooks
>> ecb-activate-before-new-frame-created-hook make-frame put
>> ecb-new-frame-created selected-frame nil raise-frame select-frame
>> ecb-enable-own-temp-buffer-show-function mapcar #<compiled-function
>> (buff) "...(4)" [buff buffer-name] 2> buffer-list
>> ecb-create-directories-tree-buffer ecb-create-sources-tree-buffer
>> ecb-create-methods-tree-buffer ecb-create-history-tree-buffer
>> ecb-eshell-activate-integration add-hook
>> semantic-after-partial-cache-change-hook
>> ecb-update-after-partial-reparse
>> semantic-after-toplevel-cache-change-hook
>> ecb-rebuild-methods-buffer-with-tagcache
>> ecb-activate-ecb-autocontrol-functions ecb-tag-sync
>> ecb-window-sync-function ecb-compilation-buffer-list-changed-p post
>> ecb-layout-post-command-hook pre ...] 4) # (condition-case ... .
>> ((error (ecb-clean-up-after-activation-failure "Errors during the
>> basic setup of ECB." err-obj)))) ecb-activate--impl()
>> ecb-activate-internal() # bind (new-state arg)
>> ecb-minor-mode(1)
>> #<compiled-function nil "...(4)" [ecb-minor-mode 1] 2
>> ("/usr/share/xemacs/xemacs-packages/lisp/ecb/ecb.elc" . 69254)
nil>()
>> call-interactively(ecb-activate)
>> command-execute(ecb-activate t)
>> # bind (_execute_command_keys_ _execute_command_name_ prefix-arg)
>> execute-extended-command(nil) # bind (command-debug-status)
>> call-interactively(execute-extended-command)
>> # (condition-case ... . error)
>> # (catch top-level ...)
>>
>>
>> For now, I'm going to switch back to XEmacs 21.4 as I need ECB :).
--
Adrian Aichner
mailto:adrian@xemacs.org
http://www.xemacs.org/