..and I just copy/pasted the new code and ran against my own tests, including a few new ones just added.

thumbs up.


On Thu, Jul 5, 2018 at 7:14 PM John Cowan <xxxxxx@ccil.org> wrote:
You're right on both counts.  Revised patch attached.  I have rewritten binary-vector= to be simpler and easier to understand (no letrec), added more tests, and moved a definition in the test file to eliminate a warning from Chibi.

On Wed, Jul 4, 2018 at 7:15 PM, Jim Rees <xxxxxx@gmail.com> wrote:
1) you meant srf-133, not srf-113...
2) You also need to remove the (or (eq? vector-a vector-b) ...) from the top of that function.

diff --git a/vectors/vectors-impl.scm b/vectors/vectors-impl.scm
index 9b798e0..0be2c0c 100644
--- a/vectors/vectors-impl.scm
+++ b/vectors/vectors-impl.scm
@@ -736,7 +736,6 @@
                    (and (binary-vector= elt=? vec1 (car vec2+))
                         (loop vec2+)))))))))
 (define (binary-vector= elt=? vector-a vector-b)
-  (or (eq? vector-a vector-b)           ;+++
   (let ((length-a (vector-length vector-a))
         (length-b (vector-length vector-b)))
     (letrec ((loop (lambda (i)
@@ -746,11 +745,10 @@
                                     (vector-ref vector-b i)
                                     i)))))
              (test (lambda (elt-a elt-b i)
-                         (and (or (eq? elt-a elt-b) ;+++
-                                  (elt=? elt-a elt-b))
+                     (and (elt=? elt-a elt-b)
                           (loop (+ i 1))))))
       (and (= length-a length-b)
-               (loop 0))))))
+           (loop 0)))))


On Wed, Jul 4, 2018 at 7:09 PM John Cowan <xxxxxx@ccil.org> wrote:
LGTM.  Here's the patch for srfi-113-impl.scm

diff --git a/vectors/vectors-impl.scm b/vectors/vectors-impl.scm
index 9b798e0..d18ac86 100644
--- a/vectors/vectors-impl.scm
+++ b/vectors/vectors-impl.scm
@@ -745,10 +745,8 @@
                                   (test (vector-ref vector-a i)
                                         (vector-ref vector-b i)
                                         i)))))
-                 (test (lambda (elt-a elt-b i)
-                         (and (or (eq? elt-a elt-b) ;+++
-                                  (elt=? elt-a elt-b))
-                              (loop (+ i 1))))))
+                 (test (lambda (elt-a elt-b i) (elt=? elt-a elt-b))
+                     (loop (+ i 1))))
           (and (= length-a length-b)
                (loop 0))))))



On Wed, Jul 4, 2018 at 6:42 PM, Arthur A. Gleckler <xxxxxx@speechcode.com> wrote:
​Thanks for catching this, Jim.

I've​ attached a patch to add an erratum to the document.  John, please review that.  Note that I removed the next sentence as well, since it depends on the one you suggested removing.

I'll leave it to you to update the implementation.