On Wed, 23 May 2012 09:56:58 -0400, deadalnix <[email protected]> wrote:
Le 23/05/2012 15:52, Steven Schveighoffer a écrit :
What if memory is tight, and the only way to get memory for this new
allocation is to collect from the main heap? This seems an odd
limitation, since strong-pure functions would not be affected by
collecting in the main heap *at all*.
-Steve
It is up to the GC to collect memory when it is tight. This operation
isn't and shouldn't be pure.
It can eventually be called within the allocation mecanism.
Don has said that any collection cycle triggered by a pure function should
not touch the main heap, only memory allocated from within this function
(or 'pure function' stack I guess).
This means that a strong-pure function could throw an OutOfMemoryError,
whereas a non-pure one would run fine.
I'm with Alex on this, this situation is not tenable.
-Steve