J. Michael Ashley and R. Kent Dybvig, An efficient implementation of multiple return values in Scheme, 1994 ACM Conference on LISP and Functional Programming, pp. 140-149, June 1994 (bibtex).
This paper describes an implementation of the new Scheme multiple values interface. The implementation handles multiple values efficiently, with no run-time overhead for normal calls and returns. Error checks are performed where necessary to insure that the expected number of values is returned in all situations. The implementation fits cleanly with our direct-style compiler and stack-based representation of control, but is equally well suited to continuation-passing style compilers and to heap-based run-time architectures.