May 21, 2008
Bill Baxter wrote:
> A backward-compatible features-only D1.1 release would serve that, IMHO, important demographic.

I don't think Walter would ever go for it. That doesn't mean someone in the D community couldn't make a compiler for a version of D with only backwards-compatible additions from D2.
May 21, 2008
Bill Baxter wrote:
> Sean Kelly wrote:
>> == Quote from Walter Bright (newshound1@digitalmars.com)'s article
>>> Bill Baxter wrote:
>>>> Any chance we'll be getting a backport of the fix to bug 493 in DMD
>>>> 1.031?   [ http://d.puremagic.com/issues/show_bug.cgi?id=493 ]
>>> I understand your point, and I have mixed feelings about it. The trouble
>>> is, it isn't a stable target if it gets language changes, and everyone
>>> has a different idea on what should be moved from 2.0 to 1.0.
> 
> The majority of available code right now is D1 only.  So if you don't
> want to reinvent lots of wheels, your best bet is D1.  As most everyone
> knows, Tango is D1 only.  Probably the majority of long-timers here are
> still D1 only simply because if you have lots of code that works, moving
> all of it to an unstable D2 is not a very compelling proposition.

> So does it make sense to leave this demographic of heavy D users behind with an aging feature set?

It's not just that. By making _no_ changes to D1.0, it makes later migration to D2.0 more painful. I think migration is an issue that needs more thought. Especially considering that the majority of new code will be developed under D1.0, not D2, probably for a year or so longer.

May 21, 2008
Bill Baxter wrote:
> Walter Bright wrote:
>> Bill Baxter wrote:
>>> Any chance we'll be getting a backport of the fix to bug 493 in DMD 1.031?   [ http://d.puremagic.com/issues/show_bug.cgi?id=493 ]
>>
>> I understand your point, and I have mixed feelings about it. The trouble is, it isn't a stable target if it gets language changes, and everyone has a different idea on what should be moved from 2.0 to 1.0.
> 
> You're worried about existing D1 code that relies on IFTI failing?

No, I'm concerned about different D1 compilers that support different languages.
May 21, 2008
Reply to Walter,

> Bill Baxter wrote:
> 
>> You're worried about existing D1 code that relies on IFTI failing?
>> 
> No, I'm concerned about different D1 compilers that support different
> languages.
> 

For the time being there /are/ no other compilers (that I know of) to worry about unless you count older versions of DMD.

So I'm not so shure that is a big issue.


May 21, 2008
== Quote from Walter Bright (newshound1@digitalmars.com)'s article
> Bill Baxter wrote:
> > Walter Bright wrote:
> >> Bill Baxter wrote:
> >>> Any chance we'll be getting a backport of the fix to bug 493 in DMD 1.031?   [ http://d.puremagic.com/issues/show_bug.cgi?id=493 ]
> >>
> >> I understand your point, and I have mixed feelings about it. The trouble is, it isn't a stable target if it gets language changes, and everyone has a different idea on what should be moved from 2.0 to 1.0.
> >
> > You're worried about existing D1 code that relies on IFTI failing?
> No, I'm concerned about different D1 compilers that support different languages.

But again, how does this represent a language change?


Sean
May 21, 2008
Sean Kelly wrote:
> == Quote from Walter Bright (newshound1@digitalmars.com)'s article
>> Bill Baxter wrote:
>>> Walter Bright wrote:
>>>> Bill Baxter wrote:
>>>>> Any chance we'll be getting a backport of the fix to bug 493 in DMD
>>>>> 1.031?   [ http://d.puremagic.com/issues/show_bug.cgi?id=493 ]
>>>> I understand your point, and I have mixed feelings about it. The
>>>> trouble is, it isn't a stable target if it gets language changes, and
>>>> everyone has a different idea on what should be moved from 2.0 to 1.0.
>>> You're worried about existing D1 code that relies on IFTI failing?
>> No, I'm concerned about different D1 compilers that support different
>> languages.
> 
> But again, how does this represent a language change?

I think the issue is that the spec gives one or maybe two specific examples of when IFTI works[1].  It says "if blah blah blah, then the template parameters will be deduced automatically".  It does not say what happens if *not* blah blah blah.

Plus it does say "implicitly, where the /TemplateArgumentList/ is deduced from the arguments", and not something like "*some or all* of the /TemplateArgumentList/ is deduced".  So I think Walter is right that a literal reading of the spec suggests that this a language change.

But my position is that

A) it just makes sense that if you can deduce them all then you should also be able to deduce just some.  Why wouldn't you be able to?  I never read the spec as saying "this is all that IFTI is intended to do", more like "here's one thing IFTI can do".  Actually the D2 spec doesn't mention this supposedly new feature[2], so that would argue that even Walter didn't see it as a spec change when he added it.

B) this is an important capability for porting D2 algorithms to D1.  The std2 project is halted mostly because of lack of this ability.

C) adding it should introduce little or no errors in existing D1 code since it used to be an error.  -- ok it is /conceivable/ that some code somewhere is using "is(typeof(...))" and counting on it failing when not all template parameters are specified, but I think this is pretty unlikely to affect much code at all.


[1] http://www.digitalmars.com/d/1.0/template.html under "Function Templates"

