On 09/10/2009 04:11 PM, Brian Harvey wrote:
>> So if R7RS
>> specifies a REPL it probably needs to make "the very simple model
>> of interaction" be optional rather than required.
>
> Why should it not be "performance and/or compile-time error reporting"
> that's optional?

Of course they should be optional.

> I think (I could be wrong of course) that this question is at the heart of
> the R6 debate.  Many people found fault with details of the new stuff in
> R6, but those problems didn't give rise to the strong emotional rejection
> that some of us -- I, at least -- experienced.  I wouldn't be upset because
> R6 got the module semantics wrong in some subtle way; I'd just calmly
> expect R7 to fix it.  But to say that an interactive REPL is secondary,
> or optional, or of lesser importance, compared to /anything/, is in my mind
> a total hijacking of Scheme.

Of course a REPL is a very nice and valuable feature.

And of course REPL is compatible with  "performance and/or compile-time
error reporting" - Kawa has a reaonably nice one for ttys plus a new
nice GUI one - see http://per.bothner.com/blog/2007/ReplPane/

I also implemented a REPL for a language/environment where people
aren't used to REPLs: http://per.bothner.com/blog/2009/REPL-for-JavaFX/
(This is brings up some issues of REPLs for staticly-bound languages.)

But there are at least 3 separate issue in the context of R7RS:

(1) Should an implementation be able to (in good faith) call
itself "Scheme" if it doesn't have a REPL (or load or eval)?

I think the answer should be "yes".

(2) Should R7RS specify a REPL and its semantics?

That seems reasonable, but a REPL is (IMO) more part of the
environment/tools, rather than the language, so it might be
more appropriate for a non-normative addendum.

(2) What should be the required semantics of a REPL, to the
extent it is specified by R7RS?  I.e. what is the semantics
of "redefinition" or "forward references" in a REPL?

I think R7RS needs to be pretty vague on this - i.e. leave
a number of things "unspecified".

> This is what the WG1/WG2 split should be about.  Yes, I want WG1 to produce
> a small, beautiful jewel of a standard, but that's not the main thing.  The
> main thing is that I want WG1 to produce a REPL!

Why?  Does your favorite implementation not have a REPL?  Would having
a REPL be specified by WG1 make your programs more portable?  What
difference to your life would it make whether R7RS specifies a REPL?

> I want to be able to work
> in Scheme the way I've always worked in Scheme and have been working in Lisp
> for 40 years or so.  (I wasn't there quite at the beginning.)

Nobody wants to take that away from you.
-- 
        --Per Bothner
[email protected]   http://per.bothner.com/

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to