[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: CLOS Speed
- To: larus@ginger.Berkeley.EDU
- Subject: Re: CLOS Speed
- From: Gregor.pa@Xerox.COM
- Date: Wed, 29 Jun 88 13:29 PDT
- Cc: commonloops.pa@Xerox.COM
- Fcc: BD:>Gregor>mail>outgoing-mail-2.text.newest
- In-reply-to: <8806291650.AA08198@paris.Berkeley.EDU>
- Line-fold: no
Date: Wed, 29 Jun 88 09:50:54 PDT
From: larus%paris.Berkeley.EDU@ginger.Berkeley.EDU (James Larus)
The change for Allegro CL is below. I don't know of a portable way to
compile this special form declaration (which is clearly a shortcomming
in CL).
(defun do-deftype (name lambda-list &rest body)
(let #+Symbolics ((si:inhibit-fdefine-warnings t))
#-Symbolics ()
#+Lispm (setq body (copy-list body))
(eval `(deftype ,name ,lambda-list ,@body))
#+excl (compile `(:property ,name excl::deftype-expander))))
Thanks for this change. I have actually been planning to look at doing
special port-specific code for this and for do-defmethod-setf-defsetf.
But I don't understand why this change speeds up the execution of your
program. I would have thought it would make it compile faster, but
that was all. To help me understand this, could you send me two things
please:
A small code fragment which runs faster after you make this change, and
the result of calling walker::walk-form on that code fragment.
Thanks for the help.
-------
- Follow-Ups:
- Re: CLOS Speed
- From: larus%paris.Berkeley.EDU@ginger.Berkeley.EDU (James Larus)
- References:
- Re: CLOS Speed
- From: larus%paris.Berkeley.EDU@ginger.Berkeley.EDU (James Larus)