
The primary distribution site for DGD is part of the larger CIE ftp site. Both source code (with patches up to the current version of 1.1p8) and binary releases (for selected architectures) of the stable development branch of DGD can be found at the site. In addition, one may also find the source for a reasonably stable version of the experimental development branch of DGD.
Source code for DGD may also be found at Dworkin's own ftp site. This site provides source for the stable branch (with patches up to 1.1p8). The main purpose of the site, however, is the distribution of patches for the experimental releases. These experimental releases are not guaranteed to be stable but contain developmental code which will eventually become DGD 1.2. In terms of bug fixes the following table indicates the correspondence between the experimental and stable branches.
| 1.1p1 | 1.1.8 | |
| 1.1p2 | 1.1.9 | |
| 1.1p3 | 1.1.13 | |
| 1.1p4 | 1.1.17 | |
| 1.1p5 | 1.1.28 | |
| 1.1p6 | 1.1.44 | |
| 1.1p6a | 1.1.47 | |
| 1.1p6b | 1.1.48 | |
| 1.1p7 | 1.1.59 | |
| 1.1p8 | 1.1.79 |
Finally, there is an earlier DGD distribution site (which only contains patches up to 1.1p5). In addition to what one can find at the CIE site there are some LPC packages for DGD.
DGD is available as both source code and precompiled binary distributions. The source code is primarily provided for Unix-like operating systems and will compile on just about all such systems and platforms. Binary distributions are provided for a variety of operating systems where this is the traditional method of distributing applications. Specifically, binaries for Windows 9x/NT are available in zip format, for MacOS as a binhex'ed stuffit archive, for BeOS in zip format, for the Amiga as an lha archive, and for the Atari as a zoo archive.
A list of the current versions available for each OS is:
| Unix |
1.1 (source code) patches p1 through p7 |
| Windows 9x/NT | 1.1p8 |
| MacOS | 1.1p7 |
| BeOS |
1.1p7 (for the PowerPC architecture) 1.1p8 (for the Intel architecture) |
| Amiga | 1_1p6 |
| Atari |
1.0a71 (very out of date and no current support) |
For this task you will need a C compiler, the gunzip/gzip program, the tar program, the make program and the patch program (should you wish to install the patches -- and you really do). These are standard on most Unix-like systems. You will also need to select the appropriate HOST Makefile -- see doc/Platforms for more information on selecting the appropriate HOST setting for your machine. If you do not have one or more of these tools, the excellent GNU versions are available for almost any flavour of Unix (plus a few other platforms) from the main GNU ftp site or any of its many mirror sites.
DGD is known to compile on Windows 95/NT using MSVC++ 4.x and better. It should be noted, however, that while this compilation works out of the box with MSVC++ 4.x, users of 5.x and later will need to turn off optimizations in the supplied project file. DGD source has also been compiled on Windows 95 with gcc from the Cygwin tools (beta 20.1 version) using a HOST configuration of LINUX and replacing src/host/lrand48.c with src/host/pc/local.c. One suspects it would also compile with the Borland compiler as well, although I have no reports one way or the other on this.
As has been mentioned before DGD is built with a minimalistic philosophy. This has resulted in a number of people issuing "packages" for DGD. The general idea behind most of these is to extend the functionality of DGD in some way that is of use to the author (and hopefully others) but that isn't essential. Currently the following packages are available (in the pkg directory unless otherwise specified) for the stable branch of DGD development. These packages must all be installed prior to compilation. Those listed in the following table were all written for DGD 1.1.
| alarms | Replaces the call_out related kfuns with kfuns that provide fraction (1/10th) of a second alarms and which are repeatable. |
| comment | Allows LPC coders to use C++ style // comments. |
| ctors | Provides LPC objects with constructors/destructors. |
| str2val | Converts any variable to and from the string format used in save files produced by save_object. |
| strftime | Ability to format dates and times as per the C strftime function is provided by this package. |
| wildmat | A subset of regexp string pattern matching functionality is provided by this package. |
| These packages were all written by Th. Lockert of SigmaSoft. | |
| net-10 | The network package extends the IP networking features, allowing you to open/close TCP ports, start outgoing TCP connections and receive and send UDP packets. |
| precomp-3 | This package makes it easier to compile your LPC objects into C by keeping track of inherited programs for objects you wish to compile this way. It is only available for Unix-like operating systems at the moment. |
| These packages were written by Richard Braakman and the net-10 package is currently maintained by Erwin Harte. | |
| 95-api | Adds 4 kfuns to dgd which make use of the win32 API and thus are specifically for Windows 95/NT. |
| NT-api | Adds an extra 2 kfuns on top of the 95-api package which makes specific use of the NT API. This package is specifically for Windows NT. |
| ansi | By default DGD filters out the escape code of the so-called ANSI colour codes and the VT100 terminal codes. This package provides a patch which allows these codes to be input and output successfully. |
| These packages were all written by Wim van der Vegt. | |
| rusage | Borrows the rusage efun code from the 3.2 LPC (Amylaar) driver and adds it as a kfun. It uses the getrusage(2) system call. |
| There is no author attribution attached to this package. | |
| rgx | Full regular expression string pattern matching facilities are provided by this package. It was written for DGD 1.0.9 and uses the GNU regex library. |
| This package was written by Robert Leslie. | |
| mdbm | This package provides a kfun interface for manipulation of ndbm/gdbm databases. |
| regex | Full regular expression string pattern matching facilities are provided by this package in a somewhat different fashion than that used by the rgx package (no external libraries are involved). |
| object_info | Provides kfuns which give you information about inherited programs, functions and global variables in an LPC object. |
| These packages were written by Greg Lewis. | |
In addition to those available for the stable branch of DGD, the following table lists packages (by name and DGD version) which have tracked at least partially into the experimental development line:
|
net-10 (1.1.42) net-10 (1.1.49) net-11 (1.1.61) net-11 (1.1.64) |
The network package extends the IP networking features, allowing you to open/close TCP ports, start outgoing TCP connections and receive and send UDP packets. |
| precomp-3 (1.1.44) | This package makes it easier to compile your LPC objects into C by keeping track of inherited programs for objects you wish to compile this way. It is only available for Unix-like operating systems at the moment. |
| These packages were originally written by Richard Braakman, with the experimental support and development carried out by Erwin Harte. | |
| epp-0.2 (1.1.61) | EPP is for "Easy Precompilation Package". Similar in purpose to the precomp-3 package, it is a newly developed package to allow LPC objects to be easily precompiled into the DGD driver. While I have noted, for consistency, the driver version this package was produced for it should work with any later version of DGD too, as it doesn't actually require any DGD source code alterations. |
| This package was written by Erwin Harte. | |
If you wish to use a Unix-only package on a Windows 95/NT box I suggest looking over the Cygwin package.. Alternatively, if you wish to use a win32-only package on a (PC-based) Unix box then look at Wine (specifically, details on winelib, not the wine program itself).
Copyright © 1997-99 Greg Lewis