May 12, 2019
On 5/12/19 1:34 PM, Nicholas Wilson wrote:
> However in this case the community consensus is that the chain of reasoning you have used to arrive at your decision is wrong.

It's a simple enough matter to be understood, and reasonable to assume Walter is not missing any important facts or details. Poking holes in his explanations is, I confess, attractive, but ultimately are about debate skills rather than technical. I do agree that the way explanations on DIP decisions go could and should be improved a lot.
May 12, 2019
On Sunday, May 12, 2019 8:50:33 AM MDT Andrei Alexandrescu via Digitalmars- d-announce wrote:
> On 5/12/19 1:34 PM, Nicholas Wilson wrote:
> > However in this case the community consensus is that the chain of reasoning you have used to arrive at your decision is wrong.
>
> It's a simple enough matter to be understood, and reasonable to assume Walter is not missing any important facts or details. Poking holes in his explanations is, I confess, attractive, but ultimately are about debate skills rather than technical. I do agree that the way explanations on DIP decisions go could and should be improved a lot.

Really, what it comes down to is that Walter has a very different view on what a bool is and what it means than many in the community. His explanation makes it clear why he made the decision that he made. Many of us don't agree with the decision, because we view bool and its purpose very differently, but unless someone has an argument that would actually convince Walter to look at bools differently, it's a pretty pointless discussion. It's frustrating, and many of us do think that D is worse than it could be because of the decision, but ultimately, Walter is the one in charge, and that's just how it goes. This just highlights how the language is ultimately controlled by the one or two people at the top and not by the community at large. It's not a democracy, which on the whole is a good thing. If all language decisions were made by majority vote, the language would be an utter mess. But that does have the downside that sometimes something that many people want doesn't happen, because those in charge don't agree. Such is life. Fortunately, in the grand scheme of things, while this issue does matter, it's still much smaller than almost all of the issues that we have to worry about and consider having DIPs for.

Personally, I'm not at all happy that this DIP was rejected, but I think that continued debate on it is a waste of everyone's time.

- Jonathan M Davis



May 12, 2019
On Sunday, 12 May 2019 at 17:08:49 UTC, Jonathan M Davis wrote:
> ... snip ...
> Fortunately, in the grand scheme of things, while this issue does matter, it's still much smaller than almost all of the issues that we have to worry about and consider having DIPs for.
>
> Personally, I'm not at all happy that this DIP was rejected, but I think that continued debate on it is a waste of everyone's time.

Agreed. I too have never liked numeric values equated to true/false, in any programming language. However, it is very common. And, relative to other the big ticket items on the table, of minor importance. Changing the current behavior won't materially affect the usability of D or its future. This is a case where the best course is to make a decision move on.

--Jon

May 12, 2019
On Sunday, 12 May 2019 at 14:50:33 UTC, Andrei Alexandrescu wrote:
> On 5/12/19 1:34 PM, Nicholas Wilson wrote:
>> However in this case the community consensus is that the chain of reasoning you have used to arrive at your decision is wrong.
>
> It's a simple enough matter to be understood, and reasonable to assume Walter is not missing any important facts or details. Poking holes in his explanations is, I confess, attractive, but ultimately are about debate skills rather than technical. I do agree that the way explanations on DIP decisions go could and should be improved a lot.

Then let me rephrase my complaints as a question (to you, Walter and the community):

At what level of egregiousness of the degree to which the unanimous community consensus believes both your decision and chain of reasoning are fundamentally wrong, do we, the community, decide to reject your position completely and implement the community consensus?
May 12, 2019
On Sunday, 12 May 2019 at 10:58:49 UTC, Andrei Alexandrescu wrote:
> Bringing it up over and over again, like a perennial fight in a marriage, with the hope of finally convincing the spouse on the wrongness of their views - that all is wasted time.
>
> There's a bunch of big rocks to move.

I take it from this response you mean, once a DIP is rejected it would never be looked at again, even if a second DIP was created for the same purpose with different arguments?

So changes like this one should be reversed then? https://github.com/dlang/phobos/pull/5343

