[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