Re: a bug in srfi-43 Zhu Chongkai (28 Feb 2005 01:14 UTC)
Re: a bug in srfi-43 David Van Horn (28 Feb 2005 05:56 UTC)

Re: a bug in srfi-43 David Van Horn 28 Feb 2005 05:55 UTC

Quoting Zhu Chongkai <xxxxxx@citiz.net>:
> Actually, I just finished porting SRFI-43 to PLT and now
> it is available at http://webhost.5ewy.com/kellyjm/SRFI-43.zip
>
> During the porting, I find several bugs in both the document
> and reference implementation of SRFI-43. The document in
> http://webhost.5ewy.com/kellyjm/SRFI-43.zip is bug-fixed
> version by me. The details are:
>
> Besides (vector-fold (lambda (index counter n) , the two
> bugs in the document is:
>
> (vector-fold-right (lambda (index elt tail) (cons elt tail))
>
> should be
>
> (vector-fold-right (lambda (index tail elt) (cons elt tail))
>
> and
>
> (let ((count 0))
>    (vector-map (lambda (ignored-index ignored-elt)
>                  (set! count (+ count 1))
>                  count)))
>                '#(a b)
>
> should be
>
> (let ((count 0))
>    (vector-map (lambda (ignored-index ignored-elt)
>                  (set! count (+ count 1))
>                  count)
>                '#(a b)))

Zhu, thank you for the close reading of the document.  I fixed these two errors
in the SRFI document.  If there are other typos, please let me know.

> And in the reference implementation:
>
> (define (vector-reverse-copy!
>   ...
>   (between? sstart (+ tstart (- send sstart))
>                                   send)
> ...
>
> should be
>
> (between? tstart sstart (+ tstart (- send sstart)))
>
> If run the reference implementation, the example
>
> (vector-map (lambda (i x) (* x x))
>             (vector-unfold (lambda (i x) (values x (+ x 1))) 4 1))
>
> returns
>
> #(1 4 9 <unspecified>)
>
> instead of
>
> #(1 4 9 16)

Perhaps you, or Taylor, could provide a patch which I could apply to the current
reference implementation to fix these problems.

> And the second half of the document, there are no examples,
> which is totally different from the first half.

There is little to be done about that at this point.  You could write examples,
or better, a test suite and post it to this list.

> (There may be more bugs in the reference implementation because
> after finding so many bugs, I distrust it and write my own code
> without reading it carefully. )

It's a large document and a large source file.  It's quite reasonable to expect
a few small kinks.

David