Memory allocation purity
Steven Schveighoffer via Digitalmars-d
digitalmars-d at puremagic.com
Thu May 15 05:30:02 PDT 2014
On Thu, 15 May 2014 07:52:20 -0400, Manu via Digitalmars-d
<digitalmars-d at puremagic.com> wrote:
> On 15 May 2014 10:50, Walter Bright via Digitalmars-d
> <digitalmars-d at puremagic.com> wrote:
>> On 5/14/2014 5:03 PM, Meta wrote:
>>>
>>> Allocating memory through new and malloc should always be pure, I
>>> think,
>>> because
>>> failure either returns null in malloc's case,
>>
>>
>> malloc cannot be pure if, with the same arguments, it returns null
>> sometimes
>> and not other times.
>
> Even if it doesn't fail, malloc called with identical arguments still
> returns a different result every time.
> You can't factor malloc outside a loop and cache the result because
> it's being called repeatedly with the same argument like you're
> supposed to be able to do with any other pure function.
> You shouldn't be able to do that with gcalloc either... how can gcalloc
> be pure?
That only applies to strong-pure functions. malloc would be weak-pure,
since it returns a mutable pointer.
-Steve
More information about the Digitalmars-d
mailing list