--------------------------------------------------------------------------------
#21
(defun-with-dx foo ()
- (let ((dx (list (list 1 2) (list 3 4)
+ (let ((dx (list (list 1 2) (list 3 4))))
(declare (dynamic-extent dx))
- ...)))))
+ ...))
External list in DX is allocated on stack, but internal are not.
--------------------------------------------------------------------------------
a. Iterations on &REST lists, returning them as VALUES could be
rewritten with &MORE vectors.
b. Implement local unknown-values mv-call (useful for fast type checking).
+--------------------------------------------------------------------------------
+#26
+SBCL cannot derive upper bound for I and uses generic arithmetic here:
+
+(defun foo (l)
+ (declare (vector l))
+ (dotimes (i (length l))
+ (if (block nil
+ (map-foo (lambda (x) (if x (return t)))
+ l))
+ t
+ nil)))
+
+(So the constraint propagator or a possible future SSA-convertor
+should know the connection between an NLE and its CLEANUP.)
+--------------------------------------------------------------------------------
+#27
+Initialization of stack-allocated arrays is inefficient: we always
+fill the vector with zeroes, even when it is not needed (as for
+platforms with conservative GC or for arrays of unboxed objectes) and
+is performed later explicitely.