Compatible support for multiple values in SRFI-45 Mark H Weaver 23 Mar 2013 08:56 UTC
Here's another approach to supporting multiple values in SRFI-45, which
will most likely be deployed in Guile 2.0.8.  In this approach, 'eager'
remains a procedure, but one that accepts any number of arguments.  It
is therefore used in the same way as 'values'.

This approach has the benefit of full compatibility with existing code
that uses SRFI-45.  Furthermore, the attached patch maintains _binary_
compatibility [1] with code that was compiled for the unmodified SRFI-45
reference implementation (a requirement for inclusion in the Guile 2.0
stable series): although the 'delay' macro has changed, code that was
expanded using the old 'delay' macro will continue to work properly with
the new procedures.

Comments and suggestions welcome.


[1] Assuming that neither 'eager' nor 'force' are inlined in the
    compiled code.