The ldc d programming language compiler package sees the light

D

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

D

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! 🙂

Maemo/Mer on Freerunner

ubuntu

These informations are not updated, please see Mer/Maemo on Freerunner half ported.

Hi all,

One month ago i spoke about the ability to put and Ubuntu into the Freerunner mobile phone. Well after a little bit of research, it pointed out that Ubuntu is compiled for armv5 while Freerunner is armv4, so Ubuntu is not compatible with the Freerunner.

Debian instead, the rock in which ubuntu is built in, is compiled for armv4 in the armel version. So a full debian operating system in the Freerunner is possible as the debian Freerunner port demostrates. But debian Freerunner port is not famous for his UI, which is ugly and unusable.

After a deep research i came into the Maemo project and expecially in it’s 100% Free implementation called Mer. I started contacting the developers and i found a very active team. I’m now working with them to provide a Freerunner that runs Mer to sell at eshopen. In the last days we (well, primary
Carsten Munk) reached in building all the gtk and hildon framework for debian armel. So we should be albe to have Mer into a Freerunner in one month more.

Let’s see what will happen. 🙂

Ubuntu on Freerunner a new era

ubuntu

Hi folks 🙂

Maybe you still don’t know, but ubuntu will support ARMel from Jaunty. Well and what is the most hacked device of the year? the Openmoko Freerunner!

Well. but what is the relationship between ubuntu and ARM? It’s that the Freerunner uses an ARM9 @ 400 MHz processor… So, with a little bit of work, Ubuntu will be available for Freerunner too! 🙂

I’m starting documenting about how to build a rootfs and how to make it jffs2, and it seems easy. What is my project?

Imagine a phone, with all the fso framework to act as a phone and with a full ubuntu backend. Could you imagine the power? 🙂

I think i can accomplish this thank to my accepted mentoring by a MOTU and my position as an ingeneer at eshopen, the italian Openmoko Freerunner seller.

In late March we should be able to release the first image… stay tuned!

I don’t like git too

Coding

Today on Planet Ubuntu i found a nice post about git. Well. It’s the revision control system developed by Linus Torvalds itself after the BitKeeper debacle. As this post says, git sucks in a lot of ways. i completely agree with Scott when he says so and he shows how git is cryptic and hard to use.

Instead of using git, i use mercurial which does exactly what i want as i want and it’s really well documented. And it’s distribuited of course

D programmin language programs available for ubuntu: dsss and libtango

D

Hi,

On december 08 i worked to make a better support in ubuntu linux of the D programming language which is the successor of the C programming language IMHO.

If it’s so powerful as i say why isn’t it used like the C language?

  1. it’s quite new, and there is just one book about this language and it’s name is Learn to Tango with D which i bought in pdf version for less than 11€
  2. There is no a standard library: there are two libraries phobos and tango. phobos is supported by Walter Bright which is the D programming language creator and it’s seems to be not too much powerful and it’s very lite. Tango is community supported, it has a book about it, it seems very powerful and does not need to much space, it’s written in D and it’s used by a lot of programs.
  3. Lack of free (read as full GPL) compiler
  4. No integration in Gnu linux distributions

Well, these are for me the big pitfails of the D language. While the 1 issue is solved by time the issues 2 and 3 are the most important ones that should be solved soon as possible to spread the D usage.

For issue 3 and 4 i thought i could do something. And i started working. We did a group in launchpad.net and we started working. Right now we packaged dsss and libtango for ubuntu. In ubuntu and debian there is the gdc compiler which seems to be no longer updated and there are some bugs still opened. The libtango and dsss packages we created are designed to work with gdc packages in ubuntu and debian. To start programming in D on ubuntu or debian you have just do edit your /etc/apt/sources.list and add the following lines:

deb http://ppa.launchpad.net/d-language-packagers/ubuntu jaunty main

Then install the dsss and libtango package with:

sudo aptitude update && sudo aptitude install dsss libtango

Then you can start making your own D program and save it (eg program.d). To compile just do:

gdc -fversion=Posix -I /usr/include/d -L/usr/lib/tango/ program.d -lgtango

And your program will be compiled, just execute the result a.out to see your program running.

For issue 3 i’m still working on it 🙂

  • 1
  • 6
  • 7
%d bloggers like this: