X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcold%2Fdefun-load-or-cload-xcompiler.lisp;h=916b0265ff9e6898f4e2148c499794df85b7d5b8;hb=4bc9a2b01540f3a7cbf4499b4689b292fe406139;hp=0f8c8e63ebfec544c09776dafe8b368900e488fb;hpb=e8c27392f426b5ebe180fa07b220a9b650a49061;p=sbcl.git diff --git a/src/cold/defun-load-or-cload-xcompiler.lisp b/src/cold/defun-load-or-cload-xcompiler.lisp index 0f8c8e6..916b026 100644 --- a/src/cold/defun-load-or-cload-xcompiler.lisp +++ b/src/cold/defun-load-or-cload-xcompiler.lisp @@ -13,6 +13,8 @@ ;;; cross-compilation host Common Lisp. (defun load-or-cload-xcompiler (load-or-cload-stem) + (declare (type function load-or-cload-stem)) + ;; The running-in-the-host-Lisp Python cross-compiler defines its ;; own versions of a number of functions which should not overwrite ;; host-Lisp functions. Instead we put them in a special package. @@ -22,10 +24,74 @@ ;; compilation of the target. (let ((package-name "SB-XC")) (make-package package-name :use nil :nicknames nil) - (dolist (name '("ARRAY-RANK-LIMIT" + (dolist (name '(;; the constants (except for T and NIL which have + ;; a specially hacked correspondence between + ;; cross-compilation host Lisp and target Lisp) "ARRAY-DIMENSION-LIMIT" - "ARRAY-TOTAL-SIZE-LIMIT" + "ARRAY-RANK-LIMIT" + "ARRAY-TOTAL-SIZE-LIMIT" + "BOOLE-1" + "BOOLE-2" + "BOOLE-AND" + "BOOLE-ANDC1" + "BOOLE-ANDC2" + "BOOLE-C1" + "BOOLE-C2" + "BOOLE-CLR" + "BOOLE-EQV" + "BOOLE-IOR" + "BOOLE-NAND" + "BOOLE-NOR" + "BOOLE-ORC1" + "BOOLE-ORC2" + "BOOLE-SET" + "BOOLE-XOR" + "CALL-ARGUMENTS-LIMIT" + "CHAR-CODE-LIMIT" + "DOUBLE-FLOAT-EPSILON" + "DOUBLE-FLOAT-NEGATIVE-EPSILON" + "INTERNAL-TIME-UNITS-PER-SECOND" + "LAMBDA-LIST-KEYWORDS" + "LAMBDA-PARAMETERS-LIMIT" + "LEAST-NEGATIVE-DOUBLE-FLOAT" + "LEAST-NEGATIVE-LONG-FLOAT" + "LEAST-NEGATIVE-NORMALIZED-DOUBLE-FLOAT" + "LEAST-NEGATIVE-NORMALIZED-LONG-FLOAT" + "LEAST-NEGATIVE-NORMALIZED-SHORT-FLOAT" + "LEAST-NEGATIVE-NORMALIZED-SINGLE-FLOAT" + "LEAST-NEGATIVE-SHORT-FLOAT" + "LEAST-NEGATIVE-SINGLE-FLOAT" + "LEAST-POSITIVE-DOUBLE-FLOAT" + "LEAST-POSITIVE-LONG-FLOAT" + "LEAST-POSITIVE-NORMALIZED-DOUBLE-FLOAT" + "LEAST-POSITIVE-NORMALIZED-LONG-FLOAT" + "LEAST-POSITIVE-NORMALIZED-SHORT-FLOAT" + "LEAST-POSITIVE-NORMALIZED-SINGLE-FLOAT" + "LEAST-POSITIVE-SHORT-FLOAT" + "LEAST-POSITIVE-SINGLE-FLOAT" + "LONG-FLOAT-EPSILON" + "LONG-FLOAT-NEGATIVE-EPSILON" + "MOST-NEGATIVE-DOUBLE-FLOAT" + "MOST-NEGATIVE-FIXNUM" + "MOST-NEGATIVE-LONG-FLOAT" + "MOST-NEGATIVE-SHORT-FLOAT" + "MOST-NEGATIVE-SINGLE-FLOAT" + "MOST-POSITIVE-DOUBLE-FLOAT" + "MOST-POSITIVE-FIXNUM" + "MOST-POSITIVE-LONG-FLOAT" + "MOST-POSITIVE-SHORT-FLOAT" + "MOST-POSITIVE-SINGLE-FLOAT" + "MULTIPLE-VALUES-LIMIT" + "PI" + "SHORT-FLOAT-EPSILON" + "SHORT-FLOAT-NEGATIVE-EPSILON" + "SINGLE-FLOAT-EPSILON" + "SINGLE-FLOAT-NEGATIVE-EPSILON" + + ;; everything else which needs a separate + ;; existence in xc and target "BUILT-IN-CLASS" + "BYTE" "BYTE-POSITION" "BYTE-SIZE" "CLASS" "CLASS-NAME" "CLASS-OF" "COMPILE-FILE" "COMPILE-FILE-PATHNAME" @@ -39,14 +105,17 @@ "DEFINE-MODIFY-MACRO" "DEFINE-SETF-EXPANDER" "DEFMACRO" "DEFSETF" "DEFSTRUCT" "DEFTYPE" + "DEPOSIT-FIELD" "DPB" "FBOUNDP" "FDEFINITION" "FMAKUNBOUND" "FIND-CLASS" "GET-SETF-EXPANSION" - "LAMBDA-LIST-KEYWORDS" + "LDB" "LDB-TEST" "LISP-IMPLEMENTATION-TYPE" "LISP-IMPLEMENTATION-VERSION" "MACRO-FUNCTION" "MACROEXPAND" "MACROEXPAND-1" "*MACROEXPAND-HOOK*" "MAKE-LOAD-FORM" + "MAKE-LOAD-FORM-SAVING-SLOTS" + "MASK-FIELD" "PACKAGE" "PACKAGEP" "PROCLAIM" "SPECIAL-OPERATOR-P" @@ -54,8 +123,40 @@ "STRUCTURE-CLASS" "SUBTYPEP" "TYPE-OF" "TYPEP" + "UPGRADED-ARRAY-ELEMENT-TYPE" "WITH-COMPILATION-UNIT")) (export (intern name package-name) package-name))) + ;; don't watch: + (dolist (package-name '("SB!ALIEN" + "SB!ALIEN-INTERNALS" + "SB!ASSEM" + "SB!BIGNUM" + "SB!C" + "SB!DEBUG" + "SB!DI" + "SB!DISASSEM" + #!+sb-dyncount "SB!DYNCOUNT" + "SB!FASL" + "SB!IMPL" + "SB!EXT" + "SB!FORMAT" + "SB!GRAY" + "SB!INT" + "SB!KERNEL" + "SB!LOOP" + "SB!PCL" + "SB!PRETTY" + "SB!PROFILE" + "SB!SYS" + "SB!THREAD" + "SB!UNIX" + "SB!VM" + "SB!WALKER")) + (shadowing-import (mapcar (lambda (name) (find-symbol name "SB-XC")) + '("BYTE" "BYTE-POSITION" "BYTE-SIZE" + "DPB" "LDB" "LDB-TEST" + "DEPOSIT-FIELD" "MASK-FIELD")) + package-name)) ;; Build a version of Python to run in the host Common Lisp, to be ;; used only in cross-compilation. @@ -66,7 +167,7 @@ ;; with the ordinary Lisp compiler, and this is intentional, in ;; order to make the compiler aware of the definitions of assembly ;; routines. - (for-stems-and-flags (stem flags) + (do-stems-and-flags (stem flags) (unless (find :not-host flags) (funcall load-or-cload-stem stem