37 |
(defvar *info* (make-info)) |
(defvar *info* (make-info)) |
38 |
|
|
39 |
(defun add-info (to-info from-info) |
(defun add-info (to-info from-info) |
40 |
|
;; Allow nil from-info without error CM 20031030 |
41 |
|
(unless from-info |
42 |
|
(return-from add-info to-info)) |
43 |
(dolist (v (info-changed-vars from-info)) |
(dolist (v (info-changed-vars from-info)) |
44 |
(unless (member v (info-changed-vars to-info)) |
(unless (member v (info-changed-vars to-info)) |
45 |
(push v (info-changed-vars to-info) ))) |
(push v (info-changed-vars to-info)))) |
46 |
(dolist (v (info-referred-vars from-info)) |
(dolist (v (info-referred-vars from-info)) |
47 |
(unless (member v (info-referred-vars to-info)) |
(unless (member v (info-referred-vars to-info)) |
48 |
(push v (info-referred-vars to-info) ))) |
(push v (info-referred-vars to-info)))) |
|
; (setf (info-changed-vars to-info) |
|
|
; (append (info-changed-vars from-info) |
|
|
; (info-changed-vars to-info))) |
|
|
; (setf (info-referred-vars to-info) |
|
|
; (append (info-referred-vars from-info) |
|
|
; (info-referred-vars to-info))) |
|
49 |
(when (info-sp-change from-info) |
(when (info-sp-change from-info) |
50 |
(setf (info-sp-change to-info) t)) |
(setf (info-sp-change to-info) t)) |
51 |
) |
;; Return to-info, CM 20031030 |
52 |
|
to-info) |
53 |
|
|
54 |
(defun args-info-changed-vars (var forms) |
(defun args-info-changed-vars (var forms) |
55 |
(case (var-kind var) |
(case (var-kind var) |