ArchWizard

DGD/

source navigation ]
diff markup ]
identifier search ]
file search ]
Version: [ 1.0.a0 ] [ 1.1 ] [ 1.2 ] [ 1.2p1 ] [ 1.2p2 ] [ 1.2p3 ] [ 1.2p4 ] [ 1.2.151 ]

  1 This file was written for release 1.2 of DGD.
  2 
  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:
  6 
  7     ftp://ftp.imaginary.com/pub/LPC/servers/DGD/
  8 
  9 DGD's home page is at:
 10 
 11     http://www.dworkin.nl/dgd/
 12 
 13 Please report bugs to <felix@dworkin.nl>.
 14 
 15 
 16 This distribution is organized as follows:
 17 
 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.
 29 
 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.
 32 
 33 
 34 The following significant changes have been made since version 1.1 (for
 35 a full list, consult the file src/Changelog):
 36 
 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.
 62 
 63 
 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
 72 /kernel/lib/user.c:
 73 
 74     int message_done()
 75     {
 76         return MODE_NOCHANGE;
 77     }
 78 
 79 
 80 *WARNING*
 81 
 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.
 85 
 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
 90 statedumps.
 91 
 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.
100 
101 It is <not> possible to restore a statedump created by DGD 1.2 with any
102 earlier version.

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.