From: Nikodemus Siivola Date: Sun, 27 May 2012 09:48:43 +0000 (+0300) Subject: move vm-array.lisp earlier in the build, remove %%SAETP-INFO%% X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=b31eab5875e8058a2fdfcb879e23c2724d25a278;p=sbcl.git move vm-array.lisp earlier in the build, remove %%SAETP-INFO%% This way DEFINE-ARRAY-DISPATCH can use *S-A-E-T-P* directly. --- diff --git a/build-order.lisp-expr b/build-order.lisp-expr index c31d518..af5c472 100644 --- a/build-order.lisp-expr +++ b/build-order.lisp-expr @@ -204,6 +204,7 @@ ;; 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 @@ -359,7 +360,6 @@ ;; 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 diff --git a/src/code/array.lisp b/src/code/array.lisp index efd993e..55c172d 100644 --- a/src/code/array.lisp +++ b/src/code/array.lisp @@ -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