Re: various comments Jussi Piitulainen (17 Nov 2001 14:03 UTC)
Re: various comments Radey Shouman (17 Nov 2001 18:27 UTC)
Re: various comments Jussi Piitulainen (18 Nov 2001 14:50 UTC)
Re: various comments Per Bothner (19 Nov 2001 19:52 UTC)
Re: various comments Jussi Piitulainen (20 Nov 2001 08:14 UTC)
Re: various comments Per Bothner (20 Nov 2001 18:35 UTC)
Re: various comments Jussi Piitulainen (20 Nov 2001 19:20 UTC)
Re: various comments Per Bothner (20 Nov 2001 19:33 UTC)
Re: various comments Jussi Piitulainen (20 Nov 2001 20:14 UTC)
Re: various comments Radey Shouman (21 Nov 2001 03:31 UTC)
Re: various comments Radey Shouman (19 Nov 2001 23:26 UTC)
Re: various comments Jussi Piitulainen (20 Nov 2001 08:43 UTC)
Re: various comments Per Bothner (20 Nov 2001 19:20 UTC)
Re: various comments Jussi Piitulainen (20 Nov 2001 20:02 UTC)
Re: various comments Per Bothner (20 Nov 2001 21:08 UTC)
Re: various comments Radey Shouman (21 Nov 2001 03:58 UTC)
Re: various comments Jussi Piitulainen (21 Nov 2001 16:52 UTC)
Re: various comments Radey Shouman (21 Nov 2001 03:47 UTC)
Vectors as arrays Re: various comments Jussi Piitulainen (20 Nov 2001 18:03 UTC)
Re: Vectors as arrays Re: various comments Radey Shouman (21 Nov 2001 04:09 UTC)

Re: various comments Per Bothner 20 Nov 2001 18:34 UTC

Jussi Piitulainen wrote:

>By all means let us allow implementations to make vectors a subtype of
>arrays. I have doubts about requiring them to do so - would they? You
>might, I see, but somebody else might refuse the whole package on that
>account
>
I tend to agree.

>But it seems like the details should be worked out, just to be sure.
>My feeling is that arrays can live happily either joint or disjoint
>with vectors, but if joint, then it must be clean both ways, so that
>all zero-based one-dimensional arrays are vectors, and vectors must be
>sharable just like any array.
>
Common Lisp has the concept of "simple vectors" and "simple arrays".
In this context a "simple" array is one that is not shared.  CL leaves
it up to the implementation exactly what arrays are "simple" but any
array that
is neither adjustable, displaced (shared) or has a fill-pointer is
guaranteed to
be simple. The intention is that the implementation can optionally use a
more efficient representation for simple arrays.

What I'm suggesting is that R5RS vectors are "simple", one-dimensional,
zero-based arrays.  If you follow CL, then yes vectors would be sharable,
but a shared vector would no longer be a simple vector.  You could have
some functions that require "simple" vectors.

On the other hand, any implementation that treats vectors as a sub-type
of arrays, should be encouraged to extend the R5RS vector functions
to all zero-based one-dimensional arrays, shared or not.

    --Per Bothner