Fix a bunch of problems caused by the call-with-values/values change.
authorChris Hanson <org/chris-hanson/cph>
Wed, 17 Jul 2019 23:28:36 +0000 (19:28 -0400)
committerChris Hanson <org/chris-hanson/cph>
Thu, 18 Jul 2019 00:50:47 +0000 (20:50 -0400)
commit8781bfc20436b980b989c7abb4f73fa8216d8504
treeb10d95ebbe3bb8ce05291672e761c27f5f1b82c3
parent85bec2ad1a9c719925f406729c305d169cc3e4c0
Fix a bunch of problems caused by the call-with-values/values change.

First, SF was open-coding these, so that the compiled code wasn't using the new
convention.  This caused problems at the boundary between interpreted code and
compiled code, and of course the compiled code was now incorrect.  This is fixed
but requires stuff in host-adapter to make it work.

Second, eliminating the open-coding exposed a couple of places that would no
longer initialize correctly during the cold load because they were initialized
prior to the loading of the multiple-values procedures.  This is fixed by
rewriting those to not use multiple values and have been marked with comments.

Finally, because the host-adapter file is now changing SF, SF must be loaded
prior to loading the host adapter.  There was one case in the make file that
needed to be tweaked to make this guarantee.

Manual cherry-pick of d41c8338f7eaaadcdd96b9cf20364bd76a3d7ed9.
src/Makefile.in
src/runtime/arith.scm
src/runtime/boot.scm
src/runtime/host-adapter.scm
src/runtime/random.scm
src/sf/usiexp.scm