Componentizing D's garbage collector

Paulo Pinto pjmlp at progtools.org
Wed Jan 15 23:59:22 PST 2014


On Tuesday, 14 January 2014 at 14:22:27 UTC, Timon Gehr wrote:
> On 01/14/2014 10:11 AM, Paulo Pinto wrote:
>> On Monday, 13 January 2014 at 23:42:50 UTC, Timon Gehr wrote:
>>> On 01/13/2014 11:05 PM, Paulo Pinto wrote:
>>>> Am 13.01.2014 22:31, schrieb Timon Gehr:
>>>>> On 01/13/2014 10:11 PM, Walter Bright wrote:
>>>>>>>
>>>>>>> Not to say there aren't other ways of doing things, but 
>>>>>>> with random
>>>>>>> objects
>>>>>>> becoming pinnable puts a big damper on things unless you 
>>>>>>> can identify
>>>>>>> all the
>>>>>>> objects that might be pinned and isolate them.  But I 
>>>>>>> doubt that's
>>>>>>> really
>>>>>>> knowable up front.
>>>>>>
>>>>>> The reason pinning doesn't particularly impede this is 
>>>>>> because pinning
>>>>>> is rare.
>>>>>
>>>>> In Java or in D? Eg. there are no unions in Java.
>>>>
>>>> C# has unions.
>>>>
>>>> http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.structlayoutattribute%28v=vs.110%29.aspx
>>>>
>>>>
>>>
>>> "The common language runtime controls the physical layout of 
>>> the data
>>> fields of a class or structure in managed memory. However, 
>>> ..."
>>
>>
>> Did you also read the remaining part of the page,
>
> Obviously.
>
>> or just looked for something to paste?
>> ...
>
> Look, you hadn't done anything besides pasting for backing up 
> your point or making it precise. I'll be proven wrong if you 
> are able to show us how you do the following in C#:
>
> union U{
>     int x;
>     Object y;
> }
>
>> You can control the layout, that is what matters.  Not at what 
>> level you
>> are expressing it.
>> ...
>
> Obviously.
>
>> Ignoring what such runtimes offer, only puts D at disadvantage 
>> when
>> comparing feature lists, which many in the industry do.
>>...
>
> Every resource I have encountered indicates that C# does not 
> offer this functionality because it is detrimental to GC, eg:
>
> http://stackoverflow.com/questions/17771902/struct-memory-hack-to-overlap-object-reference-is-it-possible


Excuse me for being stupid.

I just read MSDN without trying it out, so I wasn't aware that 
object references cannot be made to overllap with other data, 
even in unsafe structs.

Me and my big mouth. Better test it properly next time.

--
Paulo


More information about the Digitalmars-d mailing list