The forked elephant in the room

Richard (Rikki) Andrew Cattermole richard at cattermole.co.nz
Tue Jan 16 20:37:25 UTC 2024


On 17/01/2024 8:50 AM, Walter Bright wrote:
> On 1/16/2024 12:23 AM, Richard (Rikki) Andrew Cattermole wrote:
>> However on that topic, I was going to do a Unicode talk for DConf 
>> Online this year, but alas that kinda depended upon UAX31 identifiers, 
>> and you haven't been too keen to approve that line of work so I 
>> haven't done it.
> 
> I have actually approved it. My mistake it was not properly communicated 
> to you.

The updated plan was not as you never replied. The earlier plan of 
removing non-starters was (but that is a breaking change and strategy 
surrounding that changed before I could implement it fully).

https://github.com/dlang/dmd/pull/15307#issuecomment-1620636247

I'm double checking that we are meaning the same thing. Regardless, 
breaking change prevention means I need to check in with you about how 
to move forward.

>> Now if only I could convince you about having reference counting... 
>> that's another lesson that came from it. Good chance I'm going to have 
>> to drop DIP1000/scope if that cross behavior isn't resolved tbh. I can 
>> bare the pain, but I can't ask others to.
> 
> We've investigated ref counting several times, but never figured out a 
> way to make it both efficient and memory safe.

That is not our job.

Efficiency is a problem for the backend to deal with (LLVM/GCC only). 
Doing it with copy constructors and destructors removes all possibility 
of ever optimizing it. They can't be elided, nor be communicated to the 
backend that this is what they are.

Such backends have the capability for other languages like Objective-C. 
We'd need to figure out how to tap into it, but it is there in some form.

Regardless it won't be any worse than what we have now. The only 
difference being is that we'll be able to encode that it is a lifetime 
mechanic in the type system allowing it to override scope and hopefully 
be key to helping get D classes working in -betterC (decoupling it from 
druntime is something I want to look into).



More information about the Digitalmars-d mailing list