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