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

Re: compile-flavor-methods for CLOS



> Date: Tue, 18 Dec 90 22:53 EST
> From: jcma@reagan.ai.mit.edu (John C. Mallery)
> 
>     Date: Tue, 18 Dec 1990 16:33-0500
>     From: SWM@sapsucker.scrc.symbolics.com (Scott McKay)
>     The first two functions below is what we use in CLIM to generate a form
>     that will arrange to prefill method dispatch caches at load-time.  The
>     way you use it is to (1) load your CLOS-based application, (2) run a
>     whole bunch of "representative" code,
> 
> This is bogus.  Am I going to run my application before a I save out my world
> load?  Running this code is merely going to call some functions that
> instantiate structure which #3 is going to rely on.  The question is what are
> the functions that running the code calls.  This should then be combined with
> #3 to provide some kind of compile methods equivalent for specific methods,
> perhaps using a syntax like, (compile-methods generic-function (arg1.
> arg1-classes) (arg2 . arg2-classes) ...).
> 
>    (3) fill in the <<A LIST OF CLASSES>>
>     list in GENERATE-ALL-PREFILL-DISPATCH-CACHES with the important classes
>     in your application, and then execute that function.  It will generate
>     (via GENERATE-PREFILL-DISPATCH-CACHES) a bunch of Lisp forms that, when
>     evaluated, will fill the dispatch caches.

I think you should read what SWM said a little more carefully before accusing 
him of being bogus.  What you seem to be proposing is exactly what he is providing.

> Am I going to run my application before a I save out my world load?

Perhaps it wasn't sufficiently clear that the procedure is to load your application
once, exercise it to gather the data, tune it by adding the forms generated in
step 3 to its source code, then compile and load it again.  You don't save a
world containing the same copy of the application that was exercised.  If you
did, you wouldn't need any of this technology.