[phobos] Fw: I think we need to make an emergency release
Steve Schveighoffer
schveiguy at yahoo.com
Wed Aug 25 14:54:49 PDT 2010
This broke off accidentally into a private conversation...
----- Forwarded Message ----
> From: Steve Schveighoffer <schveiguy at yahoo.com>
> To: Andrei Alexandrescu <andrei at erdani.com>
> Sent: Wed, August 25, 2010 5:54:09 PM
> Subject: Re: [phobos] I think we need to make an emergency release
>
>
>
>
>
> ----- Original Message ----
> > From: Andrei Alexandrescu <andrei at erdani.com>
> >
> > On 8/25/10 14:39 PDT, Steve Schveighoffer wrote:
> > > ----- Original Message ----
> > >> From: Andrei Alexandrescu<andrei at erdani.com>
> > >>
> > >> I needed Appender to be a reference type for std.format and std.stdio.
> > >> The point is to be able to compose a complex stream read into a
>sequence
> > >> of simpler reads. This is possible if you use one Appender
throughout,
> > >> but I don't see why preclude people from appending output to their
own
> > >> strings. It's not a difficult to implement feature (my convoluted code
> > >> notwithstanding), and it's useful. Why decide to not provide it?
> > >
> > > It is a reference type. There's only one pointer in the struct, that
>points
>
> >to
> > > the GC-allocated private Data struct. Or maybe I didn't understand you?
> >
> > I know it is a reference type (I was just explaining the change I
>introduced).
>
> >The issue with your appender is that it makes it impossible for a user to
> >append to an existing string and have the change reflected at all times in
>the
>
> >string.
>
> Well, I didn't find any cases requiring that in std.format or std.stdio, but
> they were mostly in unittests. Do you have a better example? Note that
> performing things like builtin appends on an array allocated by Appender are
>not
>
> a good idea, since appender completely ignores and does not update the stored
> length properly.
>
> Even an explanation of what you plan to do with the data at the same time you
> are appending would be good in lieu of an example. Maybe we can find a better
>
> design, or provide an unsafe function to get a reference to the GC-allocated
> array reference for those who want to live on the edge. I just dislike the
> *requirement* of stepping into unsafe territory just to use Appender. It
>seems
>
> to go against the spirit of most of Phobos. IMO the default should be the
>safe
>
> way.
>
> -Steve
>
>
>
>
>
More information about the phobos
mailing list