[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Add preliminary versions of the R7RS libraries along with do

From: Mark H Weaver
Subject: Re: [PATCH] Add preliminary versions of the R7RS libraries along with documentation and tests
Date: Mon, 29 May 2017 18:02:40 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)

Hi Freja,

Freja Nordsiek <address@hidden> writes:

> As far as splitting it into parts and discarding the scheme modules
> and keeping the documentation, that sounds like a good idea. I just
> did a quick perusal of the r7rs-wip branch and it does not seem to
> have any R7RS unit tests. Did I miss any? If not, the test code, as
> limited as it is, might also be useful.

You didn't miss any.  I agree that we need a good R7RS test suite.  The
tests you wrote could be a useful starting point, but clearly more
coverage is needed.

Some existing free R7RS Scheme implementations include test suites that
we might be able to incorporate.  Chibi Scheme includes one which I
found useful while developing 'r7rs-wip', and as I vaguely recall there
were at least two others.  Kawa might have one.

I think we should aim to adapt and incorporate one or more existing R7RS
test suites from elsewhere, if the relevant licenses are favorable.

> As for the question/puzzlement of why I wrote all of this, that is
> complicated, and kind of silly in retrospect. The r7rs-wip branch
> looked like it was most of the way to complete but was three years
> behind the master branch and thus seemed like it was possibly dead for
> unknown reasons [...]

> Honestly, I should have just emailed the
> list and what not and asked about the status of the r7rs-wip branch
> and why it stalled, and then go from there (e.g. write the
> documentation and possibly tests). I ended up duplicating a lot of
> effort in a sloppy way.

I can understand this.  Unnecessarily rewriting code seems to be a
common tendency in our community, and I confess that I've been known to
do it myself.  Hopefully the work had some educational value at least.

I would guess that the overwhelming majority of the new Scheme code in
'r7rs-wip' does not depend on the C changes.

I stalled on the 'r7rs-wip' work for a few reasons.  For a couple of
years, I had doubts about whether the R7RS should be promoted at all,
given that it is gratuitously incompatible with the R6RS, which I
consider to be more competently designed even though I disagree with
some aspects of R6RS.

Apart from that, I encountered difficulties implementing
cyclic-data-aware R7RS 'write' and 'write-shared' in a way that's
efficient, compatible with existing APIs (custom printers, print states,
etc), and not too gross.  I have an idea how to fix those issues, but
haven't gotten around to implementing it yet.

There are some details that are not yet addressed, e.g. supporting
integers as components of module names, and deciding how to implement
(library <library-name>) clauses in 'cond-expand'.

Finally, the lack of a comprehensive test suite made me concerned that
the code was not adequately tested.

> I will split the documentation and possibly the tests out into their
> own patches and modify them to work with r7rs-wip branch instead of
> master branch.

Thank you for your efforts!


reply via email to

[Prev in Thread] Current Thread [Next in Thread]