|
| Name
| Size
| Last modified (GMT)
| Description
|
| bin/
|
| 1997-07-27 12:55:21
|
|
| doc/
|
| 1997-07-27 12:50:52
|
|
| mud/
|
| 1997-07-27 12:52:37
|
|
| pkg/
|
| 1997-07-27 12:55:21
|
|
| src/
|
| 1997-07-27 12:51:48
|
|
| tmp/
|
| 1997-07-27 12:55:21
|
|
| Copyright
| 1387 bytes
| 1997-01-10 19:44:40
|
|
| Credits
| 618 bytes
| 1997-01-23 17:20:50
|
|
| README
| 4369 bytes
| 1997-04-13 01:06:15
|
|
| mud.dgd
| 1167 bytes
| 1997-03-27 01:02:05
|
|
1 DGD (which stands for "Dworkin's Generic Driver") is a rewrite from scratch
2 of the popular LPMud server. It runs on Unix, Mac and Win32. A minimal
3 development library is included with DGD.
4
5 The latest version of DGD can be found at
6 ftp://ftp.lysator.liu.se/pub/lpmud/drivers/dgd/
7
8 ---
9
10 Most important changes since 1.0.9:
11
12 - lock() has been replaced with a new LPC construct, rlimits.
13
14 rlimits (stackdepth; ticks) { code; }
15
16 The code between the curly brackets is executed with the specified limits
17 on function call depth and ticks (= execution cost). The value 0 can
18 be used to mean "no change", and -1 means unlimited. All calls are
19 started without limits, so be sure to use rlimits in the proper top-level
20 functions (see doc/Introduction for a list of functions called by the
21 driver).
22 - DGD has been ported to Win32 (95, NT) and MacOS.
23 - It is now possible to recompile an object without first destructing it,
24 as long as the object is not inherited. This has the effect of replacing
25 the program for the object as soon has the current thread has finished.
26 Variables are preserved if they keep the same name and type.
27 - A kernel LPC library has been added. See doc/mud/kernel/overview for
28 an introduction.
29 - The commercial status of DGD has changed. See doc/Commercial for details.
30
31 ---
32
33 List of incompatibilities between 1.0.9 and 1.1:
34
35 - The config parameters `call_stack', `value_stack', `reserved_cstack',
36 `reserved_vstack' and `exec_cost' are obsolete and have been removed.
37 - driver->path_ed_read() and driver->path_ed_write() have been renamed to
38 driver->path_read() and driver->path_write(), respectively.
39 - driver->log_error() has been renamed to driver->runtime_error(). A
40 third argument has been added to runtime_error(), the number of ticks
41 left at the time the error occurred.
42 - driver->compile_log() has been replaced with
43 driver->compile_error(string file, int line, string error).
44 - When the last instance of a program is removed, the function
45 remove_program(string program, int timestamp, int index) is called in
46 the driver object.
47 - driver->path_object() has been replaced by call_object(), which returns
48 an object.
49 - driver->path_inherit() has been replaced by inherit_program(), which
50 returns an object.
51 - driver->compile_object() has been removed. You can do your own object
52 renaming by redefining find_object() and adjusting driver->call_object().
53 - driver->interrupt() is called if the server process is terminated from
54 the outside.
55 - lock() has been replaced with rlimits. Replace
56
57 lock(code)
58
59 with
60
61 rlimits (-1; -1) { code; }
62
63 - The functions driver->compile_rlimits() and driver->runtime_rlimits()
64 have been added to compile access to rlimits at compile time and runtime,
65 respectively.
66 - catch() doesn't behave differently anymore when used by the driver object.
67 The old special behaviour can be simulated with catch + rlimits.
68 - Objects are no longer automatically compiled on first reference. In
69 driver->call_object(), use compile_object() to load the object if needed.
70 - find_object() doesn't call driver->path_object() to translate the path,
71 anymore.
72 - STRING->function() from the auto object now also calls driver->call_object()
73 to get the object named by STRING. Replace such calls in the auto object
74 by
75
76 ::find_object(STRING)->function();
77
78 - function_object() doesn't find static functions in other objects anymore.
79 - clone_object() now takes an object as argument. Redefine it in the auto
80 object:
81
82 object clone_object(string path)
83 {
84 object obj;
85
86 obj = ::find_object(path);
87 if (!obj) {
88 obj = compile_object(path);
89 }
90 return ::clone_object(obj);
91 }
92
93 - The kfun get_exec_cost() has been removed. Use status()[ST_TICKS] instead.
94 - MAX_ARRAY_SIZE and MAX_MAPPING_SIZE are no longer defined in limits.h.
95 Use status()[ST_ARRAYSIZE] instead.
96 - send_message() now returns the number of bytes that could be sent in
97 one call. If this is less than the length of the string sent, the
98 remainder is buffered and sent later. Once the last bit of buffered
99 data has been sent, message_done() is called in the sending object.
100 - State dumps made by DGD 1.0.9 cannot be restored by DGD 1.1. If you
101 depend on a state dump made by DGD 1.0.9, contact me (felix@simplex.nl).
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.