1.0.44.1: more conservative CONCATENATE open-coding
authorNikodemus Siivola <nikodemus@random-state.net>
Sun, 7 Nov 2010 01:14:39 +0000 (01:14 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Sun, 7 Nov 2010 01:14:39 +0000 (01:14 +0000)
commita4ea3949e051d8c9248b231f175d54a20618743e
treecd8d0d184164f2b1e2350566387bca9bb51e0ea8
parent37df3b7a41c0052162fe5b3d29381549262a99f3
1.0.44.1: more conservative CONCATENATE open-coding

  Don't fully open code for long strings, no matter what policy:
  constraint-propagation will go seriously nonlinear.

  Also optimize the open-coded form a bit. Use

    (SETF (AREF .STRING. (TRULY-THE INDEX (+ .POS. <constant>))) <char>)
    ...repeat...
    (INCF .POS. <constant>)

  instead of

    (SETF (AREF .STRING .POS.) <char>)
    (INCF .POS.)
    ...repeat...

  . Smaller code, easier on the constraint propagation, and a tiny
  bit faster too.
NEWS
src/compiler/seqtran.lisp
tests/compiler.pure.lisp
version.lisp-expr