View mode: basic / threaded / horizontal-split · Log in · Help
January 19, 2010
Why not throw everything at dmd
Hello,
First of all I want to congratulate Walter to this totally brilliant language and compiler he gives to us.
Im just fascinated everyday a little more.
I was watching D for half a year now and a week ago I began to implement my diploma thesis with dmd
2 on snow leopard. Its a computer vision application that has to operate in real time.
I already had implemented 30 % of it in C++ using OpenCV, Qt and boost.
I ended with something horribly overcomplicated. Not that it was only horrible to read because of the
lots of different used boost techniques. In the end even my editor gave (QtCreator) up. The program
compiled and the editor showed me false syntax errors.
The program was then running far to slow (5 fps or something).  Probably because of some stupid
errors.

So I decided to give dmd a try: I used descent and a simple make script.
My program is running blazingly fast now. And it took me no time to port c headers from opencv opengl
and glut. The bad thing was of course that on osx i dont have a debugger. The wonderful thing is I really
didnt need one right now. I use unittets which reduced this need a lot. And furthermore I simply dont
make mistakes in this language because this language doesnt let you. It lets you conentrate on the
matter not on things like :
Do I need a scoped boost ptr or rather a tr1 sharedptr or a boost shared ptr or a pointercontainer
whatever...etc.
But you all know that anyway.

And now to the Subject:
Im using a simple makefile which just throws every source file at the compiler and also all the link
commands. Just because I was lazy and thought i can change it later if it hurts too much.
So everytime i hit  the compile button im doing a complete rebuild.
Its a really quite big project now. (using templates ctfe and etc).
It takes about ONE SECOND to rebuild. Its just fascinating. Its faster to rebuild the whole project than
compilng only one sourcefile of the corresponding c++ project with g++.
Working at siemens for a big project in c++ on win, I know that  I am sitting most of the day there
waiting until it compiled. dmd is magic. and the language is just the language ive ever dreamed of.

In the end this brings me to a sad thing: I nearly never get dsource projects to compile. And most of the
time (I guess) its about build system problems. So why dont you all write these very simple makefiles
and throw everything at the compiler? Such makefiles would be very easy to debug and furthermore
they really work everywhere.

cheers
January 19, 2010
Re: Why not throw everything at dmd
You may give http://bitbucket.org/h3r3tic/xfbuild/wiki/Home a try.
Though it still lacks some configuration file feature you don't need to  
specify every source file yourself ;)
January 22, 2010
Re: Why not throw everything at dmd
%u wrote:
> In the end this brings me to a sad thing: I nearly never get dsource projects to compile. And most of the
> time (I guess) its about build system problems. So why dont you all write these very simple makefiles
> and throw everything at the compiler? Such makefiles would be very easy to debug and furthermore
> they really work everywhere.
> 

DMD is fast.

GDC and LDC however, aren't. :)

> cheers

You too.
January 22, 2010
Re: Why not throw everything at dmd
downs Wrote:

> %u wrote:
> > In the end this brings me to a sad thing: I nearly never get dsource projects to compile. And most of the
> > time (I guess) its about build system problems. So why dont you all write these very simple makefiles
> > and throw everything at the compiler? Such makefiles would be very easy to debug and furthermore
> > they really work everywhere.

Together with the tango/phobos/dmd1/dmd2 incompatibilities I rarely ever actually compile anything from dsource.

> > 
> 
> DMD is fast.
> 
> GDC and LDC however, aren't. :)
Interesting, I didn't know that.
I also rebuild my whole project every build and love that I can program in really small increments building every few minutes or so. ( And debug/refactor by just repeatedly building/fixing )

It even kind of annoys me that builing (bud) takes something like 10 seconds on my p4.

This means I will keep using DMD as long as I can and only maybe in at the end try GDC and LDC for any performance improvement.

> 
> > cheers
> 
> You too.

Cheers to you two as well :)
Top | Discussion index | About this forum | D home