Hi,

  EIEIO 0.13 will indeed be faster than 0.15.  0.15 now includes type
checking for slots, which I know Paul is fond of. This has a side
effect of slowing things down a small amount.

  A sneaky trick, if you are certain your code is bug free, is to
toggle the value of `eieio-skip-typecheck'.  That should pep things up
on slow systems.

  As for this error, it looks like the error thrown in `class-p' is
being picked up by the debug stuff.  When checking for a class'
validity, there are many horrible things that could exist, so the
condition case is there.  That error should be ok.

  For slow systems, it is always important to compile EIEIO.  EIEIO
performs hordes of gyrations with built ins to achieve it's function,
and gains speed improvements of 2 to 3 times or more when byte
compiled.

  For my EDE system (a generic project system based 100% on EIEIO) if
I don't byte compile EIEIO, it's use is completely unbearable to use
on my P75.  When compiled, I hardly notice it running.  Since you have
full source in your backtrace, I'm assuming you didn't byte compile
EIEIO.

Good Luck
Eric

>>> ("nnml:list.jde" 4372) seems to think that:
>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
>

-- 
          Eric Ludlam:                 [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: www.ultranet.com/~zappo            Siege: www.siege-engine.com
Emacs: www.ultranet.com/~zappo/fsf.shtml          GNU: www.gnu.org

Reply via email to