From: Matt Birkholz <matt@birkholz.chandler.az.us>
Date: Thu, 8 Mar 2012 19:00:06 +0000 (-0700)
Subject: Do NOT preserve flo:environment across disk-save/restore.
X-Git-Tag: mit-scheme-pucked-9.2.12~594
X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=b5119efd8f787fa57b5759d3e129c80f7d622705;p=mit-scheme.git

Do NOT preserve flo:environment across disk-save/restore.

This just makes it harder to use bands on systems with different
fenv_t's.  (Without this "help", a band with no threads MIGHT work...)
---

diff --git a/src/runtime/savres.scm b/src/runtime/savres.scm
index 0310f95fc..de8f3fa7c 100644
--- a/src/runtime/savres.scm
+++ b/src/runtime/savres.scm
@@ -52,30 +52,28 @@ USA.
       (lambda ()
 	(call-with-current-continuation
 	 (lambda (continuation)
-	   (let ((float-env (flo:environment)))
-	     ;; GC cannot be allowed before the fixed-objects-vector
-	     ;; is reset after restoring.
-	     (with-absolutely-no-interrupts
-	       (lambda ()
-		 (let ((fixed-objects (get-fixed-objects-vector)))
-		   ((ucode-primitive call-with-current-continuation)
-		    (lambda (restart)
-		      (with-interrupt-mask interrupt-mask/gc-ok
-			(lambda (interrupt-mask)
-			  interrupt-mask
-			  (gc-flip)
-			  (do ()
-			      (((ucode-primitive dump-band) restart filename))
-			    (with-simple-restart 'RETRY "Try again."
-			      (lambda ()
-				(error "Disk save failed:" filename))))
-			  (continuation
-			   (lambda ()
-			     (set! time-world-saved time)
-			     (if (string? id) unspecific #f)))))))
-		   ((ucode-primitive set-fixed-objects-vector!) fixed-objects))))
-	     (read-microcode-tables!)
-	     (flo:set-environment! float-env))
+	   ;; GC cannot be allowed before the fixed-objects-vector
+	   ;; is reset after restoring.
+	   (with-absolutely-no-interrupts
+	     (lambda ()
+	       (let ((fixed-objects (get-fixed-objects-vector)))
+		 ((ucode-primitive call-with-current-continuation)
+		  (lambda (restart)
+		    (with-interrupt-mask interrupt-mask/gc-ok
+		      (lambda (interrupt-mask)
+			interrupt-mask
+			(gc-flip)
+			(do ()
+			    (((ucode-primitive dump-band) restart filename))
+			  (with-simple-restart 'RETRY "Try again."
+			    (lambda ()
+			      (error "Disk save failed:" filename))))
+			(continuation
+			 (lambda ()
+			   (set! time-world-saved time)
+			   (if (string? id) unspecific #f)))))))
+		 ((ucode-primitive set-fixed-objects-vector!) fixed-objects))))
+	   (read-microcode-tables!)
 	   (lambda ()
 	     (set! time-world-saved time)
 	     (fluid-let ((*within-restore-window?* #t))