-
Notifications
You must be signed in to change notification settings - Fork 32
ExceptionsConversion
The R6RS exception system has been implemented, but very little of the Larceny runtime uses it directly. In R6RS modes, Larceny-style exceptions are translated automatically into R6RS-style conditions and exceptions.
This translation process is not fully R6RS-conforming, since Larceny's native exception system does not always distinguish between situations that, according to the R6RS, must generate different kinds of conditions. This deviation from R6RS-conformance does not affect the execution of correct programs, since they do not raise the problematic exceptions.
As of v0.963, several exceptions became R6RS-conforming. Although integration of Larceny's traditional exception system with the R6RS exception system remains a kluge, it achieves a remarkable degree of interoperability between R5RS and ERR5RS/R6RS code. Larceny's raise-r6rs-exception
procedure (defined in Lib/Common/error.sch
) is pretty convenient.