[phobos] Fw: phobos commit, revision 1930

Steve Schveighoffer schveiguy at yahoo.com
Thu Aug 26 10:27:26 PDT 2010


GAH! I did it again!

Andrei, stop replying to all :)

-Steve



----- Forwarded Message ----
> From: Steve Schveighoffer <schveiguy at yahoo.com>
> To: Andrei Alexandrescu <andrei at erdani.com>
> Sent: Thu, August 26, 2010 1:24:43 PM
> Subject: Re: [phobos] phobos commit, revision 1930
> 
> No, I want to be able to use static arrays as a buffer.  This allows nifty 
> things like using the stack if possible, and reallocating if you go beyond  the 
>
> stack buffer size.
> 
> BTW, capacity already returns 0 for  these.
> 
> It's immutable *literals* that I want to disallow.  Can we  get a function to 
> determine if a string is a literal vs a stack or  heap-allocated value?
> 
> On that topic a bit, calling clear on an  Appender!string allows you to 
>overwrite 
>
> immutable data.  Do we care too  much?  I think we can just mark the clear 
> function as @system and call  it a day...
> 
> -Steve
> 
> 
> 
> ----- Original Message ----
> >  From: Andrei Alexandrescu <andrei at erdani.com>
> > To: Discuss  the phobos library for D <phobos at puremagic.com>
> > Cc:  Steve Schveighoffer <schveiguy at yahoo.com>
> > Sent: Thu,  August 26, 2010 1:18:25 PM
> > Subject: Re: [phobos] phobos commit, revision  1930
> > 
> > Walter, Sean, could we arrange such that capacity of  static arrays 
> > yields  zero?
> > 
> > Andrei
> > 
> > On 8/26/10 10:16 PDT, Steve Schveighoffer  wrote:
> > > The  constructor uses arr.capacity to determine how much it can  append.
> >  >
> > > assumeSafeAppend will ensure that arr.capacity is as   large as possible, 
>so 
>
> >yes,
> > > calling before creating the  Appender will  maximize the capacity, 
>regardless 
>
> >of
> > >  whether it will stomp or  not.
> > >
> > > One thing that  Appender will do, which is bad, but I'm not  sure we need 
>to 
>
> >care,
> > > it can be given a string literal, and then try  to  write over the string 
> >literal
> > > like this:
> >  >
> > > auto app =  appender("hello");
> > > //  app.put('c'); // this would be ok
> > >  app.clear();
> > >  app.put('c'); // segfault on Linux
> > >
> > > I'm not  sure  how to get around this.  I thought of checking the heap to 
>see  
>
> >if
> > > it owns the pointer, but then you disallow useful things  like using  a
> > > stack-allocated buffer.  I think this case  may be uncommon enough  to not 

> >care.
> > >
> > >  -Steve
> > >
> > >>
> > >> From: David   Simcha<dsimcha at gmail.com>
> > >>  To:  Discuss the phobos library for D<phobos at puremagic.com>
> >  >>  Sent: Thu, August 26, 2010 1:10:31 PM
> > >> Subject:  Re: [phobos] phobos  commit, revision 1930
> > >>
> >  >> Nice work.  One small  question/possible feature request,  though:  Will 

> >calling
> > >>  assumeSafeAppend() on  an array before constructing an Appender using it  
>
> >prevent
> >  >
> > >> it from being reallocated on the first append?   If  not, can Appender 
>have 
>
> >some
> > >> kind of assumeSafeAppend  workaround  in it?
> > >
> > >
> > >
> >  >  _______________________________________________
> > > phobos  mailing  list
> > > phobos at puremagic.com
> > >   http://lists.puremagic.com/mailman/listinfo/phobos
> > 
> 
> 
>        
> 


      


More information about the phobos mailing list