Andrei Alexandrescu wrote:
Walter Bright wrote:
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.

Not the bits, the full objects if they have indirection. (Pure functions should accept const parameters!)

You're right, the "just the bits on the stack" is if the arguments are immutable. Const arguments would have to include whatever was indirectly referenced, which I argue is impractical for the runtime to handle automatically.

Reply via email to