forcing weak purity

Don Clugston dac at nospam.com
Wed May 23 06:17:43 PDT 2012


On 23/05/12 05:22, Steven Schveighoffer wrote:
> I have come across a dilemma.
>
> Alex Rønne Petersen has a pull request changing some things in the GC to
> pure. I think gc_collect() should be weak-pure, because it could
> technically run on any memory allocation (which is already allowed in
> pure functions), and it runs in a context that doesn't really affect
> execution of the pure function.
>
> So I think it should be able to be run inside a strong pure function.

I am almost certain it should not.

And I think this is quite important. A strongly pure function should be 
considered to have its own gc, and should not be able to collect any 
memory it did not allocate itself.

Memory allocation from a pure function might trigger a gc cycle, but it 
would ONLY look at the memory allocated inside that pure function.



More information about the Digitalmars-d mailing list