Skip to content

ExceptionsConversion

Felix S. Klock II edited this page Jul 28, 2013 · 1 revision

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.

Clone this wiki locally