Memory allocation purity

Jonathan M Davis via Digitalmars-d digitalmars-d at puremagic.com
Sat May 17 11:51:44 PDT 2014


On Thu, 15 May 2014 08:43:11 -0700
Andrei Alexandrescu via Digitalmars-d <digitalmars-d at puremagic.com>
wrote:

> On 5/15/14, 6:28 AM, Dicebot wrote:
> > This is not true. Because of such code you can't ever automatically
> > memoize strongly pure function results by compiler. A very practical
> > concern.
>
> I think code that doesn't return pointers should be memoizable.
> Playing tricks with pointer comparisons would be appropriately
> penalized. -- Andrei

Agreed. The fact that a pure function can return newly allocated memory pretty
much kills the idea of being able to memoize pure functions that return
pointers or references, because the program's behavior would change if it were
to memoize the result and reuse it. However, that should have no effect on
pure functions that return value types - even if the function took pointers or
references as arguments or allocated memory internally. They should but
perfectly memoizable.

- Jonathan M Davis



More information about the Digitalmars-d mailing list