Fix a bunch of problems caused by the call-with-values/values change.
authorChris Hanson <org/chris-hanson/cph>
Tue, 9 Jul 2019 02:51:41 +0000 (22:51 -0400)
committerChris Hanson <org/chris-hanson/cph>
Tue, 9 Jul 2019 02:51:41 +0000 (22:51 -0400)
commitd41c8338f7eaaadcdd96b9cf20364bd76a3d7ed9
tree471af9dfaeefe81637c0d0e7f2703c6d380eea1e
parent9b94290f82a99dfdb63ae94defcc8a92f2c0514d
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.
src/Makefile.in
src/runtime/arith.scm
src/runtime/boot.scm
src/runtime/host-adapter.scm
src/sf/usiexp.scm