From: William Harold Newman <william.newman@ai...> - 2004-02-05 02:30:05
On Wed, Feb 04, 2004 at 04:51:01PM +0000, Robert E. Brown wrote:
> Enclosed is a patch to src/code/sort.lisp that reduces the number of times
> %COERCE-CALLABLE-TO-FUN is invoked when sorting. I've lifted calls to this
> function out of macro VECTOR-MERGE-SORT and STABLE-SORT-LIST and placed them
> directly in SORT and STABLE-SORT.
OK, I've merged the code in CVS.
Incidentally, this may not be a pure improvement. Ordinarily I do
favor putting operations in one place in the code, instead of having
to remember to do them once in each of several variant functions.
However, when it's possible that the outer layers (like CL:SORT) may
be inlined, while the inner layers (the variant functions like
SB-IMPL::STABLE-SORT-LIST) may not be, there can be some (small) value
to putting the repetitive calculation inside the uninlined code, since
it makes the code smaller. But then, on the other hand, putting the
calculation in the inlined code might let the optimizer remove it in
some cases, so who knows?
Anyway, the new code looks more regular and consistent than the old
code, so it is in 0.8.7.45 now. Thank you.
William Harold Newman <william.newman@...>
"If you could have one wish, what would it be?"
"I wish that all Web browsers would drop their proprietary
tags and conform to the W3C's HTML 4.01 and the ECMA
Script 262 v.2 specifications."
PGP key fingerprint 85 CE 1C BA 79 8D 51 8C B9 25 FB EE E0 C3 E5 7C