>>>>> "Harvey" == Harvey J Stein <[EMAIL PROTECTED]> writes:

    Harvey> I don't understand why it has to box the results of one-normal-rand 
&
    Harvey> callpay.  Once it knows the signature of these fcns, shouldn't it be

Because I can redefine one-normal-rand and callpay at any time.  I
think this is what block-compilation is for.

    Harvey> able to use them directly, without boxing?  Also, as I mentioned in 
my
    Harvey> reply to Janos, simple fixnum functions don't generate this pointer
    Harvey> conversion note for the return value, whereas equivalent 
double-float
    Harvey> ones do.

    Harvey> In any case, as for inlining & block compilation, I tried:

    Harvey>    (eval-when (compile)
    Harvey>      (proclaim '(inline one-normal-rand
    Harvey>                         callpay)))

    Harvey> and

This is more typically written (declaim (inline one-normal-rand callpay)).

    Harvey>    (compile-file "bsmc-cl-min5" :block-compile t)

    Harvey> didn't help, and I still get 70 compiler notes, mostly having to do
    Harvey> generic arithmetic because things are numbers and not double-floats.
    Harvey> Also, it hated trying to inline the recursive one-normal-rand, so I
    Harvey> changed it first to:

I think it's a good idea to get rid of the compiler notes about
generic arithmetic first before trying to inline stuff, because that's
where you're spending all your time.  Inlining just gets rid of the
function call and result-consing overhead.

Ray

Reply via email to