Use boot inits in char.scm.
authorChris Hanson <org/chris-hanson/cph>
Mon, 30 Jan 2017 02:06:02 +0000 (18:06 -0800)
committerChris Hanson <org/chris-hanson/cph>
Mon, 30 Jan 2017 02:06:02 +0000 (18:06 -0800)
src/runtime/char.scm
src/runtime/runtime.pkg

index 499eafb087cdd70de2a76763bc12c438b9ef3538..7a4d515304366bebd2c3c99450240ce71eb893f7 100644 (file)
@@ -144,35 +144,29 @@ USA.
 
 (define downcase-table)
 (define upcase-table)
-
-(define (initialize-case-conversions!)
-  (set! downcase-table (make-bytevector #x100))
-  (set! upcase-table (make-bytevector #x100))
-  (do ((i 0 (fix:+ i 1)))
-      ((fix:= i #x100))
-    (bytevector-u8-set! downcase-table i i)
-    (bytevector-u8-set! upcase-table i i))
-  (let ((case-range
-        (lambda (uc-low uc-high lc-low)
-          (do ((i uc-low (fix:+ i 1))
-               (j lc-low (fix:+ j 1)))
-              ((fix:> i uc-high))
-            (bytevector-u8-set! downcase-table i j)
-            (bytevector-u8-set! upcase-table j i)))))
-    (case-range 65 90 97)
-    (case-range 192 214 224)
-    (case-range 216 222 248)))
+(add-boot-init!
+ (lambda ()
+   (set! downcase-table (make-bytevector #x100))
+   (set! upcase-table (make-bytevector #x100))
+   (do ((i 0 (fix:+ i 1)))
+       ((fix:= i #x100))
+     (bytevector-u8-set! downcase-table i i)
+     (bytevector-u8-set! upcase-table i i))
+   (let ((case-range
+         (lambda (uc-low uc-high lc-low)
+           (do ((i uc-low (fix:+ i 1))
+                (j lc-low (fix:+ j 1)))
+               ((fix:> i uc-high))
+             (bytevector-u8-set! downcase-table i j)
+             (bytevector-u8-set! upcase-table j i)))))
+     (case-range 65 90 97)
+     (case-range 192 214 224)
+     (case-range 216 222 248))))
 \f
-(define 0-code)
-(define upper-a-code)
-(define lower-a-code)
-
-(define (initialize-package!)
-  (set! 0-code (char->integer #\0))
-  ;; Next two codes are offset by 10 to speed up CHAR->DIGIT.
-  (set! upper-a-code (fix:- (char->integer #\A) 10))
-  (set! lower-a-code (fix:- (char->integer #\a) 10))
-  (initialize-case-conversions!))
+(define-deferred 0-code (char->integer #\0))
+;; Next two codes are offset by 10 to speed up CHAR->DIGIT.
+(define-deferred upper-a-code (fix:- (char->integer #\A) 10))
+(define-deferred lower-a-code (fix:- (char->integer #\a) 10))
 
 (define (radix? object)
   (and (index-fixnum? object)
index 80032d950a4577f0178af8358d114a1abdf5d32d..9a2e6567bae254175faed17c582c7a57aae18138 100644 (file)
@@ -1394,8 +1394,7 @@ USA.
          unicode-char?
          unicode-code-point?
          unicode-scalar-value->char
-         unicode-scalar-value?)
-  (initialization (initialize-package!)))
+         unicode-scalar-value?))
 
 (define-package (runtime character-set)
   (files "chrset")