And isIntegral should also be updated to include bool? Where is the line drawn? Should it be treated like an integral only in the language but not in phobos?
May 12, 2019
On Sun, May 12, 2019 at 01:20:16PM +0000, Mike Franklin via Digitalmars-d-announce wrote: [...]
> If anyone's looking for a challenge, I welcome them to propose a new `Bool` type (note the capital B) for inclusion in my new library.
[...]

As long as && and || continue to evaluate to a 1-bit integer, all library efforts to implement Bool will be futile.


T

-- 
Never ascribe to malice that which is adequately explained by incompetence. -- Napoleon Bonaparte
May 13, 2019
On Saturday, 11 May 2019 at 07:53:36 UTC, Mike Parker wrote:
> Anyone interested in the AGM can watch it at the following link. You can leave feedback there, in IRC, or in Discord.
>
> https://youtu.be/cpTAtiboIDs

Will there be a plan to revive the dip 1017 - add a Bottom type and submit a stronger proposal thanks to the Human Resource Fund?
May 13, 2019
On Sunday, May 12, 2019 2:58:58 PM MDT Nicholas Wilson via Digitalmars-d- announce wrote:
> On Sunday, 12 May 2019 at 14:50:33 UTC, Andrei Alexandrescu wrote:
> > On 5/12/19 1:34 PM, Nicholas Wilson wrote:
> >> However in this case the community consensus is that the chain of reasoning you have used to arrive at your decision is wrong.
> >
> > It's a simple enough matter to be understood, and reasonable to assume Walter is not missing any important facts or details. Poking holes in his explanations is, I confess, attractive, but ultimately are about debate skills rather than technical. I do agree that the way explanations on DIP decisions go could and should be improved a lot.
>
> Then let me rephrase my complaints as a question (to you, Walter
> and the community):
>
> At what level of egregiousness of the degree to which the unanimous community consensus believes both your decision and chain of reasoning are fundamentally wrong, do we, the community, decide to reject your position completely and implement the community consensus?

Anyone is free to fork the language at any time, but unless you're going to try to get Walter to step down, he's in charge of D, and he has the final say. It's obviously problematic if he makes a bad decison and no one can convince him otherwise, but if you can't convince him of something, and you're so convinced that he's wrong that you want to effectively take the decision away from him, then that basically comes down to forking the language or getting him to step down. The language and its implementation are certainly a cooperative effort, but ultimately, it's not a democracy. Walter is the one in charge, and it's his decision. He's chosen to share his position on some level with Andrei (and now Atila), but it's his language.

Personally, I think that bool should never be treated as an integral value rather than always treated as an integral value or partially treated as an integral value. The current behavior is arguably a bad legacy from C/C++, and it definitely causes bugs. So, I'm quite disappointed with the rejection of this DIP. But I honestly don't think that this is a big enough issue to effectively start discussing how or when we take the decision making power away from Walter. Unless someone can come up with a way to convince Walter to view bools differently (which I very much doubt is going to happen), I think that it's quite clear that we're just going to have to learn to continue to live with the status quo on this issue.

- Jonathan M Davis



May 13, 2019
On Sunday, 12 May 2019 at 05:43:01 UTC, Walter Bright wrote:
> All this effort strongly implies that there's no such thing as a satisfactory bool type. Will you succeed where 10,000 other programmers have failed? Seems unlikely. But I doubt I will dissuade you from trying.
>

If you succeed at implementing bool, nobody debates it. As such, the huge debates are intrinsically of people failing at implementing bool. A successful boolean implementation is invisible.

> So what does work reasonably? Treating it like a small integer.

Yes, because it's clearly succeeding at avoiding huge forum debates...

May 13, 2019
On 5/12/19 11:46 PM, H. S. Teoh wrote:
> On Sun, May 12, 2019 at 01:20:16PM +0000, Mike Franklin via Digitalmars-d-announce wrote:
> [...]
>> If anyone's looking for a challenge, I welcome them to propose a new
>> `Bool` type (note the capital B) for inclusion in my new library.
> [...]
> 
> As long as && and || continue to evaluate to a 1-bit integer, all
> library efforts to implement Bool will be futile.

When writing std.typecons.Ternary I thought of overloading opBinary for | and & to take a lazy argument on the right. I forgot why I ended up not doing it (I think it was because of code generation issues). This is something that could be made to work.