1.0.11.29: Faster CONCATENATE on strings
authorJuho Snellman <jsnell@iki.fi>
Sun, 18 Nov 2007 04:13:27 +0000 (04:13 +0000)
committerJuho Snellman <jsnell@iki.fi>
Sun, 18 Nov 2007 04:13:27 +0000 (04:13 +0000)
commit260a9146f02374a9cfbd9deb53283ee493f3729f
tree2f3a30101e9068e62faebdb990043e529f918f76
parentb841aa690bada10da8c8db6eec361e3eeef0492c
1.0.11.29: Faster CONCATENATE on strings

        * Add a result-type dependent DEFTRANSFORM which open-codes directly
          to calls to REPLACE.
        * Constant-fold the array reads for constant string arguments
          in the transform (intended as a slezy benchmark trick, but actually
          it looks as if having some literal strings mixed in with
          variables is pretty common in real world CONCATENATE uses).
        * Add transforms for REPLACE on mixed SIMPLE-BASE-STRINGS and
          (SIMPLE-ARRAY CHARACTER (*)) to support.
        * Speeds up a simple benchmark of concatenating two three-character
          strings by a factor of 15, and by a factor of 30 when the strings
          are constant. For a more real-world example, doing DIRECTORY on
          a large set of files speeds up by 25%.

        Also:

        * Fix a broken test (extra close paren) that was uncovered by
          the write-no-partial-fasls change.
NEWS
src/code/primordial-extensions.lisp
src/code/seq.lisp
src/compiler/seqtran.lisp
tests/fopcompiler.impure-cload.lisp
version.lisp-expr