1.0.15.11: one more slice of ASSOC micro-optimization
* In %ASSOC and %ASSOC-EQ, test for equality before checking if the
list element is NIL: in the common case only one element needs both
tests, and even in the rare cases (looking for NIL, list contains
several NILs) this is as fast as the old version. Common cases
improved by ~30% by this.
Now, finally, CL:ASSOC is as fast as
(defun fast-assoc (item list)
(loop for e in list
when (eq item (car e))
return e))
when the type of ITEM is known to be (OR FIXNUM (NOT NUMBER)).
* In others %ASSOC-* functions, test for existence of element only
once (the compiler should eliminate the redundant test, though, but
this is cleaner.)