1 This file was written for release 1.2 of DGD.
3 DGD is a rewrite from scratch of the LPMud server. It runs on Windows, MacOS,
4 BeOS and many versions of Unix. Binaries and source for the latest stable
5 release of DGD can be found at:
9 DGD's home page is at:
13 Please report bugs to <email@example.com>.
16 This distribution is organized as follows:
18 bin Installation binaries will be created here (Unix & BeOS).
19 doc Documentation, currently still very incomplete.
20 mud A minimal mudlib called the kernel library, which is
21 distributed together with, but not part of DGD. The kernel
22 library is in the public domain.
23 src Where the source of DGD resides, and where you issue your
24 `make' command on Unix or BeOS.
25 src/host/* Subdirectories for various platform-dependent files. For
26 historical reasons, files for Windows are in src/host/pc.
27 tmp The place where temporary files, such as the swap file, are
28 created by DGD.
30 See the file doc/Platforms for help on compiling DGD on various platforms.
31 Also consult the src/host/*/README file for your platform, if there is one.
34 The following significant changes have been made since version 1.1 (for
35 a full list, consult the file src/Changelog):
37 - A generic string parser has been added, which parses strings using a
38 context-free grammar and regular expressions; see the file doc/parser.
39 - Functions can now be `atomic'. An error that occurs while executing an
40 atomic function will roll back all changes made by that function,
41 including calls to other functions. Calls to atomic functions can be
42 safely nested. There is one limitation: file writing operations are not
43 possible from atomically executed code.
44 - A new typechecking mode has been added, selected by setting the config
45 variable `typechecking' to 2. This introduces the constant `nil' as
46 a value distinct of integer 0. String, object, array and mapping values
47 will be initialized as nil. The kfuns allocate(), allocate_int() and
48 allocate_float() allocate an array of nil values, integer 0 values, and
49 floating point 0.0 values, respectively.
50 - `varargs' can now be used in the argument list of a function, to specify
51 that only the following arguments are optional, rather than all of them.
52 In typechecking mode 2, this is the only allowed use of varargs.
53 - Callouts can now have millisecond delays, using a float delay argument.
54 A callout with a delay of 0 will be executed immediately after termination
55 of the current thread.
56 - A new kfun millitime() was added.
57 - Blocking of user input is now possible with the new block_input() kfun.
58 - New kfuns query_ip_name() and send_datagram() were added.
59 - ANSI C equivalent math functions have been implemented as kfuns.
60 - New kfuns hash_crc16() and hash_md5() were added.
61 - DGD has been made restartable without quitting on Windows, Mac and BeOS.
64 DGD 1.2 has changed behaviour in one significant way: the semantics of
65 send_message() have changed, and the function message_done() is now
66 called in the user object whenever the output buffer has drained --
67 not just after a message couldn't be sent completely right away. One
68 effect of this is that the kernel library that came with DGD 1.1 may
69 not work with later versions. This is because the standard user object
70 in the old version of the kernel library does not have a message_done()
71 function. To get it to work, add the following function to
74 int message_done()
76 return MODE_NOCHANGE;
82 It is possible to use statedumps created by DGD 1.1 with 1.2. However, you
83 must first make sure that there are no partially upgraded objects in the
84 statedump that DGD 1.1 (or any version prior to 1.1.97) created.
86 A partially upgraded object is a clone whose master object has been
87 recompiled, but which itself hasn't been upgraded yet. DGD 1.2 handles
88 these objects differently, and attempting to use it on a statedump with
89 old-style partially upgraded objects will result in crashes and trashed
92 Getting rid of partially upgraded objects is very simple: when restoring
93 state from a statedump file, DGD automatically upgrades any left-over
94 partially upgraded objects. So, if you have a statedump file that might
95 contain a partially upgraded object, restart your old DGD with it, and
96 then let it create a new statedump immediately, or at least without
97 recompiling any objects in the meantime. The resulting statedump file
98 will be guaranteed free of partially upgraded objects, and can safely be
99 used by DGD 1.2.
101 It is <not> possible to restore a statedump created by DGD 1.2 with any
102 earlier version.
This page was automatically generated by the
Visit the LXR main site for more