Idea #1 on integrating RC with GC
Jameson Ernst
jameson at example.com
Wed Feb 5 11:44:50 PST 2014
I'm just a casual end-user of D, but have been following this and
related discussions with great interest. Just yesterday I was
trying to "sell" D to a friend, and he basically told me that
he'd be interested once the memory management situation gets
resolved. I've been thinking about this a lot lately, even though
I'm probably way out of my depth given the experts that frequent
this forum. Still, I had an idea about this and thought I'd throw
it out there.
On Wednesday, 5 February 2014 at 04:18:49 UTC, Andrei
Alexandrescu wrote:
> On 2/4/14, 5:12 PM, deadalnix wrote:
>> That being understood, I'd rather connect things the other way
>> around.
>>
>> auto x = foo();
>> auto x = foo().toRC();
>
> I don't know how to implement that.
>
>
> Andrei
From the discussion currently going on about postblits, it seems
like there's a new emerging concept of a "unique expression," the
value of which is guaranteed not to be referenced elsewhere.
Could this concept perhaps be leveraged to go backwards from GC
to RC? If you perform a GC allocation in the context of a unique
expression, would it then be safe to force it back into an RC
context, knowing that there are no outstanding references to it?
What's more, it would allow library writes to mostly perform
allocations a single way, giving the choice to the caller how
they'd like to manage the lifetime of the newly returned unique
object.
I could be completely misunderstanding the unique-expression
concept though.
More information about the Digitalmars-d
mailing list