Tag Archives: llvm

New ldc d compiler + tango packages for Ubuntu Karmic!

Yesterday Arthur Loiret announced on the #d.tango channel on Freenode.net that he did some work in packaging ldc and tango. I’ve been working on it for a while, but when i started developing gdc i didn’t maintain that work anymore.

Since Arthur gave me all the needed files to reproduce the packages, i’ve updated the PPA for ldc + tango set. New packages are of revision 1586 of ldc and 5027 of tango.

Detailed instructions in how to install those packages can be found at the Ldc Ubuntu packages page. Let me know if you have troubles with those packages!

The ldc d programming language compiler package sees the light

Hi,

Yesterday i talked about ldc. Well. today i talk about it again :)

Does this make you understand something?

goshawk@earth:~/Documents/Projects/MOTU/ldc/d1$ sudo dpkg -i ldc_0.9-1_amd64.deb
Selecting previously deselected package ldc.
(Reading database ... 210660 files and directories currently installed.)
Unpacking ldc (from ldc_0.9-1_amd64.deb) ...
Setting up ldc (0.9-1) ...
goshawk@earth:~/Documents/Projects/MOTU/ldc/d1$ cd
goshawk@earth:~$ cat test.d
import  tango.io.Console;

void    main()
{
   Cout("Hello, World").newline;
}

goshawk@earth:~$ ldc test.d
goshawk@earth:~$ ./test
Hello, World
goshawk@earth:~$

As you already understood, a first ldc package for debian and ubuntu has been compiled. It compiles ldc, then the tango runtime and tango library which is the default library in ldc.

It stores the tango library in /usr/include/d/ldc/libtango, and the tango runtime in usr/lib/libtango-base-ldc.a and the tango user library in /usr/lib/libtango-user-ldc.a

At the moment the problems with this packages are:

  1. I need a stable ldc release, the package builds revision 1179
  2. W: ldc: binary-without-manpage usr/bin/ldc, i need to create/find a manpage for the compiler
  3. Pester a debian maintainer or a ubuntu MOTU to include ldc in the official repository

Ldc D compiler debian/ubuntu package

It’s two days that i’m spending time in my passion. The D programming language.

Well, from two months a new compiler is raising in the community talks. This compiler is ldc, is based on llvm and from the dmd frontend which is used as a main frontend to implement the D specifications.

As i said some time ago, one of the things that makes D incomplete is a full free software compiler. Well. Ldc could be the answer. I started packaging ldc for debian and ubuntu creating a branch or revision 1179 from the ldc hg repository. As a standard library i used tango at its early release 0.99.8. The sources of my work are on launchpad.net and they include a full working tree, already with a debian directory in it.

There are still some things to fix which i’ve reported to the d-language-packagers group with the above mail:

Hi.

In these days i worked in packaging ldc.

In the launchpad bzr of the group you can already find a revision which
compiles quite good. This is the content of the package:

goshawk@earth:~/Documents/Projects/MOTU/ldc/d1$ dpkg -c  ldc_0.9-1_amd64.deb
drwxr-xr-x root/root         0 2009-03-30 20:35 ./
drwxr-xr-x root/root         0 2009-03-30 20:35 ./usr/
drwxr-xr-x root/root         0 2009-03-30 20:35 ./usr/sbin/
drwxr-xr-x root/root         0 2009-03-30 20:35 ./usr/bin/
-rwxr-xr-x root/root       721 2009-03-30 20:32 ./usr/bin/ldc.conf
-rwxr-xr-x root/root       305 2009-03-30 20:32 ./usr/bin/ldc.rebuild.conf
-rwxr-xr-x root/root  12266952 2009-03-30 20:35 ./usr/bin/ldc
drwxr-xr-x root/root         0 2009-03-30 20:35 ./usr/lib/
-rw-r–r– root/root    742780 2009-03-30 20:35 ./usr/lib/libtango-base-ldc.a
-rw-r–r– root/root   7084206 2009-03-30 20:35 ./usr/lib/libtango-user-ldc.a
drwxr-xr-x root/root         0 2009-03-30 20:35 ./usr/share/
drwxr-xr-x root/root         0 2009-03-30 20:35 ./usr/share/doc/
drwxr-xr-x root/root         0 2009-03-30 20:35 ./usr/share/doc/ldc/
-rw-r–r– root/root       279 2009-03-30 02:33 ./usr/share/doc/ldc/readme.txt
-rw-r–r– root/root      2304 2009-03-30 02:33
./usr/share/doc/ldc/CMakeLists.txt.gz
-rw-r–r– root/root     14815 2009-03-30 02:07 ./usr/share/doc/ldc/copyright
-rw-r–r– root/root       154 2009-03-30 17:56
./usr/share/doc/ldc/changelog.Debian.gz

As you can see, all the .conf should be moved in /etc/.  Arthur, do you think
that putting them in /etc/ldc/ is the better choice?

What’s missed to make ldc working away from the building environment is
explained by the ldc config file:

default:
{
// ‘switches’ holds array of string that are appends to the command line
// arguments before they are parsed.
switches = [
"-I/home/goshawk/Documents/Projects/MOTU/ldc/d1/ldc-0.9/obj-x86_64-
linux-gnu/runtime/../tango",
"-I/home/goshawk/Documents/Projects/MOTU/ldc/d1/ldc-0.9/obj-x86_64-
linux-gnu/runtime/../tango/lib/common",
"-L-L/usr/lib",
"-d-version=Tango",
"-defaultlib=tango-base-ldc",
"-L-ltango-user-ldc",
"-debuglib=tango-base-ldc"
];
};

The missing point is the tango library that should be compiled for ldc IMHO.
I think that the best solution is to provide a libtango-ldc and libtango-ldc-
dev package to contain the .a and the .di files used by ldc.

Any comment or suggestions about it?

Best Regards.

See you.

If you have any suggestion about it, just comment on this post :)

Let’s see what happens in the next days, if you want to contribute, join the the d-language-packagers group and send me a comment! :)