version: multiple conditions

Jonathan M Davis via Digitalmars-d digitalmars-d at puremagic.com
Mon Jun 15 07:51:39 PDT 2015


On Sunday, 14 June 2015 at 11:26:23 UTC, Ola Fosheim Grøstad 
wrote:
> On Sunday, 14 June 2015 at 11:05:36 UTC, ketmar wrote:
>> p.s. i.e. it boils down to simple thing: Walter don't like it. 
>> period.
>> any rationalizing of that is pointless.
>
> The most sensible thing to do with all these may/may not be an 
> improvement and also the break/don't break my code issues is to 
> create an experimental branch of DMD after the transition from 
> C++ to D is finished. Then merge back the good stuff after 
> several iterations of improvement.
>
> I'm sure Walter will be much more open to changes if there is a 
> proven demand for it, e.g. if people rave about certain 
> features in an experimental branch. Changing the main branch 
> with "might be a little bit better" changes is a hard sell when 
> competing languages are going stable.

Walter is _very_ firm on this issue, and I very much doubt that 
he will ever change his mind. He is convinced that using 
condition-based versioning as frequently occurs in C is almost 
never done correctly and that it's a horrible idea and that it's 
far better to separate out each version into its own version 
block, even if that means duplicating code. It came up again at 
dconf, and again, he gave his reasons and outright refused to 
even consider changing it. And I don't think that he's very happy 
that folks have started using static if blocks to get around the 
restrictions in version blocks (but given the general nature of 
static if blocks, it's not like he can stop folks). He's 
absolutely convinced that using conditional expressions in 
version blocks is a fundamentally bad design and that anyone 
who's doing anything like it is just begging for trouble.

So, it really doesn't matter how many folks think that allowing 
arbitrary conditions in version blocks - or even or-ing versions 
in version blocks - is something that we should have. Walter is 
absolutely convinced that changing how version blocks in D work 
would be detrimental to the language, and ultimately, he's the 
one in charge. I think that it's pretty clear that spending any 
time trying to get it changed is simply a waste of your time. 
Language stability has nothing to do with it, and it really 
doesn't matter how many users want it.

- Jonathan M Davis


More information about the Digitalmars-d mailing list