unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Mark H Weaver <mhw@netris.org>
To: John Cowan <cowan@ccil.org>
Cc: guile-devel@gnu.org
Subject: Re: [PATCH] add SRFI: srfi-121; generators
Date: Sun, 02 Aug 2020 18:39:32 -0400	[thread overview]
Message-ID: <87v9i0zn7k.fsf@netris.org> (raw)
In-Reply-To: <CAD2gp_RDQjTx12sNGaLYXNtGDqaiO+UF8m3URgZz2dQ=2fKmpg@mail.gmail.com>

Hi John,

John Cowan <cowan@ccil.org> wrote:
> Mark Weaver wrote in July 2019:
> 
>> Also, the provided implementations of 'generator-find', 'generator-any'
>> and 'generator-every' are incorrect:
> 
> 
> I appreciate your finding these bugs.  I wish, however, that you had also
> sent them to <srfi-121@srfi.schemers.org>.

Sorry about that.  As I recall, I didn't send those bug reports to the
SRFI-121 mailing list because I had assumed that the bugs were not in
the reference implementation.  I made that assumption because the buggy
procedures included comments that expressed uncertainty about what the
specification intended, e.g. "the spec would have me return #f, but I
think it must simply be wrong" and "a literal interpretation might say
it only terminates on #eof if (pred #eof) but I think this makes more
sense."

It didn't occur to me that the reference implementation of a finalized
SRFI would include comments like "the spec would have me return #f, but
I think it must simply be wrong".  However, I see now that I was
mistaken.  Indeed, those buggy implementations and confused comments are
in both the SRFI-121 and SRFI-158 reference implementations.

I *did* send bug reports to the SRFI-121 and SRFI-158 mailing lists
about inconsistencies in those specifications.  See:

  https://srfi-email.schemers.org/srfi-158/msg/11780787/
  https://srfi-email.schemers.org/srfi-158/msg/11781931/
  https://srfi-email.schemers.org/srfi-121/threads/2019/07/

I'm sorry to say it, but in my opinion SRFI-121 and SRFI-158 should be
deprecated and avoided.  The reference implementations do not match the
specifications, and the specifications themselves are self-contradictory
(see above).  Therefore, it's entirely possible that users of these
SRFIs may have contradictory expectations about how these procedures
behave.  Some may have read the spec one way, some may have read the
spec in a contradictory way, some may have learned from how the buggy
reference implementation behaves, and others may have learned from the
behavior of a different SRFI-121 implementation that doesn't have those
bugs.  At this point, I don't see how the problems can be fixed without
breaking some users' assumptions, and therefore breaking existing code.

I sincerely hope that these two SRFIs are an aberration, and not
representative of the quality of the R7RS-large effort.

      Mark



  reply	other threads:[~2020-08-02 22:39 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-01  3:42 [PATCH] add SRFI: srfi-121; generators John Cowan
2020-08-02 22:39 ` Mark H Weaver [this message]
  -- strict thread matches above, loose matches on Subject: below --
2021-01-21 18:39 John Cowan
2021-01-23  0:58 ` Mark H Weaver
2021-01-23  2:14   ` Shiro Kawai
2021-01-23  2:18     ` Arthur A. Gleckler
2021-01-23  6:37       ` Mark H Weaver
2021-01-26  3:29         ` John Cowan
2021-01-26  6:48           ` Linus Björnstam
2021-01-26  6:49             ` Linus Björnstam
2021-01-26  7:14             ` Marc Nieper-Wißkirchen
2021-01-26 11:54               ` Linus Björnstam
2021-04-08 15:53                 ` Arthur A. Gleckler
2021-04-11  6:52                   ` Linus Björnstam
2021-04-11 16:17                     ` Arthur A. Gleckler
     [not found] <mailman.61.1596470427.10776.guile-devel@gnu.org>
2020-08-03 19:41 ` Marc Nieper-Wißkirchen
2020-08-04 12:48   ` Marc Nieper-Wißkirchen
2020-08-04 15:24   ` John Cowan
2020-08-04 15:58     ` Marc Nieper-Wißkirchen
2020-08-04 17:24       ` Dr. Arne Babenhauserheide
2019-07-01  0:09 nly
2019-07-01  5:06 ` Mark H Weaver
2019-07-01  6:00   ` Mark H Weaver
2019-07-01  6:21     ` Amar Singh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87v9i0zn7k.fsf@netris.org \
    --to=mhw@netris.org \
    --cc=cowan@ccil.org \
    --cc=guile-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).