[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