On Sun, Sep 13, 2009 at 8:22 AM, Andre van Tonder <[email protected]> wrote:
> On Sat, 12 Sep 2009, Brian Harvey wrote:
>
>>>  2) DrScheme:  reload the world every time you press run
>>
>> This idea is BROKEN.  R7RS should absolutely make it clear that this is
>> not
>> the way a Scheme REPL behaves.  Maybe a Pascal REPL, if there were one.

It isn't `broken', it is by design.  Remember that Dr Scheme is an environment
that is tailored for students.  The initial language level (it
supports sublevels of
Scheme) doesn't even have first-class procedures.

The PLT people discovered that students get confused by the state that is kept
in the REPL.  For instance, when you `rename' a procedure (by introducing a
new binding with the new name), the existing references still point at
the old one.
This is unexpected.  By restarting the REPL between each edit session, they
avoid this problem.

If you don't care for this kind of interaction, though, you can just
use the underlying
MzScheme REPL that has the traditional behavior.  (Or you can continue to use
Dr Scheme and ignore all the dire warnings about how the REPL is out of sync
with the source code file.)

> No, DrScheme has a conventional REPL, in which you can enter and
> evaluate forms one by one as in other REPLs.

Yes, but....  the mode of operation that the user is guided towards is
to interleave `edit' and `repl' sessions and to reset the state of the system
between each repl session.  You *can* stay in a single REPL session,
but the system keeps encouraging you to restart it.

> But every Scheme system must have a way to relaunch the REPL,
> even if it is only by manually stopping and restarting the Scheme process,

Not true!  The Lisp machine, for instance, had no way to relaunch the
REPL other than rebooting, and you typically left a session running for
weeks at a time.

> and every good editor,
> such as emacs, should allow you to highlight and evaluate blocks
> of text at once.  The DrSCheme run button is just a convenient way
> of doing this.

I probably overstated the effect.  My point was, however, that the interaction
mode of Dr Scheme is different from that of other Lisp or Scheme systems.
Standardizing on one or the other would be bad.



-- 
~jrm

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

Reply via email to