0.pre7.70:
authorWilliam Harold Newman <william.newman@airmail.net>
Wed, 17 Oct 2001 13:39:26 +0000 (13:39 +0000)
committerWilliam Harold Newman <william.newman@airmail.net>
Wed, 17 Oct 2001 13:39:26 +0000 (13:39 +0000)
The definition of functions using INFO :FOO :BAR can't safely
be mixed among the definitions of info classes (like
:FOO) and types (like :BAR). This is a misfeature, but
even though it's just bitten me I've got many more
urgent things to do than fixing it, so I just moved
the definition of DEFUN FUN-NAME-INLINE-EXPANSION from
globaldb.lisp into info-functions.lisp.

src/compiler/globaldb.lisp
src/compiler/info-functions.lisp
version.lisp-expr

index 7c137a3..175cf6a 100644 (file)
             (get-info-value ,name
                             ,(type-info-number info)
                             ,@(when env-list-p `(,env-list))) 
-          (values (the ,(type-info-type info) ,value)
-                  ,foundp)))
+          (declare (type ,(type-info-type info) ,value))
+          (values ,value ,foundp)))
       whole))
 (defun (setf info) (new-value
                    class
   :type :inline-expansion-designator
   :type-spec (or list function)
   :default nil)
-;;; Decode any raw (INFO :FUNCTION :INLINE-EXPANSION-DESIGNATOR FUN-NAME)
-;;; value into a lambda expression, or return NIL if there is none.
-(declaim (ftype (function ((or symbol cons)) list) fun-name-inline-expansion))
-(defun fun-name-inline-expansion (fun-name)
-  (let ((info (info :function :inline-expansion-designator fun-name)))
-    (if (functionp info)
-       (funcall info)
-       info)))
 
 ;;; This specifies whether this function may be expanded inline. If
 ;;; null, we don't care.
index b74f637..cd5327f 100644 (file)
@@ -17,6 +17,8 @@
 
 (in-package "SB!C")
 \f
+;;;; internal utilities defined in terms of INFO
+
 ;;; Check that NAME is a valid function name, returning the name if
 ;;; OK, and signalling an error if not. In addition to checking for
 ;;; basic well-formedness, we also check that symbol names are not NIL
     (setf (info :function :where-from name) :defined)
     (if (info :function :assumed-type name)
        (setf (info :function :assumed-type name) nil))))
+
+;;; Decode any raw (INFO :FUNCTION :INLINE-EXPANSION-DESIGNATOR FUN-NAME)
+;;; value into a lambda expression, or return NIL if there is none.
+(declaim (ftype (function ((or symbol cons)) list) fun-name-inline-expansion))
+(defun fun-name-inline-expansion (fun-name)
+  (let ((info (info :function :inline-expansion-designator fun-name)))
+    (if (functionp info)
+       (funcall info)
+       info)))
 \f
 ;;;; ANSI Common Lisp functions which are defined in terms of the info
 ;;;; database
index 1de7049..ed60d1a 100644 (file)
@@ -18,4 +18,4 @@
 ;;; for internal versions, especially for internal versions off the
 ;;; main CVS branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
 
-"0.pre7.69"
+"0.pre7.70"