84 |
(c1constant-value (cons 'si:|#,| arg) t)) |
(c1constant-value (cons 'si:|#,| arg) t)) |
85 |
|
|
86 |
(defun wrap-literals (form) |
(defun wrap-literals (form) |
87 |
(cond ((consp form) |
(cond ((and (consp form) (eq (car form) 'quote)) |
88 |
(cond ((and (member (car form) '(quote function)) |
(let ((x (cadr form))) |
89 |
(or (not (symbolp (cadr form))) |
(if (and (symbolp x) |
90 |
(not (eq :external (cadr (multiple-value-list (find-symbol (symbol-name (cadr form)) 'lisp))))))) |
(eq :external (cadr (multiple-value-list (find-symbol (symbol-name x) 'lisp))))) |
91 |
`(load-time-value (si::nani ,(si::address (cadr form))))) |
form |
92 |
((cons (wrap-literals (car form)) (wrap-literals (cdr form)))))) |
`(load-time-value (si::nani ,(si::address x)))))) |
93 |
((and (not (symbolp form)) (eql-is-eq form)) |
((consp form) |
94 |
`(load-time-value (si::nani ,(si::address form)))) |
(cons (wrap-literals (car form)) (wrap-literals (cdr form)))) |
95 |
(form))) |
((or (symbolp form) (numberp form) (characterp form)) |
96 |
|
form) |
97 |
|
(`(load-time-value (si::nani ,(si::address form)))))) |
98 |
|
|
99 |
|
|
100 |
(defun c1load-time-value (arg) |
(defun c1load-time-value (arg) |
101 |
(c1constant-value |
(c1constant-value |