D versionning

Iain Buclaw ibuclaw at ubuntu.com
Thu Jul 12 10:31:12 PDT 2012


On 12 July 2012 17:49, deadalnix <deadalnix at gmail.com> wrote:
> One thing PHP has been good at is evolving, and introducing change in the
> language (some can argument that the language is so fucked up that this is
> unavoidable, so I do it now and we can discuss interesting topic).
>
> I discussed that system with Rasmus Ledorf at afup 2012 and it something
> that D should definitively look into.
>
> The const vs OOP discussion have shown once again that D will have to
> introduce breaking changes in the language. This isn't easy matter because
> if we break people code, D isn't attractive. But as long as code isn't
> broken, D people can't worked on what's next and it slows down D progress.
>
> The system adopted in PHP works with a 3 number version. The first number is
> used for major languages changes (for instance 4 > 5 imply passing object by
> reference when it was by copy before, 5 > 6 switched the whole thing to
> unicode).
>
> The second number imply language changes, but either non breaking or very
> specific, rarely used stuff. For instance 5.2 > 5.3 added GC, closures and
> namespace which does not break code.
>
> The last one is reserved for bug fixes. Several version are maintained at
> the same time (even if a large amount of code base is common, so bug fixes
> can be used for many version at the time).
>
> We should leverage the benefit of having switched to git to go in that way.
> We can start right now D2.1.xx with the opX dropped from object and see how
> it goes without requiring everybody to switch now.
>
> Such a system would also permit to drop all D1 stuff that are in current DMD
> because D1 vs D2 can be chosen at compile time on the same sources.
>
> git provide all we need to implement such a process, it is easy to do it
> soon (after 2.060 for instance) because it doesn't imply drastic changes for
> users.

Might as well just say "Lets start D3 now - Let's drop all features
that have been deprecated since 0.103 - everyone make a hype and
party!"


-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';


More information about the Digitalmars-d mailing list