std.allocator ready for some abuse
Namespace
rswhite4 at googlemail.com
Fri Oct 25 12:26:44 PDT 2013
On Friday, 25 October 2013 at 19:03:14 UTC, Dmitry Olshansky
wrote:
> 25-Oct-2013 22:41, Namespace пишет:
>> On Friday, 25 October 2013 at 17:57:23 UTC, Dmitry Olshansky
>> wrote:
>>> 25-Oct-2013 16:52, Jacob Carlborg пишет:
>>>> On 2013-10-25 02:01, Andrei Alexandrescu wrote:
>>>>
>>>>> Oddly enough this can be actually done.
>>>>>
>>>>> with (setAllocator!Mallocator)
>>>>> {
>>>>> ...
>>>>> }
>>>>>
>>>>> setAllcator returns an rvalue that changes the global
>>>>> allocator to the
>>>>> Mallocator in the constructor, and restores it to whatever
>>>>> it was in
>>>>> the
>>>>> destructor.
>>>>
>>>> Wouldn't this be very unsafe? Say you call another function
>>>> inside the
>>>> with-statement and that function assumes the standard GC for
>>>> allocating
>>>> memory.
>>>>
>>>
>>> Very true. To put it simply it's a disastrous idea that sadly
>>> is too
>>> easy to be ignored.
>>>
>>> IMHO we'd better start with containers and refitting Phobos
>>> from
>>> built-in AA/arrays to user-defined containers. One
>>> interesting way
>>> there is to accept/adopt containers as OutputRange.
>> Did you mean to get rid of built-in arrays / kill int[] and
>> replace it
>> with Array!T?
>
> Hm, arrays? Kill? No, they are incredibly nice for prototyping
> + they are very useful even as just slices.
>
> What I mean is to make it easy to use Phobos stuff with other
> containers in place of built-ins, basically no hard-codding
> behind the scenes.
>
> Typical offender is Appender - it's rigid, has dangerous API
> and doesn't support building anything but T[]. For this
> particular case see:
> http://d.puremagic.com/issues/show_bug.cgi?id=11138
>
> Another one:
> http://dlang.org/phobos/std_array.html#.array
> It's trivially expendable to any other Array-like type, yet ATM
> it's hardwired.
>
> O.T. I'd gladly kill built-in AA though just to save people a
> lot of time spent on debugging that crap. More precisely I'd
> keep AA _literals_ and give the user the means to construct any
> type of Key-->Value store out of it. It's too late probably.
With which syntax? As far as e.g. int[string] (and not something
ugly as Map!(string, int)) would stay what would be the problem
to change the backend?
More information about the Digitalmars-d
mailing list