GSoC 2016 - Precise GC
Pham via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Sun May 8 06:51:56 PDT 2016
On Friday, 6 May 2016 at 09:06:59 UTC, 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:
>>>
>>> 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.
Union is an user-defined-kind value and only user codes can tell
the difference. I believe this will also effect the reference
count implementation. I suggest that when a type has a union
member, it should create a function such as gcValues with a
parameter of output range of record (offset: size_t, type:
typeid). the function should return that info based on whatever
the actual value of those pointer types. If that function is
missing, use conservative approach as before
Cheers
Pham
More information about the Digitalmars-d-announce
mailing list