On 15 May 2014 22:30, Steven Schveighoffer via Digitalmars-d <digitalmars-d@puremagic.com> wrote: > On Thu, 15 May 2014 07:52:20 -0400, Manu via Digitalmars-d > <digitalmars-d@puremagic.com> wrote: > >> On 15 May 2014 10:50, Walter Bright via Digitalmars-d >> <digitalmars-d@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.
Why should returning a mutable pointer imply weak purity?