11 |
|
|
12 |
(deftest dynamic-extent.2 |
(deftest dynamic-extent.2 |
13 |
(let ((x 'a)) |
(let ((x 'a)) |
14 |
(declare (dynamic-extent x)) |
(declare (dynamic-extent x) (optimize speed (safety 0))) |
15 |
x) |
x) |
16 |
a) |
a) |
17 |
|
|
18 |
(deftest dynamic-extent.3 |
(deftest dynamic-extent.3 |
19 |
(let ((x (list 'a 'b 'c))) |
(let ((x (list 'a 'b 'c))) |
20 |
(declare (dynamic-extent x)) |
(declare (dynamic-extent x) (optimize speed (safety 0))) |
21 |
(length x)) |
(length x)) |
22 |
3) |
3) |
23 |
|
|
24 |
(deftest dynamic-extent.4 |
(deftest dynamic-extent.4 |
25 |
(let ((x (vector 'a 'b 'c))) |
(let ((x (vector 'a 'b 'c))) |
26 |
(declare (dynamic-extent x)) |
(declare (dynamic-extent x) (optimize speed (safety 0))) |
27 |
(length x)) |
(length x)) |
28 |
3) |
3) |
29 |
|
|
30 |
(deftest dynamic-extent.5 |
(deftest dynamic-extent.5 |
31 |
(flet ((%f (x) (list 'a x))) |
(flet ((%f (x) (list 'a x))) |
32 |
(declare (dynamic-extent (function %f))) |
(declare (dynamic-extent (function %f)) |
33 |
|
(optimize speed (safety 0))) |
34 |
(mapcar #'%f '(1 2 3))) |
(mapcar #'%f '(1 2 3))) |
35 |
((a 1) (a 2) (a 3))) |
((a 1) (a 2) (a 3))) |
36 |
|
|
37 |
(deftest dynamic-extent.6 |
(deftest dynamic-extent.6 |
38 |
(labels ((%f (x) (list 'a x))) |
(labels ((%f (x) (list 'a x))) |
39 |
(declare (dynamic-extent (function %f))) |
(declare (dynamic-extent (function %f)) |
40 |
|
(optimize speed (safety 0))) |
41 |
(mapcar #'%f '(1 2 3))) |
(mapcar #'%f '(1 2 3))) |
42 |
((a 1) (a 2) (a 3))) |
((a 1) (a 2) (a 3))) |
43 |
|
|
45 |
(labels ((%f (x) (if (consp x) |
(labels ((%f (x) (if (consp x) |
46 |
(cons (%f (car x)) (%f (cdr x))) |
(cons (%f (car x)) (%f (cdr x))) |
47 |
'*))) |
'*))) |
48 |
(declare (dynamic-extent (function %f))) |
(declare (dynamic-extent (function %f)) |
49 |
|
(optimize speed (safety 0))) |
50 |
(mapcar #'%f '((1) 2 (3 4 5)))) |
(mapcar #'%f '((1) 2 (3 4 5)))) |
51 |
((* . *) * (* * * . *))) |
((* . *) * (* * * . *))) |
52 |
|
|
53 |
(deftest dynamic-extent.8 |
(deftest dynamic-extent.8 |
54 |
(let ((x (+ most-positive-fixnum 2))) |
(let ((x (+ most-positive-fixnum 2))) |
55 |
(declare (dynamic-extent x)) |
(declare (dynamic-extent x) |
56 |
|
(optimize speed (safety 0))) |
57 |
(1- x)) |
(1- x)) |
58 |
#.(1+ most-positive-fixnum)) |
#.(1+ most-positive-fixnum)) |
59 |
|
|
60 |
(deftest dynamic-extent.9 |
(deftest dynamic-extent.9 |
61 |
(flet ((f () (list 'a 'b))) |
(flet ((f () (list 'a 'b))) |
62 |
(let ((f (list 'c 'd))) |
(let ((f (list 'c 'd))) |
63 |
(declare (dynamic-extent (function f))) |
(declare (dynamic-extent (function f)) |
64 |
|
(optimize speed (safety 0))) |
65 |
f)) |
f)) |
66 |
(c d)) |
(c d)) |
67 |
|
|
69 |
(let ((x nil)) |
(let ((x nil)) |
70 |
(values |
(values |
71 |
x |
x |
72 |
(locally (declare (dynamic-extent x) (notinline length)) |
(locally (declare (dynamic-extent x) (notinline length) |
73 |
|
(optimize speed (safety 0))) |
74 |
(setq x (list 'a 'b 'c 'd 'e)) |
(setq x (list 'a 'b 'c 'd 'e)) |
75 |
(prog1 (length x) (setq x t))) |
(prog1 (length x) (setq x t))) |
76 |
x)) |
x)) |
79 |
(deftest dynamic-extent.11 |
(deftest dynamic-extent.11 |
80 |
(let* ((x (list 'a 'b)) |
(let* ((x (list 'a 'b)) |
81 |
(y (cons 'c x))) |
(y (cons 'c x))) |
82 |
(declare (dynamic-extent y)) |
(declare (dynamic-extent y) |
83 |
|
(optimize speed (safety 0))) |
84 |
(cdr y)) |
(cdr y)) |
85 |
(a b)) |
(a b)) |
86 |
|
|