[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: a (revised) draft of R5RS
I don't have time to read and respond to everything that has
been posted yesterday and today, but I would like to offer some
reminders that might lead to a more productive discussion.
1. Yes, the semantics of WITH-INPUT-FROM-FILE and
WITH-OUTPUT-TO-FILE are poorly specified. That is why
they are in the R4RS but not in ANSI/IEEE Scheme.
2. The R*RS is supposed to be a place for things that are
more experimental or less well understood than the things
that go into a real standard.
3. If people are thinking that WITH-INPUT-FROM-FILE and
WITH-OUTPUT-TO-FILE can be used in portable code, and
not just in toy programs that don't use continuations,
then we have a problem. We could address that problem
by removing those procedures from the R*RS, by specifying
their semantics more carefully, by educating the people who
are using them, or in other ways. No one should be ridiculed
for suggesting any of these alternatives.
4. UNWIND-PROTECT makes no sense in Scheme. There is no point
to arguing about anything related to UNWIND-PROTECT.
5. The semantics of DYNAMIC-WIND are well-understood. We can
use DYNAMIC-WIND to discuss the various alternative semantics
for WITH-INPUT-FROM-FILE and WITH-OUTPUT-TO-FILE.
6. DYNAMIC-WIND can be implemented in Scheme (using the kind
of hack that can be used to implement some of the record
proposals), so any objection to DYNAMIC-WIND must fall into
at least one of the following categories:
* We don't want to talk about library procedures,
even if they are widely used.
* There is something wrong with ANSI/IEEE Scheme
because it is possible to implement DYNAMIC-WIND.
It would be helpful if people who object to DYNAMIC-WIND
(and other library procedures) would indicate which category
(or both) their objection falls into.
7. The various alternative semantics for WITH-**PUT-***-FILE
can also be implemented in Scheme, so any objection to them
must fall into one of the above categories or into the
following third category:
* WITH-***PUT-***-FILE should be relegated to a library
instead of being dignified with the status of an R*RS
Again, it would be helpful if people who object to these
procedures would indicate which category their objection