[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CLOS Speed



    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.
-------