Archive for May, 2007

DMD To Be Forked

Wednesday, May 9th, 2007

Since the 1.0 release, there has been much pleading, begging and griping from D users regarding the desire to see stable and unstable branches of DMD. Today, the stars have aligned and the seas have parted. Walter has made known the following:

I’m currently working on implementing const/invariant. It’s becoming
clear that this is a pervasive change, and will cause binary
incompatibility with existing code. I’m trying to minimize any source
incompatibilities.

The first few iterations of const support probably will have lots of
problems before it gets usable.

This means that dmd will have to fork into a 1.x maintenance version and
a 2.x beta.

There was much rejoicing.

Technorati Tags: , , ,

Making the Move to D

Tuesday, May 8th, 2007

When I first started following D, it was out of curiosity. When I started Derelict (which turned 3 years old last Friday, by the way — Happy Birthday, Derelict!), I did so with the goal of one day using it for my own personal projects. At the time, however, I was reluctant to start using D for anything else. Even after I started this blog over a year ago, I still was hesitant to pick up D for any production code. I toyed around with simple programs for some Derelict tests, or to try out new language features, but nothing more. Even while I was evangelizing D in other forums and communities, I was waiting for the ‘right moment’ to start using it on a serious project myself.

For a long while now I’ve been working sporadically on a commercial game project using C. Progress has been slow primarily because I only spend a few hours a week working on it (if that). But there have been other speed bumps along the way, things that any C developer worth his salt will have encountered more often than he would like (as an example, I spent three days chasing down a memory corruption bug not too long ago). I love C, with all of its foibles and weaknesses, but there certainly are days when I feel like throwing my computer out of the window.

Not too long ago, with one of the more recent DMD releases, I started to get this nagging feeling that the time for D had arrived. The more I ignored it, the stronger it got. Seeing in the NG those glowing reviews by the team0xf guys made it stronger still. So I decided to put it to the test on something other than Derelict and more than just a 10 minute test case. I quickly came up with a project idea and got to work.

After a several hours scattered over 2 days, I’ve already made great progress. Derelict requires only a small subset of D features, so though I’ve been aware of the benefits of using many of them, I’ve not actually seen any in production code until now. The more D I use on this project, the more I never want to see a line of C code again. In fact, I’ve already come to two decisions. For one, I’m going to move this test project forward into a production library. Second, I’m going to drop the C game project completely. I’ll eventually start over using D (it may seem to others like a waste of months of effort, but it’s really not a big deal). Before that, though, this new project has given me a couple of other ideas to work on.

Yeah, I’m going all out on this. I’ve typed up design documents, set up milestones and tasks on my local copy of activeCollab, and I actually sat down and blocked off large chunks of time on my calendar for development. My game business has been something that I wanted to get up and running sometime in the next few years (i.e., no solid plan), but now the worm has turned and I’m focusing on it exclusively. I’ll continue teaching English, but I’m going to stop taking contract software development work completely. Contract work was the real time killer for me and it’s never been something I really enjoy (mostly J2EE stuff). There are a few other minor distractions I’m cutting out as well. From here on, I’ll consider myself a full time D game programmer!

There are two side-effects. The first is that I’ll be able to set aside more time to work on Derelict than I ever have been able to before. Since I’ll now be a Derelict user myself, I’ll get to see first-hand any warts that crop up (at least, on a subset of the packages). The second is that the little test project that started this enlightenment will be made publicly available under a BSD license.

The point of this post is to proclaim to the world that D has set me free! My old reluctance to use it for production code was warranted way back when, but I can see no justifiable reason not to use D in its current state. I can’t remember the last time I had this much fun typing code into a text editor. Thanks, Walter, for bringing D to where it is today.

Technorati Tags:

Descent 0.3

Tuesday, May 8th, 2007

Ary Manzana has released version 0.3 of his Eclipse plugin, Descent. In addition to some bug fixes, this version enabled debugging from within the IDE. From his NG post:

The user interface is
the one well known from Eclipse. The following views are available:
debug (listing the stack frames), variables, breakpoints, expressions,
registers and memory. A dissasembly view is planned for a next release.

He says the plugin has support for both ddbg and gdb.

Technorati Tags: , , , ,

openquran

Tuesday, May 8th, 2007

Aziz Kerim has created an interesting project: openquran. This tool, written in D of course, is designed to aid you in quickly referencing verses of the Qur’an. Pass the numbers of the versions you’re interested in on the command line and openquran will display them for you. Neat.

Technorati Tags: , , ,

Derelict Gets Support For ODE

Sunday, May 6th, 2007

Some time ago, William DeVore put together a Derelictified binding to the Open Dynamics Engine library and submitted it to me for inclusion in the Derelict trunk. I’m happy to announce that I have finally gotten around to putting it in: DerelictODE is now an official Derelict package. There’s been other work steadily going on as well.

Over the past month or so, the Derelict documentation has gotten a good going over. Corrections, clarifications, and additions that had been overlooked or neglected were all taken care of. For example, some sections were badly out of date, while other important sections were missing altogether (such as the one on loading OpenGL extensions in DerelictGL). I’m fairly confident that the docs are now at least up to date. As to whether they are as clear and useful as they can be, time will tell.

Derelict also has a new install script. Sort of. The directory structure of the trunk was implemented as it is in order to ease maintenance and to allow users to check out specific packages rather than the whole trunk. While it serves the purpose, it does make a bit of extra work for actually using the packages. To put the Derelict source on the import path, you either have to copy everything to a single ‘derelict’ directory somewhere, or specify each package separately on the command line. The new install script allows you to easily copy all of the source modules from each package, or from only those packages you specify, to a single ‘derelict’ directory at a location you specify. You can read more about it in the Derelict forums.

If you are new to D, you can learn more about Derelict at the project home page.

Technorati Tags: , , ,