GSoC 2016 - Precise GC

deadalnix via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Sun May 8 04:16:56 PDT 2016


On Friday, 6 May 2016 at 09:31:08 UTC, Steven Schveighoffer wrote:
> On 5/6/16 11:06 AM, Dmitry Olshansky wrote:
>> On 06-May-2016 05:37, Jeremy DeHaan wrote:
>>> On Wednesday, 4 May 2016 at 12:42:30 UTC, jmh530 wrote:
>>>> On Wednesday, 4 May 2016 at 02:50:08 UTC, Jeremy DeHaan 
>>>> wrote:
>>>>>
>>>>> I'm not sure, but one would think that @safe code wouldn't 
>>>>> need any
>>>>> extra information about the union. I wouldn't know how to
>>>>> differentiate between them though during runtime. Probably 
>>>>> someone
>>>>> with more experience with the compiler would know more 
>>>>> about that
>>>>> kind of thing.
>>>>
>>>> You can identify safe functions with
>>>> https://dlang.org/phobos/std_traits.html#isSafe
>>>> or
>>>> https://dlang.org/phobos/std_traits.html#functionAttributes
>>>
>>> All I meant was that I don't know enough about what the 
>>> compiler does
>>> with built in types to make this work. It almost sounds like 
>>> we would
>>> need a safe union and unsafe union type and do some extra 
>>> stuff for the
>>> unsafe union, but I'm just starting to learn about this stuff.
>>
>> I'd note that a union without pointers doesn't hurt precise 
>> scanner,
>> it's only the ones with pointers that are bad.
>>
>
> Ones that have only pointers are probably OK too. Though I'm 
> not sure if a precise scanner takes into account the type of 
> the pointer. I would expect it to use embedded typeinfo in 
> target block.
>
> -Steve

Because of void* and classes, the GC MUST be able to find out 
what type was actually allocated, or at least its pointer bitmask.


More information about the Digitalmars-d-announce mailing list