Paul Kinnucan <[EMAIL PROTECTED]> writes:
> At 03:22 PM 1/3/01 +0100, Gerd Boerrigter wrote:
> >Hi,
> >
> >I installed JDE 2.2.6 on XEmacs 21.1 and all the needed packages from
> >Eric (also the semantic patch to make senator and related stuff work
> >on XEmacs) and it works.
> >
> >But as soon if I select JDEBug as debugger, to enter the menu-bar
> >takes a looong time. It doesn't matter, if I click on the bar or use
> >a keystroke to enter it. Before the menu shows up, the CPU does some
> >heavy calculation which takes a couple of seconds.
> >
> >Do other people see the same?
>
> I just checked JDE 2.2.6 on XEmacs 21.1 on a Sun Ultra 5 workstation
> running Solaris. The JDEbug menu drops down instantaneously. I also have
> not seen any degradation in JDEbug menu performance on the Windows NT
> version of XEmacs.
Actually, on the 500MHz Pentium II at work it is not that long
compared to my 100MHz Pentium I at home, but it is still noticeable
there, just a wink longer than it should be. On the Pentium 100 it
are literally seconds.
I did a little bit more research. After setting debug-on-signal to t,
I got the following backtrace when selecting the menu:
,----
| Signaling: (wrong-type-argument arrayp nil)
| aref(nil 0)
| (eq (aref (class-v class) 0) (quote defclass))
| )
| (condition-case nil (eq (aref ... 0) (quote defclass)) (error nil))
| )
| (class-p class)
| )
| (if (class-p class) (let (...) (if ... ...) (if ... ... ...)) (let (...) (if emtl
|... nil)))
| )
| (let ((emto ...)) (if (class-p class) (let ... ... ...) (let ... ...)))
| )
| eieio-generic-form(jde-dbs-proc-set-get-size 2 nil)
| (cons (eieio-generic-form method method-after nil) lambdas)
| )
| (setq lambdas (cons (eieio-generic-form method method-after nil) lambdas))
| )
| (if (not scoped-class) (setq lambdas (cons ... lambdas)))
| )
| (let ((newargs nil) (mclass nil) (lambdas nil) (eieio-generic-call-methodname
|method) (eieio-generic-call-arglst args)) (setq newargs args) (if (object-p ...)
|(setq mclass ...)) (if (not scoped-class) (setq lambdas ...)) (if mclass (setq
|lambdas ...)) (if (not scoped-class) (setq lambdas ...)) (if mclass (setq lambdas
|...)) (if (not scoped-class) (setq lambdas ...)) (if mclass (setq lambdas ...)) (let
|(... ...) (while lambdas ... ...) (if ... ...) rval))
| )
| eieio-generic-call(jde-dbs-proc-set-get-size ([object jde-dbs-proc-registry
|"Process Registry" nil unbound]))
| jde-dbs-proc-set-get-size([object jde-dbs-proc-registry "Process Registry" nil
|unbound])
| (> (jde-dbs-proc-set-get-size jde-dbs-the-process-registry) 0)
| )
`----
If the JDEBug menu is removed (e.g. by calling
jde-bug-remove-jdebug-menu) there is no backtrace. I figured out,
that eieio might be the problem and tried out with eieio 0.13 instead
of 0.15 and indeed, it was much faster than 0.15 (on my Pentium 100).
But even the old version showed a similar backtrace ending in
,----
| Signaling: (wrong-type-argument arrayp nil)
| aref(nil 0)
`----
Hope that helps.
Gerd