Rebooting the __metada/__mutable discussion

Zach Tollen zach at mystic.yeah
Sun Apr 10 04:12:08 UTC 2022


On Sunday, 10 April 2022 at 03:37:03 UTC, Bruce Carneal wrote:
> On Sunday, 10 April 2022 at 00:04:43 UTC, Zach Tollen wrote:
>> On Saturday, 9 April 2022 at 17:22:38 UTC, Timon Gehr wrote:
>>
> I've read your posts, and the replies from Timon.  Since 
> Timon's careful and clear posts did not reach you, I'll 
> summarize my take on your posts below rather than attempt a 
> similarly detailed correction/illumination of your latest 
> (which would, most probably, be a poor use of time for both of 
> us, certainly for me)
>
> Summary response:
>
> I find your posts to be very enthusiastic but also (very) 
> poorly reasoned.  I'd suggest working on that with someone you 
> look up to.  It's very hard to improve on your own if you 
> don't, evidently, understand that you could and should do much 
> better.

Well thanks for your interest, at any rate. And your honesty.

Out of curiosity, do you have an opinion of 
[DIP1035](https://github.com/dlang/DIPs/blob/72f41cffe68ff1f2d4c033b5728ef37e282461dd/DIPs/DIP1035.md)? At least intuitively, I feel like the essence of it should run: "Some variables are dangerous, but the compiler can't figure that out. Therefore we allow those variables to be marked `@system` so they are treated as unsafe."

But there are other parts of DIP1035 (initializing globals to 
unsafe values, and also, an entire aggregate is unsafe if a 
single member is unsafe) which seem to be about *inferring* 
certain things to be unsafe as opposed to helping the compiler to 
*determine* what is unsafe. My interest in merging the two DIPS 
came almost entirely from seeing the value in the "help the 
compiler learn what is unsafe" side, and I thought the "inferring 
things unsafe" side could be handled separately. (The 
helping-the-compiler side is eloquently illustrated in the one of 
the DIP's linked [videos](https://youtu.be/O3TO52rXLug) by Steven 
Schveighoffer. That's where I got my understanding of what I 
thought the essence of DIP1035 *should* be about. Of course, 
that's no reason to arbitrarily merge the two features, `@system` 
and `__metadata`. But it might make it easier to explain why I 
thought it was possible.)



More information about the Digitalmars-d mailing list