move vm-array.lisp earlier in the build, remove %%SAETP-INFO%%
authorNikodemus Siivola <nikodemus@random-state.net>
Sun, 27 May 2012 09:48:43 +0000 (12:48 +0300)
committerNikodemus Siivola <nikodemus@random-state.net>
Sun, 27 May 2012 09:48:43 +0000 (12:48 +0300)
  This way DEFINE-ARRAY-DISPATCH can use *S-A-E-T-P* directly.

build-order.lisp-expr
src/code/array.lisp

index c31d518..af5c472 100644 (file)
  ;; This needs DEFINE-ALIEN-ROUTINE from target-alieneval.
  ("src/code/misc-aliens" :not-host)
 
+ ("src/compiler/generic/vm-array")
  ("src/code/array"         :not-host)
  ("src/code/early-float"   :not-host)
  ("src/code/target-sxhash" :not-host) ; needs most-fooative-foo-float constants
  ;; in class.lisp.
  ("src/code/condition" :not-host)
 
- ("src/compiler/generic/vm-array")
  ("src/compiler/generic/primtype")
 
  ;; the implementation of the compiler-affecting part of forms like
index efd993e..55c172d 100644 (file)
@@ -1346,20 +1346,6 @@ function to be removed without further warning."
 
 ;;;; array type dispatching
 
-;;; Store some saetp fields for DEFINE-ARRAY-DISPATCH since
-;;; sb!vm:*specialized-array-element-type-properties* is not always
-;;; available.
-(macrolet
-    ((define-saetp-info ()
-       `(eval-when (:compile-toplevel :load-toplevel :execute)
-          (defglobal %%saetp-info%%
-              ',(loop for saetp
-                      across sb!vm:*specialized-array-element-type-properties*
-                      collect `(,(sb!vm:saetp-typecode saetp)
-                                ,(sb!vm:saetp-specifier saetp)
-                                ,(sb!vm:saetp-primitive-type-name saetp)))))))
-  (define-saetp-info))
-
 ;;; Given DISPATCH-FOO as the DISPATCH-NAME argument (unevaluated),
 ;;; defines the functions
 ;;;
@@ -1391,7 +1377,10 @@ function to be removed without further warning."
                   :expected-type '(simple-array * (*)))))
        (defglobal ,table-name (make-array ,(1+ sb!vm:widetag-mask)
                                           :initial-element #',error-name))
-       ,@(loop for (typecode specifier primitive-type-name) in %%saetp-info%%
+       ,@(loop for info across sb!vm:*specialized-array-element-type-properties*
+               for typecode = (sb!vm:saetp-typecode info)
+               for specifier = (sb!vm:saetp-specifier info)
+               for primitive-type-name = (sb!vm:saetp-primitive-type-name info)
                collect (let ((fun-name (symbolicate (string dispatch-name)
                                                     "/" primitive-type-name)))
                          `(progn