Change HOST-BIG-ENDIAN? to compute its value during cold load, so that
authorChris Hanson <org/chris-hanson/cph>
Mon, 14 Apr 2003 19:56:21 +0000 (19:56 +0000)
committerChris Hanson <org/chris-hanson/cph>
Mon, 14 Apr 2003 19:56:21 +0000 (19:56 +0000)
it is as fast as possible.

v7/src/runtime/global.scm
v7/src/runtime/make.scm
v7/src/runtime/runtime.pkg

index 0e54bedaa66ad1fa730215411b412a514cf6c15c..cf278527ddd7408299cab845cf1d5bbe5a48360a 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: global.scm,v 14.60 2003/04/14 18:19:23 cph Exp $
+$Id: global.scm,v 14.61 2003/04/14 19:56:15 cph Exp $
 
 Copyright 1988,1989,1991,1992,1993,1995 Massachusetts Institute of Technology
 Copyright 1998,2000,2001,2003 Massachusetts Institute of Technology
@@ -72,17 +72,25 @@ USA.
   system-vector-set!)
 
 (define (host-big-endian?)
+  host-big-endian?-saved)
+
+(define host-big-endian?-saved)
+
+(define (initialize-package!)
   ;; Assumptions:
   ;; * Word length is 32 or 64 bits.
   ;; * Type codes are at most 8 bits.
   ;; * Zero is a non-pointer type code.
-  (case (object-datum
-        (vector-ref (object-new-type (ucode-type vector)
-                                     "\000\001\002\000\000\003\004\000")
-                    1))
-    ((#x00010200 #x0001020000030400) #t)
-    ((#x00020100 #x0004030000020100) #f)
-    (else (error "Unable to determine endianness of host."))))
+  (set! host-big-endian?-saved
+       (case (object-datum
+              (vector-ref
+               (object-new-type (ucode-type vector)
+                                "\000\001\002\000\000\003\004\000")
+               1))
+         ((#x00010200 #x0001020000030400) #t)
+         ((#x00020100 #x0004030000020100) #f)
+         (else (error "Unable to determine endianness of host."))))
+  unspecific)
 \f
 ;;;; Potpourri
 
index 43f2a29edf987068a8583a7d374523d8bfb8e9b7..47a44b4398eb38e92b05578b29fbe9a5180d5bac 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: make.scm,v 14.90 2003/02/28 04:40:06 cph Exp $
+$Id: make.scm,v 14.91 2003/04/14 19:56:18 cph Exp $
 
 Copyright (c) 1988,1989,1990,1991,1992 Massachusetts Institute of Technology
 Copyright (c) 1993,1994,1995,1996,1997 Massachusetts Institute of Technology
@@ -437,6 +437,7 @@ USA.
    ;; Basic data structures
    (RUNTIME NUMBER)
    ((RUNTIME NUMBER) INITIALIZE-DRAGON4! #t)
+   (RUNTIME MISCELLANEOUS-GLOBAL)
    (RUNTIME CHARACTER)
    (RUNTIME CHARACTER-SET)
    (RUNTIME GENSYM)
index 3fdf5238e7df2fe7c56f110a06a4135d30224f44..2f00fb1c87ce3df9a55d4b568dde4782c4eb7daf 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: runtime.pkg,v 14.443 2003/04/14 19:40:36 cph Exp $
+$Id: runtime.pkg,v 14.444 2003/04/14 19:56:21 cph Exp $
 
 Copyright 1988,1989,1990,1991,1992,1993 Massachusetts Institute of Technology
 Copyright 1994,1995,1996,1997,1998,1999 Massachusetts Institute of Technology
@@ -355,7 +355,8 @@ USA.
          with-history-disabled
          with-interrupt-mask
          with-values
-         write-to-string))
+         write-to-string)
+  (initialization (initialize-package!)))
 
 (define-package (runtime alternative-lambda)
   (files "lambdx")