[cmucl-imp] Interesting loop problem
Raymond Toy
toy.raymond at gmail.com
Thu Aug 6 22:03:59 UTC 2015
>>>>> "Blake" == Blake McBride <blake1024 at gmail.com> writes:
Blake> See below.
Blake> On Thu, Aug 6, 2015 at 10:23 AM, Raymond Toy <toy.raymond at gmail.com> wrote:
[snip]
>>
>> And?
Blake> And:
Blake> 1. My machine finishes in 1:24 (one minute, 24 seconds) with CMUCL
Blake> interpreted. On the same machine giving interpreted (where available)
Blake> numbers only:
Blake> LISPF4 0:22
Blake> CLISP 0:43
Blake> ABCL 0:24
Blake> GCL 0:34
Blake> ECL 0:10
Blake> CMUCL 1:24
Blake> So, CMUCL is, by very far, the slowest interpreter available. That's a
Blake> problem.
Yeah, that's not great. Carl tells me that even on 18a it's slow, so
the issue goes way back to the early days of cmucl.
Blake> 2. Why the GC's? The program allocates no structures, no conses, no
Blake> recursion. That's a problem.
You ignore how cmucl runs the interpreter. I've never looked in this,
but I can imagine all of the consing is coming from the interpreter
running the code. If you byte-compile the function, the function
doesn't cons. Still rather slow, but not inordinately slow.
Blake> 3. Prior to this, I was under the impression that CMUCL was one of the
Blake> more mature, efficient, and compliant CL's available. Apparently I was
Blake> wrong. That's a problem.
I suspect most of the effort was spent on the compiler not the
interpreter. I think in that respect cmucl does well. I can imagine
the "answer" to a slow interpreter is to just compile the function
since the compiler is good.
Blake> Does that help answer your question?
Yes.
--
Ray
More information about the cmucl-imp
mailing list