On 2011-07-13 13:58, filgood wrote:
> Jonathan,
> 
> Given that D2 is now the main version, would it not be possible - maybe
> in the future - if big changes like the CTFE work by Don are planned to
> bring to do this in a 2.1 release of D (and once stable bump to a 2.2
> release or so)... While the big changes happen in 2.1, the 2 releases
> would only hold bug fixes?

D versioning doesn't work that way. Currently, we have 1.069 for D1 and 2.054 
for D2. The next version of D2 will be 2.055. I don't know exactly what 
Walter's plans are, but it looks to me like the idea is that 2.100 will follow 
2.099. But regardless, D is still in development, and CTFE happens to be one 
one of its less stable elements. A lot of work is being done on it, and it 
will probably stabilize relatively soon, but until it does, I don't expect 
that we'll be making any guarantees about what will or won't be CTFEable. 
Certainly, Don has been opposed to such suggestions thus far. I hope that once 
it's more stable, we'll be able to have unit tests in Phobos to guarantee that 
at least some set of functions stay CTFEable if they're already CTFEable, but 
we're just not going to make any such guarantees before CTFE is more stable.

Not to mention, while most stuff in D is relatively stable, and the language 
spec really shouldn't be changing much - if at all - at this point, both the 
compiler and libraries are still under heavy development. Breaking changes 
should be rare, but they do happen. And newer and/or fancier features are the 
ones which are most likely to break. CTFE happens to be one of them. There are 
a couple of others (alias this and inout) which aren't even completely 
implemented yet. So, it's questionable if talking about D2 as if it were 
stable is a good idea. It's getting close. IIRC, in a recent discussion on it, 
Don thought that it would reach that point before the end of the year, but 
some features just aren't yet stable enough to be guaranteed to continue to 
work exactly as they do now. Fortunately, that list should be rather short. 
But CTFE is on it.

So, we're not going to fork D2 at this point and have a 2.0 which only has bug 
fixes and 2.1 which has new features. We're fast approaching the point where 
what we have will be stable and there shouldn't be any big breaking changes 
(big breaking changes are actually pretty rare as it is at this point), but 
we're not going to effectively fork development to provide a more stable 
branch for a feature for which we're not yet giving guarantees about its 
stability.

I _do_ think that having unit tests in Phobos for CTFEability is a good idea, 
but until Don says that CTFE is stable enough for that, we're not going to do 
it. I believe that he's on vacation at the moment (which is presumably why he 
hasn't said anything on this thread), and maybe he can be persuaded once he's 
back, but the last time that he had anything to say about it, he was against 
the idea.

- Jonathan M Davis

Reply via email to