Andrei Alexandrescu schrieb:
On 10/10/10 20:59 CDT, Jonathan M Davis wrote:
On Sunday 10 October 2010 17:27:55 Daniel Gibson wrote:
bioinfornatics schrieb:
LDC support 64 bit ;)
as well as GDC.
But both currently lack an up-to-date D2 compiler (but the GDC guys are
at least working on it, seems like they're currently at 2.029 - which is
great - about 3 months ago they were still at 2.018 and in between was
the big 2.020 update that introduced druntime).
I agree with walter that 64bit support in DMD is very important,
especially for D2: I started a project a few months ago that might have
benefited from D2s features (especially ranges), but I decided to use D1
because no 64bit compiler for D2 was in sight.
I am btw a bit worried about "upgrading" code from D1 to D2 some day
because of the heavy (still ongoing) changes, especially in phobos.
I read that for example std.stream is going to be deprecated and
replaced by either something with ranges or something like std.stdio
(whoever was right about that, maybe even both?). This means that all my
(file/network) IO-Code would have to be rewritten sooner or later..
But, currently lacking an alternative to std.stream/std.socketstream for
networking, I would have had the same problems even if I had started the
project with D2...
A stream solution is in the works (it's discussed periodically on the
Phobos
list), but they haven't sorted out quite what they want to do with it
yet. The
Phobos API in general is in flux, though pieces of it are likely to
stay more or
less unchanged from what they currently are. But there's far from any
kind of
guarantee that much of anything from the D1 Phobos is going to survive
in the D2
Phobos. They're looking to make Phobos as good as they can, and they
aren't yet
worried about keeping its API stable (though they don't make changes
unless they
think that it's actually benificial, so things don't change
willy-nilly). I'm
sure that the time will come, however, when Phobos' API will
stabilize, and
projects will be able to rely on it staying the same.
I think that the reality of the matter is that porting D1 code to D2
code is
going to be just like, if not exactly like, porting code from one
library to
another rather than an upgrade like you'd get between Qt3 and Qt4
(which had
plenty of changes). I'm sure that the split between D1 and D2 is going
to cause
a lot of problems for people looking to port code from one to the
other, but it
will be better for newly written code, so it's a definite tradeoff. I
wouldn't
look forward to porting a project from D1 to D2 though.
I think it's a bit hasty to speak on behalf of all of Phobos'
participants. Phobos 2 is indeed different from Phobos 1 but
backward-incompatible changes to Phobos 2 are increasingly rare.
Andrei
But parts of phobos are deprecated or will be deprecated and there still
is no alternative for them.
That may prevent people from writing "real" projects in D2 (or D at all)
- who wants to use classes that will be deprecated soon?
Sure, that old stuff will not be removed and can still be used, but I
personally feel a bit uncomfortable with using deprecated code.
Cheers,
- Daniel