projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.8.8: restore reuse-sap value after incomplete writes in FROB-OUTPUT-LATER
[sbcl.git]
/
src
/
compiler
/
globaldb.lisp
diff --git
a/src/compiler/globaldb.lisp
b/src/compiler/globaldb.lisp
index
4aefaff
..
bc68512
100644
(file)
--- a/
src/compiler/globaldb.lisp
+++ b/
src/compiler/globaldb.lisp
@@
-789,13
+789,17
@@
new-value)
#!-sb-fluid
(progn
new-value)
#!-sb-fluid
(progn
+ ;; Not all xc hosts are happy about SETF compiler macros: CMUCL 19
+ ;; does not accept them at all, and older SBCLs give a full warning.
+ ;; So the easy thing is to hide this optimization from all xc hosts.
#-sb-xc-host
(define-compiler-macro (setf info) (&whole whole
new-value
class
type
name
#-sb-xc-host
(define-compiler-macro (setf info) (&whole whole
new-value
class
type
name
- &optional (env-list nil env-list-p))
+ &optional (env-list nil
+ env-list-p))
;; Constant CLASS and TYPE is an overwhelmingly common special case,
;; and we can resolve it much more efficiently than the general
;; case.
;; Constant CLASS and TYPE is an overwhelmingly common special case,
;; and we can resolve it much more efficiently than the general
;; case.
@@
-932,7
+936,7
@@
:default
#+sb-xc-host (specifier-type 'function)
#-sb-xc-host (if (fboundp name)
:default
#+sb-xc-host (specifier-type 'function)
#-sb-xc-host (if (fboundp name)
- (extract-fun-type (fdefinition name))
+ (specifier-type (sb!impl::%fun-type (fdefinition name)))
(specifier-type 'function)))
;;; the ASSUMED-TYPE for this function, if we have to infer the type
(specifier-type 'function)))
;;; the ASSUMED-TYPE for this function, if we have to infer the type
@@
-1046,6
+1050,12
@@
:type :definition
:type-spec (or fdefn null)
:default nil)
:type :definition
:type-spec (or fdefn null)
:default nil)
+
+(define-info-type
+ :class :function
+ :type :structure-accessor
+ :type-spec (or defstruct-description null)
+ :default nil)
\f
;;;; definitions for other miscellaneous information
\f
;;;; definitions for other miscellaneous information