> > Then there are other things I still have no handle on.  For instance,
> > it seems that sometimes a type declaration will have no effect --- I
> > will declare an argument x to be (type (simple-array double-float x)),
> > but will get compiler notes to the effect that x is a vector, not a
> > simple-array double-float.  However, if I blow away all the .x86f
> > files in the directory and recompile them, these notes go away and the
> > code becomes fast.  Any ideas what to even look for that causes this
> > problem?
> 
> How exactly do you do these declarations? And in what order do you
> load things?

I'm not sure how to answer this.  The most recent example was that I
have files a, b, and c, each of which depend on all previous files in
the sequence.  I rewrote a function foo in b, and the code generated
for that function produced lots of notes and was slow no matter how
many times I recompiled, and type declarations.  If I blew away all
the source code and recompiled in order a, b, c, it was fast.  I
couldn't recompile in any other order because of the dependencies.
The function I modified was not declared inline.

In general, what sorts of things would make a type declaration not
"take" --- seem to have no effect.  It must be some sort of other
information kept by the system, but I'm not sure what it is.

rif

Reply via email to