77 |
(cdr y)) |
(cdr y)) |
78 |
(a b)) |
(a b)) |
79 |
|
|
80 |
|
(deftest dynamic-extent.12 |
81 |
|
(let* ((contents '(1 0 0 1 1 0 1 1 0 1)) |
82 |
|
(n (length contents))) |
83 |
|
(loop for i from 1 to 32 |
84 |
|
for type = `(unsigned-byte ,i) |
85 |
|
for form1 = `(make-array '(,n) :initial-contents ',contents |
86 |
|
:element-type ',type) |
87 |
|
for form2 = `(let ((a ,form1)) |
88 |
|
(declare (dynamic-extent a)) |
89 |
|
(declare (type (simple-array ,type (,n)))) |
90 |
|
(declare (notinline coerce)) |
91 |
|
(declare (optimize speed (safety 0))) |
92 |
|
(equal (coerce a 'list) ',contents)) |
93 |
|
unless (funcall (compile nil `(lambda () ,form2))) |
94 |
|
collect i)) |
95 |
|
nil) |
96 |
|
|
97 |
|
(deftest dynamic-extent.13 |
98 |
|
(let ((s (make-string 10 :initial-element #\a))) |
99 |
|
(declare (dynamic-extent s) (optimize speed (safety 0))) |
100 |
|
(notnot (every #'(lambda (c) (eql c #\a)) s))) |
101 |
|
t) |
102 |
|
|
103 |
|
(deftest dynamic-extent.14 |
104 |
|
(let ((s (make-string 10 :initial-element #\a |
105 |
|
:element-type 'base-char))) |
106 |
|
(declare (dynamic-extent s) (notinline every) (optimize speed (safety 0))) |
107 |
|
(notnot (every #'(lambda (c) (eql c #\a)) s))) |
108 |
|
t) |
109 |
|
|
110 |
|
|
111 |
|
|