]> git.llucax.com Git - personal/website.git/blob - source/blog/posts/2009/03/ldc.rst
Add post
[personal/website.git] / source / blog / posts / 2009 / 03 / ldc.rst
1 Title: LDC
2 Tags: en, d, dgc, ldc, compiler, howto, llvm
3
4 My original plan was to use GDC_ as my compiler of choice. This was mainly
5 because DMD_ is not free and there is a chance that I need to put my hands in
6 the compiler guts.
7
8 This was one or two years ago, now the situation has changed a **lot**. GDC_ is
9 dead (there was no activity for a long time, and this added to the fact that
10 GCC_ hacking is **hard**, it pretty much removes GDC_ from the scene for me).
11
12 OTOH, DMD_ `now provides full source code of the back-end`__ (the front-end
13 was released under the GPL/Artistic licence long ago), but the license is
14 really unclear about what can you do with it. Most of the license mostly tell
15 you how you can **never, never, never** sue Digital Mars, but about what you
16 can actually do, it's says almost nothing::
17
18     The Software is copyrighted and comes with a single user license, and may
19     not be redistributed. If you wish to obtain a redistribution license,
20     please contact Digital Mars.
21
22 __ http://www.digitalmars.com/d/1.0/changelog.html#new1_041
23
24 You can't redistribute it, that's for sure. It says nothing about
25 modifications. Anyways, I don't think Walter Bright mind to give me permission
26 to modify it and use it for my personal project, but I prefer to have
27 a software with a better license to work with (and I never was a big fan of
28 Walter's coding either, so =P).
29
30 Fortunately there is a new alternative now: LDC_. You should know by now that
31 LDC_ is the DMD_ front-end code glued to the LLVM_ back-end, that there is an
32 alpha release (with much of the main functionality finished), that it's
33 completely FLOSS__ and that it's moving fast and getting better every day (a
34 new release is coming soon too).
35
36 __ http://en.wikipedia.org/wiki/Free_and_open_source_software
37
38 I didn't play with LLVM_ so far, but all I hear about it is that's a nice, easy
39 to learn and work, compiler framework that is widely used, and getting better
40 and better very fast too.
41
42 To build LDC_ just follow the nice instructions__ (I'm using Debian_ so I just
43 had to ``aptitude install cmake cmake-curses-gui llvm-dev libconfig++6-dev
44 mercurial`` and go directly to the LDC_ specific part). Now I just have to
45 learn a little about Mercurial_ (coming from GIT_ it shouldn't be too hard),
46 and maybe a little about LLVM_ and I'm good to go.
47
48 __ http://www.dsource.org/projects/ldc/wiki/WikiStart#HowToCompile
49
50 So LDC_ is my compiler of choice now. And it should be yours too =)
51
52 .. _GDC: http://dgcc.sourceforge.net/
53 .. _DMD: http://www.digitalmars.com/d/download.html
54 .. _GCC: http://gcc.gnu.org/
55 .. _LDC: http://www.dsource.org/projects/ldc/
56 .. _LLVM: http://llvm.org/
57 .. _Debian: http://www.debian.org/
58 .. _Mercurial: http://www.selenic.com/mercurial/
59 .. _GIT: http://git-scm.com/
60
61 .. vim: set et sw=4 sts=4 :