On 9/7/2011 2:19 AM, Jacob Carlborg wrote:
On 2011-09-06 19:05, Daniel Murphy wrote:
"Andrei Alexandrescu"<seewebsiteforem...@erdani.org> wrote in message
news:j45isu$2t3h$1...@digitalmars.com...

Yah, I also think the documentation makes it easy to clarify which
module
is the preferred one.

I think there's a lot of merit to simply appending a '2' to the module
name. There only place where the '2' occurs is in the name of the
module,
and there aren't many modules we need to replace like that.

I still can never remember if I'm supposed to be using std.regex or
std.regexp.
When the new one is finished are we going to have 3?

It's definately benificial to avoid breaking code, but I really disagree
that phobos has reached that point yet. The breaking changes need to
stop,
but stopping prematurely will leave phobos permanently disfigured.

I agree.



In the COM based land for D3D, there is just a number tacked onto the class name. We are up to version 11 (e.x. ID3D11Device). It works well and is definitely nicer once you are used to it, than calling everything New or FunctionEx, and left wondering what to do when you rev the interface again. Once you solve making 3 versions of an interface work cleanly, nice it should be a good system.

Making all the modules versioned in some way would probably be ideal. The way linux shared libraries are linked could be used as a model, just make the 'friendly unversioned' module name an alias of some sort to the latest version of the library. Any code needing the older version can specify it explicitly. An approach like this would need to be done within D, as symbol links are a problem for some platforms (though at least its possible on windows these days).

Reply via email to