DMD 0.145 Released
Monday, January 30th, 2006I was in the box this time. Release notes here.
News and Opinions of the Digital Mars D Programming Language
I was in the box this time. Release notes here.
Not D related, but a Happy New Year to those of you who celebrate the Lunar New Year. I have just returned from a 3-day visit to my in-laws’ house as part of the holiday. Now I’m trying to catch up on email, news, and D.
Thanks to Tomasz Stachowiak (h3r3tic), it is now possible to download Derelict from the DSource.org Subversion repository without a Subversion client. More info here. If you don’t know what Derelict is, try this page.
I know the only people following this blog at the moment are already D users. But for those living in a box, Walter has released DMD 0.144.
Yesterday, I talked about how some in the D community think Phobos is lacking in one way or another. Rather than waiting and hoping, some enterprising individuals created new projects to address some of the perceived deficiencies. If Phobos is missing some functionality you need, or if you think some of the existing functionality does not meet your needs, perhaps one of the projects below can help you out.
One of the most ambitious projects at DSource is Ares. This library was created by Sean Kelly as a full replacement for Phobos. To use it, you must replace the stock DMD phobos library with the one built when you compile Ares. From the Ares forums:
The Ares project aims to produce a fully functional standard library for D. This library is being designed from the ground up with robustness, consistency, and usability in mind, and as such, it does not aim to be a interface-compatible with Phobos. To allow cross-compilation however, Ares will include a Phobos compatibility package for programmers who want to use both.
Sean accepts submissions from the community. If you like the project and want to speed it along, help the guy out!
Deimos is a project that started out as a place to incubate extensions to Phobos. Unfortunately, the project maintainer has not been seen in any D related forum in quite some time. Although the project is currently dead, there is still some useful code in the repository. Some of it may need to be modified to make it work with current DMD/GDC versions.
Another ambitious project (and one I am extremely interested in) is DDL (D Dynamic Libraries). Java programmers coming to miss often miss Java’s reflection and dynamic class loading. D’s reflection system is weak compared to Java or C#. And being statically compiled it has no mechanism for dynamically loading classes. DDL aims to improve upon the situation by allowing dynamic loading of compiled object files. Project founder Eric Anderton (better known in D circles as pragma) has put some comprehensive documentation online. Here’s a blurb from the About page:
DDL is a multi-faceted technology. It can be used as a plugin architecture, a replacment for DLL files or as a means for working with intermediate files. It is presently in Beta, with a release scheduled for mid 2006 as an SDK and Utilities bundle (both suitable for end developers).
DDL Features
- Loading intermediate (binary) files in OMF, ELF and COFF formats
- Runtime linking of binary files, under Windows and Unix environments
- A common wrapper format (.ddl) that will accelerate runtime linking and binary file management
- Command-line utilities for examining and manipulating binary files
- Interface for examining binary file contents at runtime
- Completely D-coded library, suitable for use under Windows or Unix
How’s that for neat? DDL could ultimately allow D programmers to implement some of the tricks Java programmers are used to. Put this one in your Bookmarks folder.
I would be remiss if I did not mention Mango in this post. Mango is one of the oldest (if not the oldest) projects on DSource. Originally billed as a servlet engine, the library has evolved since its inception to include a number of packages which provide features that are either are not available in Phobos or serve as replacements for some Phobos modules. IO, logging, internationalization, low-level system utilities… it’s full of good stuff. As a bonus, Mango’s source is the cleanest and most nicely formatted D code I have ever seen. I should also mention that Mango can be compiled to use Ares rather than Phobos with a version switch.