[2] If it does, I can't find it.  At least D2.0's [1] has the exact same text as D1's.

--bb
May 22, 2008
"Walter Bright" <newshound1@digitalmars.com> wrote in message news:g11ove$181r$1@digitalmars.com...
> Bill Baxter wrote:
>> Walter Bright wrote:
>>> Bill Baxter wrote:
>>>> Any chance we'll be getting a backport of the fix to bug 493 in DMD 1.031?   [ http://d.puremagic.com/issues/show_bug.cgi?id=493 ]
>>>
>>> I understand your point, and I have mixed feelings about it. The trouble is, it isn't a stable target if it gets language changes, and everyone has a different idea on what should be moved from 2.0 to 1.0.
>>
>> You're worried about existing D1 code that relies on IFTI failing?
>
> No, I'm concerned about different D1 compilers that support different languages.

Uh, DMD 1.000 vs. DMD 1.030?


May 22, 2008
"Jarrett Billingsley" <kb3ctd2@yahoo.com> wrote in message news:g12s4e$j26$1@digitalmars.com...
> "Walter Bright" <newshound1@digitalmars.com> wrote in message news:g11ove$181r$1@digitalmars.com...
>> Bill Baxter wrote:
>>> Walter Bright wrote:
>>>> Bill Baxter wrote:
>>>>> Any chance we'll be getting a backport of the fix to bug 493 in DMD 1.031?   [ http://d.puremagic.com/issues/show_bug.cgi?id=493 ]
>>>>
>>>> I understand your point, and I have mixed feelings about it. The trouble is, it isn't a stable target if it gets language changes, and everyone has a different idea on what should be moved from 2.0 to 1.0.
>>>
>>> You're worried about existing D1 code that relies on IFTI failing?
>>
>> No, I'm concerned about different D1 compilers that support different languages.
>
> Uh, DMD 1.000 vs. DMD 1.030?

The point being that _this has already happened_ with, apparently, no real problems.


May 22, 2008
Bill Baxter wrote:
> Sean Kelly wrote:
>> == Quote from Walter Bright (newshound1@digitalmars.com)'s article
>>> Bill Baxter wrote:
>>>> Walter Bright wrote:
>>>>> Bill Baxter wrote:
>>>>>> Any chance we'll be getting a backport of the fix to bug 493 in DMD
>>>>>> 1.031?   [ http://d.puremagic.com/issues/show_bug.cgi?id=493 ]
>>>>> I understand your point, and I have mixed feelings about it. The
>>>>> trouble is, it isn't a stable target if it gets language changes, and
>>>>> everyone has a different idea on what should be moved from 2.0 to 1.0.
>>>> You're worried about existing D1 code that relies on IFTI failing?
>>> No, I'm concerned about different D1 compilers that support different
>>> languages.
>>
>> But again, how does this represent a language change?
> 
> I think the issue is that the spec gives one or maybe two specific examples of when IFTI works[1].  It says "if blah blah blah, then the template parameters will be deduced automatically".  It does not say what happens if *not* blah blah blah.
> 
> Plus it does say "implicitly, where the /TemplateArgumentList/ is deduced from the arguments", and not something like "*some or all* of the /TemplateArgumentList/ is deduced".  So I think Walter is right that a literal reading of the spec suggests that this a language change.

My understanding of IFTI was that it was intended to eventually work a lot like IFTI in C++.  Walter has certainly said as much in the past, at any rate.  So I don't accept that we should have read between the lines in the spec regarding this.  Besides, if a strict interpretation of the spec were required then I'd expect D 1.0 to have things like inheritable contracts--a feature which may never actually make it into the language at all, despite requests.


Sean
May 22, 2008
Jarrett Billingsley wrote:
> "Jarrett Billingsley" <kb3ctd2@yahoo.com> wrote in message news:g12s4e$j26$1@digitalmars.com...
>> "Walter Bright" <newshound1@digitalmars.com> wrote in message news:g11ove$181r$1@digitalmars.com...
>>> Bill Baxter wrote:
>>>> Walter Bright wrote:
>>>>> Bill Baxter wrote:
>>>>>> Any chance we'll be getting a backport of the fix to bug 493 in DMD 1.031?   [ http://d.puremagic.com/issues/show_bug.cgi?id=493 ]
>>>>> I understand your point, and I have mixed feelings about it. The trouble is, it isn't a stable target if it gets language changes, and everyone has a different idea on what should be moved from 2.0 to 1.0.
>>>> You're worried about existing D1 code that relies on IFTI failing?
>>> No, I'm concerned about different D1 compilers that support different languages.
>> Uh, DMD 1.000 vs. DMD 1.030?
> 
> The point being that _this has already happened_ with, apparently, no real problems. 

Walter's argument could apply to really any bug fix anyway, because they all affect compiler behavior.  I think what's important is to determine what the intended feature set was for D 1.0 and decide based on that. Clearly, we all thought that IFTI would eventually work as advertised in D 1.0, and perhaps Walter does not agree.  What worries me is that long asked-for bug fixes like this may be left out of DMD 1.0 as a way to "encourage" people to move to D 2.0.  If that happens, I'm out.


Sean