[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Scheme-reports] [r6rs-discuss] Updated list of latest Scheme releases

On 12/14/2012 03:47 PM, John Cowan wrote:
> Per Bothner scripsit:
>> * Generally when R7RS says an expression returns an unspecified value
>> Kawa will return #!void, which is equivalent to zero values.
> Fortunately no-values is treated as a value, so you can do something
> like (set! bar (set! foo 32)) and bar becomes bound.  So I don't
> consider that a violation of R7RS.

Kawa isn't quite consistent here. I think it is plausible
to make (set! bar (set! foo 32)) be a compile-time error (or at
least warning), since it is very likely to a bug, and unlikely
to be actually useful.

>> * Exception handling may be difficult to implement correctly.
>> Especially since we want some sane interoperability with Java
>> exceptions: One would like guard's handler to be called if a JVM
>> exception is thrown.  It would be preferable for native exception
>> handlers to be able to handle raise - though not raise-continuable.
>> We want native finalizers to executed when a raise happens, but not
>> when a raise-continuable returns to the caller.

This is actually the one I'm more concerned about right now, because of
the interaction of continuable and non-continuable exceptions, along with
the intersection of Scheme exceptions and native JVM exceptions.  It
would be easier to map Scheme exceptions on top of native JVM exceptions
if we didn't have to worry about raise-continuable.
	--Per Bothner
per@x   http://per.bothner.com/

Scheme-reports mailing list