D versionning

deadalnix deadalnix at gmail.com
Thu Jul 12 10:33:09 PDT 2012


On 12/07/2012 19:31, Iain Buclaw wrote:
> 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!"
>
>

No, user will need backward compatible support for any real life work.


More information about the Digitalmars-d mailing list