On Wed, Sep 10, 2003 at 10:54:43AM +0100, Christophe Rhodes wrote:
> > MAKE-STRING-INPUT-STREAM
> > * If the input stream is resized or otherwise mutated the effects are
> > seen in the stream as well.
> I'm not sure I like this one. Most of the rest makes sense to me, but
> this I think is a bit weird. I'm at least slightly supported by
> WITH-INPUT-FROM-STRING on this one, which refers to the "Traversal
> Rules and Side Effects" bit.
... and the issue MAPPING-DESTRUCTIVE-INTERACTION:EXPLICITLY-VAGUE
seems to support your position even more, yes.
> (with-array-data ((string string) (start start) (end end))
> string ; now the simple, underlying data, so mutations will be reflected
> end ; no need for functions, since we disallow changing the string structure
> so that the stream string is now simple [ though not necessarily
> (simple-array character (*)); it could be (simple-array nil (*)); I
> think that's probably acceptable performancewise ]
> Does that make sense?
It makes perfect sense in the light of the above issue. ;) To quote:
"The likelihood that a compiler could do some interesting
optimization if this point were not pinned down is high enough to be
the overriding consideration in this case."