ldc2: Current State?

Jordi jordi at rovira.cat
Sun Dec 12 00:44:19 PST 2010


On 12/08/2010 09:18 PM, Jordi wrote:
> On 12/08/2010 06:13 AM, Iain Buclaw wrote:
>> == Quote from Robert Clipsham (robert at octarineparrot.com)'s article
>>> On 06/12/10 18:27, dsimcha wrote:
>>>> Apparently LDC2 is being actively worked on
>>>> (http://bitbucket.org/prokhin_alexey/ldc2/) and is up to date with
>>>> the latest
>>>> D2 reference compiler. I have not been able to get it to actually work,
>>>> though I haven't tried very hard and don't remember the details of
>>>> why it
>>>> didn't work. Is LDC2 in a mature enough state that people should
>>>> actually try
>>>> to use it? (I know the main LDC page says it isn't, but that seems
>>>> rather
>>>> outdated, since it hasn't been updated in ages.) Has anyone else
>>>> used it at
>>>> all successfully yet?
>>> Without having used it, I can guarantee it is not - I was the last
>>> person to work on it while it was in the main ldc branch, and have been
>>> following its development in the new repository - there simply hasn't
>>> been enough (commit wise) for it to be workable yet. This said, it is
>>> possible that it's on par with D1, I haven't looked in enough detail to
>>> see if that is the case though.
>>> If you're looking for a non-dmd D2 compiler, GDC is currently the
>>> closest, I'm not sure what its current status is (I'm sure Iain will
>>> know) - I'm led to believe it can already compile a nice chunk of (its
>>> own branch of) phobos though.
>>
>> Phobos2 in GDC is mostly a mirror of phobos hosted on dsource, with
>> some GDC-specific changes here and there to emphasize on the
>> different implementation details ie: most functions in core.stdc.math
>> are all aliases to GCC builtins. A recent changeset made it
>> possible for all GCC builtins to be CTFE'able now too, so as well as
>> enum FOO = sqrt(2) now working (thus meeting an expected
>> requirement), you can go a little more wild and throw other functions
>> into the mix: enum BAR = lround(sqrt(2)).
>> To note some of the bad things. Varargs are still a problem. And
>> though InlineAsm is getting there, with most problems with codegen
>> pretty much sorted, we still suck at outputting labels. As far as I'm
>> aware, Phobos will be 64bit-friendly in time for the 2.051
>> roll out. But that is no good when other architectures still bare the
>> brunt of things. :~)
>>
>> Regards
>
> GDC compiles 90% of my d2 project already. I also tried ldc2 and manage
> to compile it(the ldc compiler, not my project). However the first easy
> tests i made seemed to be looking for tango, which i don't use and gave
> up for now.
>
> I am looking forward to make some benchmark app of the kind of work i
> do, and set up a "compiler race" where new versions of the compilers are
> tested and banchmarked in a "continuous integration" way.
>
> But not even dmd compiles my project in release mode yet ...
>
> j.

Correction: gdc builds and links the entire project already.


More information about the Digitalmars-d mailing list