Copied over the docstrings that I had written over to the existing R7RS modules in r7rs-wip. There are still procedures that need docstrings, though. Freja Nordsiek On Sat, Jun 17, 2017 at 2:02 AM, Freja Nordsiek wrote: > I was able to add the unit tests I had written to the r7rs-wip branch > and run them (patch is attached). The things that they tested mostly > worked out of the box, which is a good sign. Had to fix a couple > errors in some of the tests (checked the R7RS-small standard and my > tests were indeed in error). > > Also, I found one error in the get-output-bytevector procedure in > (scheme base), which was that the procedure discarded the bytes > already written. get-output-bytevector is not supposed to be > destructive to the bytes already written, but the R6RS output > bytevector reading procedures are destructive. I made a patch with a > very simple fix, which is to just write the bytes back. It has one > major problem, though, and that is it is not threadsafe, so while it > is an improvement, there is still some more work to do on it. > > Next thing I am going to do is copy over the docstrings I wrote for > code going to the bitbucket (my versions of the r7rs modules) to the > ones already in r7rs-wip since they are lacking docstrings. > > > Freja Nordsiek > > On Tue, May 30, 2017 at 12:02 AM, Mark H Weaver wrote: >> Hi Freja, >> >> Freja Nordsiek 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 ) 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! >> >> Mark