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

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

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.

> * Full continuations are unlikely to be implemented soon.

Sure, that's a basic Kawa restriction.

> * 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.

> * Currently dividing an exact integer by exact zero returns an exact
> infinity.  This may or may not be a good idea - if so it almost
> certainly needs some tweaking.

In any case it's not a conformance issue, since dividing by exact zero
does not require an error to be signaled.

> * Display of an infinite list does not terminate.  This is similar to
> how display in Kawa does auto-forcing, while write doesn't.  I may
> change this, but it depends on UI experimentation that won't happen
> soon.  (One idea is if the output fill more than a screenful, you'll
> be given something like a "more" button to request further output or
> terminate the computation.)

That's the sort of non-conformance I would encourage experimentation
with (of course it should be documented).

> * equal? of cyclic lists does not terminate.  I will probably fix this
> before declaring R7RS support.

Good.  This is a substantive break with the past.

> * There are likely to be differences in handling of top-level
> variables, REPLs, and libraries, but I haven't dug deeply into this
> area yet.  Likewise the environments passed to eval may not be quite
> as specified, at least not in the short term.

I look forward to what you find out.  The JVM is a very restrictive
platform if you care about efficiency.

It was dreary and wearisome.  Cold clammy winter still held way in this
forsaken country.  The only green was the scum of livid weed on the dark
greasy surfaces of the sullen waters.  Dead grasses and rotting reeds loomed
up in the mists like ragged shadows of long-forgotten summers.
        --"The Passage of the Marshes"          http://www.ccil.org/~cowan

Scheme-reports mailing list