June 16, 2015
On 6/15/2015 7:51 AM, Jonathan M Davis wrote:
> [...]

I have yet to see a single case of "needing" boolean versions that could not be refactored into something much more readable and maintainable that did not use such.

Over time, I've gotten rid of most of that stuff from the dmd source code, and the result has been quite pleasing.
June 16, 2015
On Tuesday, 16 June 2015 at 10:05:05 UTC, Walter Bright wrote:
> It does not allow multiple inheritance.

I have often heard from Lisp programmers that the rejection of multiple inheritance is a weakness. They believe that it's well implemented in Lisp, and developers of other languages can not solve the problem of the diamond.
June 16, 2015
On Tuesday, 16 June 2015 at 10:39:48 UTC, Dennis Ritchie wrote:
> On Tuesday, 16 June 2015 at 10:05:05 UTC, Walter Bright wrote:
>> It does not allow multiple inheritance.

Unfortunately not true, you're adding multiple alias this…

> I have often heard from Lisp programmers that the rejection of multiple inheritance is a weakness. They believe that it's well implemented in Lisp, and developers of other languages can not solve the problem of the diamond.

You probably refer to CLOS and not proper Lisp.

C++ has multiple inheritance and "solves" it, but most C++ programmers try to avoid multiple inheritance anyway. So why would D be better with it?

June 16, 2015
On Tuesday, 16 June 2015 at 09:55:34 UTC, Walter Bright wrote:
> On 6/13/2015 6:51 PM, Steven Schveighoffer wrote:
>> Just use the static if trick.
>
> Someone had used the static if trick in druntime. It caused some weird dependency bugs. I removed it - it turned out to be confusing, buggy, and wholly unnecessary.

Are you referring to this? https://github.com/D-Programming-Language/druntime/commit/54ca71b154fd9476520a63e30a50980af8927a56

If yes, I would claim that this is hardly relevant to this discussion, but I couldn't find any other druntime commits where you changed static ifs.

 - David
June 16, 2015
On Tuesday, 16 June 2015 at 09:55:34 UTC, Walter Bright wrote:
> On 6/13/2015 6:51 PM, Steven Schveighoffer wrote:
>> Just use the static if trick.
>
> Someone had used the static if trick in druntime. It caused some weird dependency bugs. I removed it - it turned out to be confusing, buggy, and wholly unnecessary.

Probably because of this forward referencing bug with "static if," which I've run into myself:

https://issues.dlang.org/show_bug.cgi?id=3743

I agree with you about using version and I applaud your attempt to centralize such version logic, just pointing out that bugs in the implementation of "static if" are not a good way to enforce this. ;)
June 16, 2015
On Tuesday, 16 June 2015 at 13:16:40 UTC, Ola Fosheim Grøstad wrote:
> Unfortunately not true, you're adding multiple alias this…

Excuse me for what I am trying to avoid overquoting :)

> You probably refer to CLOS and not proper Lisp.

CLOS was adopted as part of the standard ANSI Common Lisp. What is interesting to know ANSI Common Lisp is wrong?

> C++ has multiple inheritance and "solves" it, but most C++ programmers try to avoid multiple inheritance anyway. So why would D be better with it?

In different languages rhombus problem is solved in different ways. And C++ is not the best case in point, where the problem is solved well.

Of course, most of the C++-programmers avoid multiple inheritance, but the other part, which uses it at least a little, what a tie that does not use it.

D - this is not the language of minimalist (for example, Go) :) We had to implement multiple inheritance, without relying on C++. IMO.
June 16, 2015
On 6/16/2015 6:28 AM, David Nadlinger wrote:
> On Tuesday, 16 June 2015 at 09:55:34 UTC, Walter Bright wrote:
>> On 6/13/2015 6:51 PM, Steven Schveighoffer wrote:
>>> Just use the static if trick.
>>
>> Someone had used the static if trick in druntime. It caused some weird
>> dependency bugs. I removed it - it turned out to be confusing, buggy, and
>> wholly unnecessary.
>
> Are you referring to this?
> https://github.com/D-Programming-Language/druntime/commit/54ca71b154fd9476520a63e30a50980af8927a56
>
>
> If yes, I would claim that this is hardly relevant to this discussion, but I
> couldn't find any other druntime commits where you changed static ifs.
>
>   - David

No, there was another one, but I don't remember the details.
June 16, 2015
On 2015-06-16 12:05, Walter Bright wrote:

> Actually, D does quite a bit of that. For example, it deliberately does
> not allow > to be overloaded separately from <.

Which has its own limitations [1].

[1] https://issues.dlang.org/show_bug.cgi?id=14593

-- 
/Jacob Carlborg
June 16, 2015
On Tuesday, 16 June 2015 at 19:55:21 UTC, Jacob Carlborg wrote:
> On 2015-06-16 12:05, Walter Bright wrote:
>
>> Actually, D does quite a bit of that. For example, it deliberately does
>> not allow > to be overloaded separately from <.
>
> Which has its own limitations [1].
>
> [1] https://issues.dlang.org/show_bug.cgi?id=14593

Sounds like it's preventing an abuse of operator overloading to me... :)

- Jonathan M Davis
June 16, 2015
On Tuesday, 16 June 2015 at 20:36:20 UTC, Jonathan M Davis wrote:
> On Tuesday, 16 June 2015 at 19:55:21 UTC, Jacob Carlborg wrote:
>> On 2015-06-16 12:05, Walter Bright wrote:
>>
>>> Actually, D does quite a bit of that. For example, it deliberately does
>>> not allow > to be overloaded separately from <.
>>
>> Which has its own limitations [1].
>>
>> [1] https://issues.dlang.org/show_bug.cgi?id=14593
>
> Sounds like it's preventing an abuse of operator overloading to me... :)
>
> - Jonathan M Davis

You call it abuse, I call it developer freedom.