Breaking D2 language/spec changes with D1 being discontinued in a month

bearophile bearophileHUGS at lycos.com
Wed Nov 28 07:32:46 PST 2012


Walter Bright:

> I can see creating a stable D2 and a forward D2 for 6 months at 
> a time or so, as has been proposed here. I think that's a good 
> idea. But only after D1 is no longer supported.

I am OK with such ideas. Below there are some musings.

How do you want to call (release numbers) those two D2 versions 
(Stable-D and Development-D)? I prefer a simple Python-like 
numbering scheme, where the second digit denotes significant 
changes (every 6 months?) and the third digit (plus alpha, beta, 
rc1, rc2, rc3, ... suffixes) refers to bug fixes that don't break 
much code. I think such numbering scheme is also able to make D 
look a little more mature and a bit more "professional".

I also think it's a bad idea to create a "D3", at the moment. 
This means I suggest to eventually merge in the Stable-D all the 
changes of Development-D (unless testing of the Development 
version shows that it's better to abandon an idea in both D2 
branches).

I suggest to release Development-D quite often, like every 20-35 
days, if it's possible.

The presence of Development-D should allow for a more relaxed 
development, bug fixing and more. There are several things to 
fix. One of such possible changes is to remove the inliner from 
the D front-end (because ldc2 and gdc2 don't use it). Making the 
front-end a slimmer is good. There are other changes worth 
considering, like aligning D ABI and function calls (as other 
compilers refuse or can't do those things). LDC2 will be probably 
quite used on Windows64bit.

Patches for Development-D should work in both D2 versions, unless 
the changes are about features not yet present in Stable-D.

For simplicity I think the first thing to do to go toward the 
first Stable-D version should be strip away the D1 parts from the 
D2 Git sources, to clean and shorten the D2 code and make its 
updates simpler.

As others have said I think it's better to not keep a single 
Development-D trunk, but branch it when new features (or 
significant changes) are developed (like UDA).

Bye,
bearophile


More information about the Digitalmars-d mailing list