[phobos] Fw: phobos commit, revision 1930

Andrei Alexandrescu andrei at erdani.com
Thu Aug 26 10:29:40 PDT 2010


Damn, sorry. Will do.

Andrei

On 8/26/10 10:27 PDT, Steve Schveighoffer wrote:
> 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
>>>
>>
>>
>>
>>
>
>
>
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos


More information about the phobos mailing list