0.9.16.25: build fix for CMUCL and older SBCLs
authorNikodemus Siivola <nikodemus@random-state.net>
Tue, 12 Sep 2006 09:08:49 +0000 (09:08 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Tue, 12 Sep 2006 09:08:49 +0000 (09:08 +0000)
 * Not all lisps are happy about SETF-compiler macros: CMUCL 19 does not accept
   them at all, and older SBCL's give a full warning.

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

index 45e10d8..4aefaff 100644 (file)
                         new-value)))
   new-value)
 #!-sb-fluid
-(define-compiler-macro (setf info) (&whole whole
-                                      new-value
-                                      class
-                                      type
-                                      name
-                                      &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.
-  (if (and (keywordp class) (keywordp type))
-      (let* ((info (type-info-or-lose class type))
-             (tin (type-info-number info)))
-        (if env-list-p
-            `(set-info-value ,name
-                             ,tin
-                             ,new-value
-                             (get-write-info-env ,env-list))
-            `(set-info-value ,name
-                             ,tin
-                             ,new-value))))
-  whole)
+(progn
+  #-sb-xc-host
+  (define-compiler-macro (setf info) (&whole whole
+                                             new-value
+                                             class
+                                             type
+                                             name
+                                             &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.
+    (if (and (keywordp class) (keywordp type))
+        (let* ((info (type-info-or-lose class type))
+               (tin (type-info-number info)))
+          (if env-list-p
+              `(set-info-value ,name
+                               ,tin
+                               ,new-value
+                               (get-write-info-env ,env-list))
+              `(set-info-value ,name
+                               ,tin
+                               ,new-value))))
+    whole))
 
 ;;; the maximum density of the hashtable in a volatile env (in
 ;;; names/bucket)
index 93cd629..a966c58 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.9.16.24"
+"0.9.16.25"