The changes in the most recent versions
- The instanceof operator '<-' now returns -1 for private inheritance.
- Compress the table of inherited objects.
- Prevent inheritance table overflow.
- Properly restore unconverted control blocks from statedumps made by 1.3.2
or later.
- Handle more string constants in parse_string() grammars.
- Work around a cygwin compilation problem.
- Prevent a crash when attempting to read a too-large chunk from a file.
- Stop generating instructions I_PUSH_ZERO and I_PUSH_ONE, allowing them to
be recycled in the future.
- Kfuns now have a version number, to simplify upgrading.
- Allow ({ a, b }) = array; to facilitate returning multiple values from a
function.
- Generate the proper references to inherited global variables, which could
be wrong since 1.3.2.
- Removed support for platforms MacOS (pre-OSX) and BeOS.
- Remove character filtering for telnet connections.
- Code released under GNU AGPL.
1.3 (2009/May/20)
- Bring non-unix platforms up to date.
1.2.143 - 1.2.158 (2008/Feb/27 - 2009/Apr/18)
- Fixed a bug that caused the swapfile to be rebuilt much too quickly after
a statedump.
- Fixed a bug in upgrading directly after a statedump.
- Limit the sector size to a 2 byte value.
- Fixed some compilation warnings under Sun Studio.
- More type information is saved in statedumps.
- Callout due time code rewritten.
- Get long-term integer callouts to work properly again.
- During an object upgrade, only change the update field if there are clones
and/or light-weight objects.
- Removed hash_md5() and hash_sha1() for newly compiled objects. hash_string()
should be used instead.
- Allow unused kfuns to be reclaimed, using a debugger.
- Fix a problem with precompiled objects, when restoring interpreted versions.
- Automatically handle platforms with unsigned characters.
- Removed everything from the extension interface that won't be supported in
DGD/MP.
- Include a table of inherited variable types in the control block, for
faster object creation.
- With bugfix in the above.
- And another one.
- Fixed a crash which could occur after the creation of an object is rolled
back.
- Work around an IPv6 name lookup problem on Linux.
- Display IPv6 IP numbers properly.
1.2.142 (2008/Feb/4)
- Avoid spurious memory fragmentation warnings.
- Some 64 bit issues fixed.
- Fix the datagram challenge bug for Windows and BeOS, too.
1.2.141 (2008/Jan/14)
- Don't report objects being swapped out with swap_fragment = 0.
- Fixed a bug with restoring interpreted objects that are precompiled in the
driver.
1.2.140 (2008/Jan/13)
- Properly deal with just-destructed objects after a statedump.
1.2.139 (2008/Jan/12)
- Fixed another such bug, in the precompiler.
1.2.138 (2008/Jan/10)
- Fixed a bug in initialized variable handling.
1.2.137 (2008/Jan/9)
- Don't hang in an infinite loop when a datagram challenge is met with an
improper response.
1.2.136 (2008/Jan/8)
- Fixed a bug in creating multiple statedumps in rapid succession.
- Fixed another swap_fragment = 0 bug.
1.2.135 (2008/Jan/1)
- Get swap_fragment = 0 to work.
1.2.134 (2007/Dec/24)
- Fixed another class variable retrieval bug, introduced in the previous
patch.
1.2.133 (2007/Dec/17)
- The limit of 60 seconds delay for millisecond callouts has been removed.
- Instead of immediately copying the entire state dump when restoring, rebuild
the swap file gradually. This allows for fast rebooting.
1.2.132 (2007/Oct/29)
- Allow multiple add-on packages to register their extra kfuns.
- Fixed a swapping bug that occurred with small cache sizes.
- Fixed a bug in restoring objects with class variables.
1.2.131 (2007/Aug/15)
- Forbid running a precompiled object with a different typechecking level than
it was compiled with.
- Fixed an editor path bug inadvertedly introduced a few patches ago.
1.2.130 (2007/Aug/1)
- Variables from newly inherited objects were not handled properly
during upgrades.
- Fixed a bug in object type handling in ?:.
1.2.129 (2007/Jul/29)
- Removed some MP changes that have no purpose here.
1.2.128 (2007/Jun/02)
- Handle atomic status properly in precompiled code with a catch.
- Update the statedump format for svalues.
1.2.127 (2007/May/28)
- Initialize variables which may be used before set each time they come into
scope.
1.2.126 (2007/May/24)
- Improved errorhandling in the extension interface.
- In the driver object, replace path_include() by include_file(), which can
return either a path or an array of strings for the include file itself.
- Prevent a spurious "Mapping too large to grow" error.
1.2.125 (2007/May/10)
- Prevent a system time fluke from making the uptime negative.
- Disallow a dynamic_chunk size of 0.
- Various problems in the extension interface and documentation fixed.
- Allow multiple source arguments for compile_object(), to get around the
maximum string length limitation. The object will be compiled from the
concatenated source strings.
1.2.124 (2007/Jan/19)
- Fixed a bug which could cause a crash if status(obj) was used on an object
immediately after recompiling it.
1.2.123 (2007/Jan/16)
- Fixed a case where code was incorrectly optimized away.
1.2.122 (2006/Dec/11)
- Fixed a case where the callout timestamp was not updated properly.
1.2.121 (2006/Oct/13)
- Have an error occur for a bad offset in read_file/write_file.
- Allow a static function in the auto object to be masked by a prototype
declaration.
1.2.120 (2006/Aug/25)
- Line numbers were incorrect when object types were involved.
- Handle 64 bit time_t.
1.2.119 (2006/Aug/23)
- The sector size may now be decreased as well as increased.
1.2.118 (2006/Aug/6)
- Only seek on files when needed.
1.2.117 (2006/Jul/18)
- Finally tracked down a very old bug in array importing that could lead to
memory corruption.
1.2.116 (2006/Jul/12)
- Check parser-constructed arrays for imports.
- Speed up the exporting process a little.
1.2.115 (2006/Apr/11)
- Fixed some refcount problems.
- Let parse_string() call LPC functions in left-to-right order.
1.2.114 (2006/Feb/04)
- Include private inheritance information in precompiled objects.
1.2.113 (2006/Jan/30)
- Properly restore object types from a statedump.
1.2.112 (2005/Sep/14)
- find_object("/too/long/name") no longer causes an error, but returns nil.
- Various reference count issues corrected for light-weight objects.
1.2.111 (2005/Jul/19)
- Fixed a serious bug in errorhandling when accepting a new connection.
1.2.110 (2005/Jun/13)
- Fixed a bug that could lead to trouble when an object was destructed and
recreated immediately after a restore from statedump.
1.2.109 (2005/May/25)
- Fixed a bug in the listing of undefined private functions.
1.2.108 (2005/May/25)
- Do not force structure alignment through a #define, but handle it
automatically.
- Let the ordinary errorhandler deal with errors in remove_program().
1.2.107 (2005/May/11)
- Fixed a code optimizer bug.
1.2.106 (2005/Apr/12)
- Fixed a bug in the undefined function code introduced when backported from
DGD/MP.
1.2.105 (2005/Apr/07)
- Reverse the key & message arguments for encrypt() and decrypt(), to make
it easier to extend those functions in the future.
1.2.104 (2005/Apr/07)
- Introduced hash_string() as a replacement for crypt(), hash_md5() and
hash_sha1().
1.2.103 (2005/Apr/07)
- the program name in the undefined functions mapping was missing a leading
slash.
1.2.102 (2005/Apr/06)
- Forbid having undefined private functions.
- Add a list of undefined functions to status(obj).
1.2.101 (2005/Mar/15)
- Fixed a bug in comparing function prototypes that include object types.
1.2.100 (2005/Feb/22)
- Fixed a prototype conversion bug in the extension interface.
1.2.99 (2005/Feb/17)
- Make swapout(), dump_state() and shutdown() local to the atomic context.
- Get the precompiler to work again.
1.2.98 (2005/Feb/07)
- On Windows, random(n) would never be > 32767.
1.2.97 - 1.2.79 (2005/Jan/16 - 2004/Feb/18)
- Fixed a problem with driver->recompile() in multi-level atomic code.
- Input blocking didn't work properly as of the previous release, and input
blocking for binary connections never worked at all.
- Properly keep track of light-weight objects (bug introduced in last LWO
change).
- Fixed various bugs in asn_* kfuns and made the bit string functions more
easily usable.
- Added IPv6 support for unix.
- Got namelookup to work properly again on Windows and BeOS.
- IPv6 now works on Windows (XP SP1 and later).
- Get DGD to work on Windows machines that don't have IPv6, too.
- Changed default platform to DARWIN.
- Fixed a bug in fmod(), and changed the behaviour for integer modulus with
a negative second argument (the sign is now ignored).
- Regular expressions now work properly in a grammar string larger than 64K.
- Fixed 2 bugs in the code optimizer.
- The error "Non-numeric value in indexed string assignment" occurred in an
inconsistent state.
- Implemented object types: object "/path/to/obj" obj;
- Implemented <- as an instanceof operator: obj <- "/path/to/obj"
The second argument must be a string constant. -> and <- have the same
priority.
- Check parameters with the called, not the calling, frame.
- Fixed a string reference problem during compilation.
- Disallow (int) " 123", but allow sscanf(" 123", "%f", f), making both
operations consistent for int and float.
- Fixed a problem in object type function argument checking that could lead
to a crash.
- And another one in a similar situation.
- Fixed a compile-time check for the number of arguments, wrong since the
introduction of object types.
- Don't disconnect if destructing a connection object is prevented by an error
in close().
- Perform inheritance checks only for objects compiled in
driver->inherit_program() itself, not in functions called therefrom.
1.2.78 (2004/Feb/16)
- The swapout callback function in the DGD extension interface is no longer
used.
- Call_touch() didn't work very well in atomic code.
- Moved the O_PENDIO flag into the user struct as CF_OUTPUT.
- O_LWOBJ is now a proper object flag.
- Made sure that destructing the driver object in atomic code does not lead
to trouble.
1.2.77 (2004/Feb/14)
- Rather than causing an error, let the callout and precompiled object lists
returned by status() be nil if they would not fit in an array.
1.2.76 (2004/Feb/05)
- Two callouts started during the same thread will now always be executed in
the proper order if the first has a delay N (milli)seconds larger than the
second, even if DGD is delayed for more than N (milli)seconds between the
first and the second callout (DGD/MP compatibility).
- Make sure that a callout handle is not truncated to 16 bits before an
attempt is made to remove it.
- Include system files before DGD files on Windows.
1.2.75 (2004/Feb/01)
- A few more fixes to get restarting (not just on Windows) to work.
1.2.74 (2004/Feb/01)
- Don't look for further connections when no new ones can be accepted.
- Prepare the name lookup thread for running again after exiting (Windows).
1.2.73 (2004/Jan/24)
- While restoring a callout, not all appropriate fields were zeroed.
1.2.72 (2004/Jan/24)
The typical way of changing the config file is to replace ({ 6047, 6048 }) with ([ "*":6047, "*":6048 ]). Note that these mappings may be empty, in which case no port is opened.
- New kfun: datagram_challenge(), which replaces the return-TRUE-from-open()
way of enabling datagram channels. Multiple datagrams are now buffered per
channel.
- Config file change. ({ 6047, 6048 }) for ports changed to a mapping in
which the address must also be specified: ([ "*":6047, "localhost":6048 ])
1.2.71 (2004/Jan/13)
There is a snag with upgrading the kernel library in a persistent mud: reboot the mud immediately after recompiling the driver object, before compiling anything else.
UPDATE: as of the kernel library distributed with DGD 1.2.77, the driver object can be upgraded normally.
- Fixed a bug in object upgrading, introduced with call_touch().
--
ErwinHarte - 22 Feb 2008
to top