[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

  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
      falls into.