A benchmark, mostly GC

deadalnix deadalnix at gmail.com
Sun Dec 11 14:46:37 PST 2011


Le 11/12/2011 23:31, Timon Gehr a écrit :
> On 12/11/2011 11:27 PM, deadalnix wrote:
>> Le 11/12/2011 22:26, Timon Gehr a écrit :
>>> On 12/11/2011 10:13 PM, deadalnix wrote:
>>>> Le 11/12/2011 21:55, Timon Gehr a écrit :
>>>>> On 12/11/2011 07:02 PM, deadalnix wrote:
>>>>>> Le 11/12/2011 16:43, Dejan Lekic a écrit :
>>>>>>>
>>>>>>> It would be really great to implement a generational GC similar to
>>>>>>> the
>>>>>>> C4 mentioned in this presentation:
>>>>>>> http://www.infoq.com/presentations/Understanding-Java-Garbage-Collection
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> . There is a research-paper about C4 as well:
>>>>>>> http://dl.acm.org/citation.cfm?id=1993491 .
>>>>>>
>>>>>> This GC (like all compacting GC) require that the GC knows what is a
>>>>>> reference/pointer and what isn't.
>>>>>>
>>>>>> This is possible in D using the compile time reflexion to build a
>>>>>> runtime reflexion. But the standard lib is far away from that. This
>>>>>> will
>>>>>> also bloat the executable with reflexion's data, thing that some
>>>>>> don't
>>>>>> want.
>>>>>
>>>>> The information has to be generated by the compiler, not by the
>>>>> library.
>>>>>
>>>>
>>>> This is not the way choosen by D. And the way choosen by D is, IMO,
>>>> supperior.
>>>>
>>>> D choosed to have compiler time reflexion, but no runtime reflexion
>>>> (compiler won't generate it). Given that, and the great capability of D
>>>> for generic programming, the best solution is to generate
>>>> information at
>>>> using compile time reflexion using a lib, to get runtime reflexion.
>>>>
>>>> Many application do not want the bloat created by runtime reflexion.
>>>> This is up to the user to compile with such a lib or not.
>>>
>>> We are talking about supporting precise GC, not about custom runtime
>>> reflection. There is no way to get precise GC right without compiler
>>> support.
>>
>> It is clearly possible by marking not movable what is possibly pointer
>> in the stack and registers and some runtime reflexion used by the GC.
>
> In *precise GC* speak, 'possibly pointer' is a banned term. You
> understand that? Also compile-time reflection is IMPOSSIBLE if you don't
> have the source code. It cannot work in a meaningful way.
>
> GC support must be built-in. Every attempt to make such a fundamental
> feature depend on the standard library is comical.

Well, you are the only one here talking about a precise GC. The post you 
reponded to was talking about a compacting GC. Which isn't the same.

So please don't go as hominem. I could do the same but it will ends up 
nowhere.


More information about the Digitalmars-d mailing list