D1 to be discontinued on December 31, 2012

Jakob Bornecrantz wallbraker at gmail.com
Wed Dec 14 16:32:35 PST 2011


On Wednesday, 14 December 2011 at 18:55:23 UTC, Walter Bright 
wrote:
> On 12/14/2011 10:28 AM, Jakob Bornecrantz wrote:
>>> I don't know where the D1 community is, or even if it exists 
>>> anymore.
>>
>> I'm here!
>
> Thanks for speaking up.

np.

>> Anyways couldn't you just do releases less often or only when 
>> there is something to release? Like every other D2 release to
>> lessen the burden?
>
> Can I turn that around and ask what issues there are with 
> migrating your code base to D2?

In short it can be answered with the questions "Can you
guarantee it work?" and "Can I justify the amount of work I have
to put in for the gain?", the thing is I have a had a lot of
problems with D1 toolchain, I have fixed or worked around these
issues and I'm wondering if I have to work around those or other
again. I am currently supporting 3 platforms (Mac, Linux &
Windows), so that factors in as well (me having fixed some
issues on Mac for D1).

My current code base is 40Kloc's where about 8Kloc of those
are library bindings, on top of that it also includes a couple
of C projects sources (expat, lua and some other misc
libraries). So I would have to convert all that code to D2 and
also fix any issues that might arise from that conversion.
That said I think that it would mostly running the code
through dmd2 and just fix any cases where it complains. But it
probably wouldn't be a trivial amount of work.

I don't use Phobos that much in my code so I wont have to
change much code with that regards, then again I don't see much
value of the new Phobos since there isn't much new there for me.
In fact I sort of have a philosophical disagreement with the
boost/templet-ification of it and the language in general.

Also in the beginning when I was using D1 and it moved much
more faster I would often find myself having to work around
or change various parts of the program due to new bugs or
features. I think D2 is much better in the bug department then
D1 was so that isn't much of a issue, but its still not really
stable and its more work for me.


That said there are a couple of features that if they where
implemented in D2 would encourage me to switch.

One of the biggest problem right now is that I can't build
my project on Windows and is forced to cross compile it with GDC
from Linux. This stems from me having a mixed C & D project and
not getting the various compilers to get along (Both DMD & DMC
and GDC & GCC, would either not compile or produce broken
binaries). So making DMD work with the mingw toolchain on
Windows would be really appreciated (COFF support right?).

Improvements to the GC, I'm currently having to thread lightly
around various issues with the GC, again its works currently so
I don't want to work around it again. Adopting a two step
approach employed by GObject would might help.
http://developer.gnome.org/gobject/stable/gobject-memory.html


All said and done, knowing what I know today I would probably
not do the project in D1, but I have thrown my dice and I'm
"stuck" (not used strongly here, I still like a lot of D), but
I'm not sure I would want to go through all that pain again
with D2. As Andrie have said D has a tendency to come unglued
when you start to do advanced thing, and the language dies a
death of a thousand paper-cuts (and some knife stabs).

*phew*

I do appreciate the work you have put into D over the years,
I just don't want to have meaningless battles with language/-
compiler bugs. I hope this message is useful for you.

Cheers, Jakob.


More information about the Digitalmars-d mailing list