D1 to be discontinued on December 31, 2012

Robert Clipsham robert at octarineparrot.com
Thu Dec 15 09:49:05 PST 2011


On 15/12/2011 00:32, Jakob Bornecrantz wrote:
> 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.

Having migrated a far smaller codebase from D1/Tango to D2/Phobos, here 
are some tips/things I encountered:

* Most of the effort in porting was dealing with the lack of features in 
phobos, this sounds like it wouldn't be an issue for you though since 
you're using D1/Phobos.
* Make sure all your code is thoroughly unittested - my code had a 
reasonable amount of unittests, but I was still discovering subtle bugs 
months later that were caused by the transition
* Do it all in one go, and DO NOT GET DISTRACTED. The moment you start 
trying to clean up code as well as finish porting it you introduce lots 
of issues
* Some things will inevitably have to change to get them working... 
Don't make the changes while you're porting, just drop in a /* TODO: 
<This needs to work like X, not Y> */ comment and come back to it later. 
Get it compiling first, then go through and sort things out later.

Hope this helps, should you decide to transition :)

-- 
Robert
http://octarineparrot.com/


More information about the Digitalmars-d mailing list