standard bashed)
;; fill vectors
;; a) the standard slow way
- (fill standard c :start offset :end (+ offset n))
+ (locally (declare (notinline fill))
+ (fill standard c :start offset :end (+ offset n)))
;; b) the blazingly fast way
(let ((value (loop for i from 0 by bitsize
until (= i sb-vm:n-word-bits)
;;; FILL on lists
(let ((l (list 1 2 3)))
- (fill l 0 :start 1 :end 2)
+ (assert (eq l (fill l 0 :start 1 :end 2)))
(assert (equal l '(1 0 3)))
- (fill l 'x :start 2 :end 3)
+ (assert (eq l (fill l 'x :start 2 :end 3)))
(assert (equal l '(1 0 x)))
- (fill l 'y :start 1)
+ (assert (eq l (fill l 'y :start 1)))
(assert (equal l '(1 y y)))
- (fill l 'z :end 2)
+ (assert (eq l (fill l 'z :end 2)))
(assert (equal l '(z z y)))
- (fill l 1)
+ (assert (eq l (fill l 1)))
(assert (equal l '(1 1 1)))
(assert (raises-error? (fill l 0 :start 4)))
(assert (raises-error? (fill l 0 :end 4)))