Allow ADD-BOOT-INIT! to work after the cold load, by immediately
authorChris Hanson <org/chris-hanson/cph>
Wed, 17 Sep 2008 03:36:54 +0000 (03:36 +0000)
committerChris Hanson <org/chris-hanson/cph>
Wed, 17 Sep 2008 03:36:54 +0000 (03:36 +0000)
executing the argument.

v7/src/runtime/boot.scm

index d9b82d45648fb91177f35885d0f73d0912015625..1c73d3ffc659706ac0de9544ad207cdf21f5ff0c 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: boot.scm,v 14.31 2008/08/31 07:27:00 cph Exp $
+$Id: boot.scm,v 14.32 2008/09/17 03:36:54 cph Exp $
 
 Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
     1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
@@ -149,12 +149,14 @@ USA.
   unspecific)
 
 (define (add-boot-init! thunk)
-  (set! boot-inits (cons thunk boot-inits))
+  (if boot-inits
+      (set! boot-inits (cons thunk boot-inits))
+      (thunk))
   unspecific)
 
 (define (save-boot-inits! environment)
   (let ((inits (reverse! boot-inits)))
-    (set! boot-inits)
+    (set! boot-inits #f)
     ((ucode-primitive local-assignment) environment saved-boot-inits inits)))
 
 (define (run-boot-inits! environment)
@@ -164,5 +166,5 @@ USA.
     (for-each (lambda (init) (init))
              inits)))
 
-(define boot-inits)
+(define boot-inits #f)
 (define saved-boot-inits '|#[saved-boot-inits]|)
\ No newline at end of file