RFC, ensureHeaped

Steven Schveighoffer schveiguy at yahoo.com
Wed Nov 17 06:08:33 PST 2010


On Wed, 17 Nov 2010 02:03:05 -0500, Rainer Deyke <rainerd at eldwood.com>  
wrote:

> On 11/16/2010 21:53, Steven Schveighoffer wrote:
>> It makes me think that this is going to be extremely confusing for a
>> while, because people are so used to pure being equated with a
>> functional language, so when they see a function is pure but takes
>> mutable data, they will be scratching their heads.  It would be awesome
>> to make weakly pure the default, and it would also make it so we have to
>> change much less code.
>
> Making functions weakly pure by default means that temporarily adding a
> tiny debug printf to any function will require a shitload of cascading
> 'impure' annotations.  I would consider that completely unacceptable.

As would I.  But I think in the case of debugging, we can have "trusted  
pure."  This can be achieved by using extern(C) pure runtime functions.

> (Unless, of course, purity is detected automatically without the use of
> annotations at all.)

That would be ideal, but the issue is that the compiler may only have the  
signature and not the implementation.  D would need to change its  
compilation model for this to work (and escape analysis, and link-time  
optimizations, etc.)

-Steve


More information about the Digitalmars-d mailing list