add DO-VECTOR-DATA, remove special case from VECTOR-MAP-INTO
commit99f9e1f5885e3b219dd1f2fe3557feabc084048d
authorNikodemus Siivola <nikodemus@random-state.net>
Sun, 27 May 2012 10:44:12 +0000 (27 13:44 +0300)
committerNikodemus Siivola <nikodemus@random-state.net>
Sun, 27 May 2012 12:41:53 +0000 (27 15:41 +0300)
tree9ac8e0878806e66c42b68914ed7f3763252db492
parentb31eab5875e8058a2fdfcb879e23c2724d25a278
add DO-VECTOR-DATA, remove special case from VECTOR-MAP-INTO

  DO-VECTOR-DATA is like DOVECTOR, but uses WITH-ARRAY-DATA and grabs the
  right reffer function so there's no per-element dispatch.

  Since MAP used DOSEQUENCE for for-effect/arity-1 case, and DOSEQEUNCE in
  turn uses DOVECTOR, replacing DOVECTOR there with DO-VECTOR-DATA we get the
  a performance boost while being able to drop the special case in
  VECTOR-MAP-INTO.

  Add a test for which the special case was broken: mapping a list into a
  vector.
src/code/array.lisp
src/code/seq.lisp
tests/map-tests.impure.lisp