Purity (D2 standard libraries / object.d)

dsimcha dsimcha at yahoo.com
Fri Jan 9 20:14:07 PST 2009


== Quote from Walter Bright (newshound1 at digitalmars.com)'s article
> Michel Fortin wrote:
> > Hum, could the compiler be trusted to add the memoization code to pure
> > functions so they can stay pure?
> If the compiler does general memoization on pure functions, all it has
> to do is use the bits of the arguments passed on the stack to the
> function as an index into an associative array of the return values.
> The problem is identifying if this would be faster than recomputing the
> return value.

Wouldn't this also cause threading issues?  The obvious solution would be to use
TLS, but his requires duplicating the cache across threads.  Also, using AAs
internally like this would lead to very deeply hidden memory allocations, and
therefore possibly more frequent GC, etc.



More information about the Digitalmars-d mailing list