Do NOT preserve flo:environment across disk-save/restore.
authorMatt Birkholz <matt@birkholz.chandler.az.us>
Thu, 8 Mar 2012 19:00:06 +0000 (12:00 -0700)
committerMatt Birkholz <matt@birkholz.chandler.az.us>
Thu, 8 Mar 2012 19:00:06 +0000 (12:00 -0700)
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...)

src/runtime/savres.scm

index 0310f95fcb3665b0cf065d455cf73f202c893b6e..de8f3fa7cc0db95b2c25e83fbdf71d5081f493ce 100644 (file)
@@ -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))