Up to Main Index Up to Journal for October, 2019 JOURNAL FOR THURSDAY 31ST OCTOBER, 2019 ______________________________________________________________________________ SUBJECT: WolfMUD v0.0.14 released DATE: Thu 31 Oct 18:37:07 GMT 2019 The next release of WolfMUD, v0.0.14, is now available for download[1]. It seems to be an unofficial tradition that I try to produce a new release of WolfMUD for Halloween. To be honest I didn't think I was going to be ready in time this year. The last release was way back in February so I really didn't want to miss this opportunity. This release contains an overhaul of the internal workings of Inventories, new IP quotas, new alias qualifiers, new bound alias qualifiers and many other fixes and tweaks. The biggest change is that all of the commands now use the new matcher for selecting items. Now you can 'GET THE LONG SWORD AND THE ARMOUR', 'EXAMINE THE 2ND TREASURE CHEST' and 'PUT SWORD AND ARMOUR INTO 2ND TREASURE CHEST'! Due to a change introduced in Go 1.13 from this release an alternative configuration file and/or data directory is no longer specified as a parameter to the server. It can now be specified using the WOLFMUD_DIR environment variable. For more details see the compiling-from-source.txt and running-the-server.txt documentation in the docs directory of the download. Time to get out the pumpkin again! __ /// / __ __ \ \/ __ \/ _ \/ _ \\/\/\// \ \/\/\/ / HAPPY HALLOWEEN Main highlights from the release notes: Added - New ring buffer added for use with connection quotas. - Per IP address connection quotas added. - A text.Unfold function has been added to unfold folded text while keeping significant whitespace. - Support added for bound qualifiers allowing a qualifier to only be valid for a specific alias. For example: '+SHORT:SWORD SWORD SHORTSWORD' allows the item to be referred to as 'SWORD', 'SHORTSWORD' or 'SHORT SWORD' but not 'SHORT SHORTSWORD'. The bound to alias does not have to be explicitly specified. Given '+SHORT:SWORD' the bound qualifier 'SHORT' will be added as will the alias 'SWORD'. - Server stats now include number of allocations made since the last stat line was logged. Shown in the stats line as 'A[ +n]'. - Tests added for GET, DROP, PUT, TAKE, OPEN, CLOSE, EXAMINE, JUNK and READ commands. Changed - Cleaned up error handling in client communication code. - Documentation updated with HTTPS links. - The server greeting and zone file descriptions are now unfolded when the record jar file is read. - The commands GET, DROP, PUT, TAKE, OPEN, CLOSE, EXAMINE, JUNK and READ now use the new matcher code. - The messages for the commands GET, DROP, PUT, TAKE, OPEN, CLOSE, EXAMINE, JUNK and READ have been improved. - Events now use a small cache for timers. - Inventories are now implemented using a double linked list instead of a slice. This reduces the bookkeeping complexity, storage and allocations. - Players and Narratives are now in separate lists within an Inventory. - The Inventory.Players method is now Inventory.Occupied to better reflect its purpose. Inventory.Players now returns the players in an Inventory. - The GET command can no longer be used to pick up another player. - The PUT command can no longer be used to put another player into a container. - The Inventory.Compact configuration value is now obsolete. - Matcher code rewritten and performance improved. - Action, Cleanup and Reset attribute types now have a Pending method. Fixed - Connection logging now reports correct source file in log. - Write timeout for client connections now set correctly. - Frontend now delivers outstanding messages to client when closed. - Test function TestFixDEL in client tests misnamed, should be TestClean. - A gofmt issue in config/config.go has been fixed. - Fields within a free text section in a record jar file should just be part of the free text section and not recognised as fields. - Indented record separators '%%' in a record jar file should be ignored when found in a free text section. - Line feeds should be preserved when reading record jar free text sections. - String lists in a record jar should not be reordered when encoded/decoded. - Alias qualifiers are now treated as distinct from aliases. This fixes the bug where a qualifier would be recognised as a valid alias. - Name of actor for LOOK command should be upper cased. - The Thing.Collectable method no longer reports players as being collectable. - Corner case in the matcher when switching from 'not enough' to 'unknown' match results fixed. - Matcher should only be returning unique results. - The TAKE command now checks for a TAKEOUT veto before checking if item is in the container. - For Go 1.13 the server no longer uses command line arguments to set an alternative data directory or configuration file. Instead it uses the WOLFMUD_DIR environment variable. Documentation compiling-from-source.txt and running-the-server.txt have been updated. Known Bugs - New search and matching item limits and item instances undocumented. -- Diddymus [1] Download area: ../../../downloads/ Up to Main Index Up to Journal for October, 2019