D is dead

Walter Bright newshound2 at digitalmars.com
Thu Aug 23 12:03:59 UTC 2018


On 8/23/2018 4:31 AM, Shachar Shemesh wrote:
> None of that continues to work once delegates are involved. I am yet to see a 
> library that can accept a delegate and correctly create a function around it 
> that matches its attributes.
> 
> And yes, I do include Mecca in this. I tried. It is too difficult to get right, 
> so I gave up.
> 
> Attribute inference was supposed to solve this, but attribute inference is 
> completely broken with separate compilation.

I'd like to see an example so I can understand exactly what you're having 
trouble with.


>> This is in the language spec:
> How many people know that without resorting to the specs.

This is a little unfair. It's plainly stated in the documentation for foreach. 
Heck, I wrote a C compiler and the library for it, and yesterday I had to look 
up again how strncmp worked. I refer to the documentation regularly. Back when I 
designed digital circuits, I had a well-worn TTL data book on my desk, too. If 
it wasn't documented, or documented confusingly, it would be a fair point.


>>> Does it matter if it allows copying or not?
>> For the preference for opApply, no.
> But it does for empty/front/popFront, which is exactly my point.

If front() returns by ref, then no copying happens. If front() returns by value, 
then a copy is made. This should not be surprising behavior.


>> If you're referring to #14246, I posted a PR for it. I don't see how that is 
>> pretending it isn't a problem. It is.
> When I first reported this, about 3 and a half years ago, the forum explained to 
> me that this is working as expected.

The forum can be anyone saying anything. A more reliable answer would be the 
bugzilla entry being closed as "invalid", which did not happen.


> #14246 was over 2 years old by the time you posted the PR. Once posted, however, 
> it broke (I'm not sure why it broke, but did notice it deliberately would not 
> work with @disable init structs. See my interoperability comment from above). 
> Since then (over a year), no progress has been made except to revert the 
> changelog that claims it was resolved.

The problem was calling other destructors that had different attributes, such as 
the constructor being @safe but calling a destructor that was not. It's not an 
intractable problem, but I work on critical problems every day. It's just that 
everybody has a different issue that is critical to them.


> So you will excuse me, but I don't think this bug is being taken as seriously as 
> I think it should.

It is a serious problem. (There are workarounds available, like using 
scope(failure).)

I'd appreciate a list of bugzilla issues you regard as critical to your operations.


More information about the Digitalmars-d mailing list