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
