projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.25.49: x86/x86-64 unithread: use the allocated alien stack
[sbcl.git]
/
src
/
compiler
/
proclaim.lisp
diff --git
a/src/compiler/proclaim.lisp
b/src/compiler/proclaim.lisp
index
93de835
..
7ebf666
100644
(file)
--- a/
src/compiler/proclaim.lisp
+++ b/
src/compiler/proclaim.lisp
@@
-45,11
+45,13
@@
(destructuring-bind (quality raw-value) q-and-v-or-just-q
(values quality raw-value)))
(cond ((not (policy-quality-name-p quality))
(destructuring-bind (quality raw-value) q-and-v-or-just-q
(values quality raw-value)))
(cond ((not (policy-quality-name-p quality))
- (compiler-warn "ignoring unknown optimization quality ~
- ~S in ~S"
- quality spec))
+ (let ((deprecation-warning (policy-quality-deprecation-warning quality spec)))
+ (if deprecation-warning
+ (compiler-warn deprecation-warning)
+ (compiler-warn "~@<Ignoring unknown optimization quality ~S in:~_ ~S~:>"
+ quality spec))))
((not (typep raw-value 'policy-quality))
((not (typep raw-value 'policy-quality))
- (compiler-warn "ignoring bad optimization value ~S in ~S"
+ (compiler-warn "~@<Ignoring bad optimization value ~S in:~_ ~S~:>"
raw-value spec))
(t
;; we can't do this yet, because CLOS macros expand
raw-value spec))
(t
;; we can't do this yet, because CLOS macros expand
@@
-65,7
+67,7
@@
(unless (assq (car old-entry) result)
(push old-entry result)))
;; Voila.
(unless (assq (car old-entry) result)
(push old-entry result)))
;; Voila.
- result))
+ (sort-policy result)))
(declaim (ftype (function (list list) list)
process-handle-conditions-decl))
(declaim (ftype (function (list list) list)
process-handle-conditions-decl))
@@
-187,6
+189,8
@@
(when (eq (info :variable :where-from name) :declared)
(let ((old-type (info :variable :type name)))
(when (type/= type old-type)
(when (eq (info :variable :where-from name) :declared)
(let ((old-type (info :variable :type name)))
(when (type/= type old-type)
+ ;; FIXME: changing to TYPE-PROCLAMATION-MISMATCH
+ ;; broke late-proclaim.lisp.
(style-warn "The new TYPE proclamation~% ~S~@
for ~S does not match the old TYPE~@
proclamation ~S"
(style-warn "The new TYPE proclamation~% ~S~@
for ~S does not match the old TYPE~@
proclamation ~S"
@@
-205,6
+209,8
@@
(when (eq (info :function :where-from name) :declared)
(let ((old-type (info :function :type name)))
(when (type/= ctype old-type)
(when (eq (info :function :where-from name) :declared)
(let ((old-type (info :function :type name)))
(when (type/= ctype old-type)
+ ;; FIXME: changing to FTYPE-PROCLAMATION-MISMATCH
+ ;; broke late-proclaim.lisp.
(style-warn
"new FTYPE proclamation~@
~S~@
(style-warn
"new FTYPE proclamation~@
~S~@
@@
-248,7
+254,8
@@
(process-package-lock-decl form *disabled-package-locks*)))
((inline notinline maybe-inline)
(dolist (name args)
(process-package-lock-decl form *disabled-package-locks*)))
((inline notinline maybe-inline)
(dolist (name args)
- (proclaim-as-fun-name name) ; since implicitly it is a function
+ ; since implicitly it is a function, also scrubs *FREE-FUNS*
+ (proclaim-as-fun-name name)
(setf (info :function :inlinep name)
(ecase kind
(inline :inline)
(setf (info :function :inlinep name)
(ecase kind
(inline :inline)