John Cowan <> writes:

> On Mon, Sep 19, 2016 at 4:51 PM, John J Foerch <>
> wrote:
>     I ran into a little problem when working with the r6rs-bytevectors
>     egg,
>     which provides an r7rs implementation of (r6rs bytevectors). The
>     bytevector-copy! procedure has a different call signature in r6 than
>     in
>     r7, and I found that as r6rs-bytevectors is currently written, its
>     bytevector-copy! always shadows or overrides the bytevector-copy! from
>     r7rs.
> The assumption is that because you've imported r6rs-bytevectors
> explicitly, the R6RS behavior is what you actually want. This is the only
> place where R6RS and R7RS differ in argument order that is not
> automatically detectable. Larceny provides a combined (r7r6) library that
> imports everything from both standards, except that the R6RS version of
> bytevector-copy! comes in as r6rs:bytevector-copy!.

But notice that in moduleb,

      (import (except (scheme base) bytevector-copy!))

The definition of bytevector-copy! in my moduleb is apparently changing
the value of scheme.base#bytevector-copy! from r7rs, but since that
binding was not imported, I think that this behavior is incorrect.

John Foerch

Chicken-users mailing list

Reply via email to