[Tinymux] TinyMUX 2.4.0.20 Alpha

Stephen Dennis brazilofmux at gmail.com
Sun Oct 16 20:39:26 EDT 2005


TinyMUX 2.4.0.21 <http://2.4.0.21>
ftp://ftp.tinymux.org/TinyMUX/tinymux-2.4/alpha/21

WARNING: Please use good judgement. If you have some spare cycles, give
it a try. We would recommend strongly that you not update any
production game to 2.4.0.21 <http://2.4.0.21> until there has been some
feedback. There
are some particularly risky changes that have been made in this patch.


-- Added support for MEMORY_BASED to the ./Backup script.

-- Ian added a wildcard argument to comlist and @clist commands as
well as displaying these lists in sorted order.

-- Ian added support for multi-character delimiter to LAST() function.

-- Ian added support for DIE() to return a list of rolls rather than
just the sum.

-- Avoid reference to freed memory when an outputsuffix is set and
LOGOUT is sent at the login screen. Found and fixed by Alierak.

-- The logout_cmd_access parameter disables a logged-out command when
any access restriction, not just need_player, is specified.

-- Strip ANSI so ^-command matching works with ANSI emits.

-- Fixed pointer dereference bug in RxLevel() introduced by Brazil
which caused REALITYLVLS to crash after ./Startmux.

-- Changed dbconvert-mode so that it creates 8 temporary files when
loading a flatfile instead of 4.

-- Changed attribute cache so that it retains knowledge that an
attribute value does not exist in the database.

-- Maintain hash page cache as a double-linked list ordered by recent
use. Previously, finding the oldest entry required looking at a
counter in every entry. This improved AllocateEmptyPage()
performance significantly.

-- No longer call fsync() when in dbconvert mode.

-- Mapping page offsets to cache entries has been re-done. There is
now a corresponding 'directory' containing all the indices of the
cache entries. This is maintained similarly to the directory of
offsets (which is written to netmux.dir). To maintain this linkage
properly, it is necessarily to update ranges of entries which
correspond to the hash page in the cache. Previously, the lookup
was accomplished by looking at recent queries, and if that failed
to give the answer, it looked at all the cache entries to find a
match. This change greatly improves ReadCache() performance as the
corresponding cache entry is now always known.

-- Avoid scanning an object's attributes in Hearer() or sweep_check()
if it is already known to have @listen or is not set MONITOR.

-- Collect and cache knowledge about the presence of ^-Commands and
$-Commands on all objects. This knowledge is used to short-circuit
later checks as unnecessary.

-- Removed mention of SIDEFX flag from help topic as this is an
Rhost-ism.

-- Alierak refactored the logged-out commands code, removing some
unreachable code in do_command() and clarifying how logged-out
commands are handled.

-- Alierak removed duplicated code relating to setting the MONITOR flag.

-- Included REALITY and REALITY.SETUP readme files which were
previously left out of the distribution.

-- Removed BTMUX patch surfaces as their approach has changed.

-- Fixed various minor GCC 4.0 build issues.

-- Verify that pread() and pwrite() can actually be used.

-- Ashen-Shugar provided muxdbpuller which allows individual objects
(and attributes on those objects) to be extracted from an offline
flatfile. The result is in an @decomp format suitable for quoting.


Recent profiling data has been very useful. AllocateEmptyPage() and
ReadCache() have been radically optimized. This by itself may only lend
a 5% performance improvement to the server, but for dbconvert, it
reduced the unload operation of a large database from 75 seconds to 32
seconds.

In addition to those two changes, several changes should lead to fewer
requests for the lower-level database in general. For example, the
upper-level cache now remembers that an attribute value does not exist.

Robby has removed several areas of unnecessary attribute scanning
related to listening.

Another interesting (and risky) change is to collect and use knowledge
of which objects contain ^-Commands and $-Commands. This aspect has not
yet been profiled to determine what the benefit may be.


Brazil
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.tinymux.org/pipermail/tinymux/attachments/20051016/6c975b30/attachment.html


More information about the Tinymux mailing list