RFC, ensureHeaped

bearophile bearophileHUGS at lycos.com
Fri Nov 12 13:07:28 PST 2010


Pillsy:

> bearophile wrote:
> [...]
> > Another possible solution is to modify the semantics of this kind of 
> > arguments pass, so the code inside the function foo always see an 
> > args array allocated on the heap:
> 
> > void foo(int[] args...) { // code
>  
> > You may then add "scope" to restore the original lighter semantics:
> > void foo(scope int[] args...) { // code
>  
> > This is safer than the current semantics because the safe design is 
> > the built-in one and the faster is on request.
> 
> I don't know how easy it would be,

That looks easy to implement, the compiler doesn't need to be smart to do that. The other idea of @noheap is harder to implement.


> It has one other advantage, in that you can use the `scope` keyword for things other than varargs, like closures.

That scope syntax is already supported for closures, and it's partially implemented (or fully implemented, I am not sure).

Bye,
bearophile


More information about the Digitalmars-d mailing list