1.0.12.29: optimize POSITION & FIND families for strings
authorNikodemus Siivola <nikodemus@random-state.net>
Wed, 12 Dec 2007 11:58:03 +0000 (11:58 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Wed, 12 Dec 2007 11:58:03 +0000 (11:58 +0000)
  * If the string is simple, and the element type is know the old code
    does well already. Add a dispatch for (SIMPLE-ARRAY CHARACTER (*))
    to the out-of-line versions on unicode builds.

  * To keep code size down to something reasonable, remove the
    dispatch for SIMPLE-VECTOR: presumably POSITION & FIND are much
    more common on strings of uncertain type, then random vectors.

src/code/seq.lisp
version.lisp-expr

index a51435d..b49f616 100644 (file)
                                             (frob sequence t)
                                             (frob sequence nil))))
                        (typecase sequence
-                         (simple-vector (frob2))
-                         (simple-base-string (frob2))
+                         #!+sb-unicode
+                         ((simple-array character (*)) (frob2))
+                         ((simple-array base-char (*)) (frob2))
                          (t (vector*-frob sequence))))
                    (declare (type (or index null) p))
                    (values f (and p (the index (- p offset)))))))))
index 1fc778e..66e285d 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.12.28"
+"1.0.12.29"