(defun slurp-stream3 (stream)
(let ((seq (make-array 1024 :element-type 'character
(setf (fill-pointer seq) (read-sequence seq stream))
(when (zerop (fill-pointer seq))
(write-sequence seq out)))))
2. read-sequence and write-sequence ignore the fill-pointer so there's no need for it, much less initialize it to 1024 (also :fill-pointer t would have the same effect of initializing to the length of the vector). He's using the fill-pointer as a variable so he should just use a simple lexical variable.