Fix two bugs in floating-point environment.
authorTaylor R Campbell <campbell@mumble.net>
Sat, 24 Aug 2019 04:26:31 +0000 (04:26 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Sat, 24 Aug 2019 04:30:21 +0000 (04:30 +0000)
commit29bcc8f3f6ffc1abdd13d775402d201b1c78c8fb
treeccd92a0d81855df2711ccc0ac2d8a24cb9275e12
parent08298703a8a611a52a3d345dfe6978876b36d773
Fix two bugs in floating-point environment.

1. Don't cache it in the current thread.

   We can't mark everywhere the cache needs to be invalidated --
   i.e., every floating-point instruction -- and it's not clear
   there's any performance benefit to the cache anyway.  The main
   performance cost, as I recall, was swapping environments on every
   thread switch, which we avoid for all threads in the default
   environment.

2. The default environment initialization left the machine in a wacky
   state after reset-package!, which caused many spurious exception
   traps once I undid the cache.  There's no need to preserve the
   machine environment here; we are setting up the default
   environment, after all, so the environment we're in when done
   should be the default one.
src/runtime/floenv.scm
src/runtime/thread.scm
tests/runtime/test-floenv.scm