Thanks for your rapid reply.
I realize a reproducible test case is what you need to go further, and I'll try to develop that - and I'll move to 1.0.53 as well as trying this on a linux box.
That said, I was trying to establish whether I should expect different results (or if this is a known issue) from the two different methods of producing a compiled function dynamically, hence showing the compilations are made in essentially identical lexical environments, and that the code being compiled is basically identical.
To directly answer your question on EQUATION-AGGREGATOR, here's the source, and in this case, fn is bound to #'+:
(defun equation-aggregator (fn &rest args)
(declare (optimize (speed 3) (safety 0)))
(let ((tmp (delete nil args)))
(reduce fn tmp)
>From: Nikodemus Siivola <nikodemus@...>
>Sent: Nov 30, 2011 4:04 AM
>Subject: Re: [Sbcl-help] compile function v. dynamic eval of defun
>On 30 November 2011 11:08, <billpeople@...> wrote:
>> I haven't been able to generate a simpler case to show the issue - the simpler cases
>> all work as they ought, yielding identical results.
>First of, you may want to try with 1.0.53 (or current master), as FP
>traps on OS X have seen some work since 1.0.52.
>Second, can you please provide definitions for the functions called in
>your test-cast, and a sample run where you show how to call them and
>the results you get.
>Ie. something I can just copy and paste into my repl (or a file I can
>load, etc) to see the issue without needing to wonder what
>EQUATION-AGGREGATOR is or what kind of arguments I'm supposed to
> -- Nikodemus