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