October 27th, 2010· Enhancement: nofx() function selectively prevents function side-effects.
· Enhancement: sandbox() function combines functionality of objcall(),
· ucall(), and nofx() into a general selective-limitation function.
· Enhancement: New config parameter info_text allows you to add arbitrary
· fields to INFO output. Idea from Talvo.
· Bugfix: Fixed ucall()-related memory leaks. [3.2b1]
· Bugfix: Fixed a bug in Makefile.in that prevented building more then one
· module. [3.2a2]
· Bugfix: Non-hackish way to detect gettimeofday() on MacOS X. [2.0]
· Misc: Updated autoconf to version 2.62.
· Misc: Updated Libtool to version 1.5.26.
· Misc: Updated SHTool to version 2.0.8.
· Misc: Updated gdbm to version 1.8.3.
· Fix: Fixed gdbm tools to work with gdbm 1.8.3.
February 24th, 2009· Feature: All objects have a creation timestamp, accessible via the creation() function. This requires a database upgrade.
· Feature: PennMUSH-style object IDs (objIDs) are supported, using the unique combination of dbref and creation time. Almost anything that can take dbrefs can take an objID. New functions objid() and isobjid(). New substitution %: gives objID of the enactor.
· Enhancement: Queue entries now have a process ID (PID). You can adjust the wait time of something on the wait queue with @wait/pid, or remove an individual queue entry with @halt/pid. @ps now shows PID entries, and information about the queue can be obtained via the ps() function. New param queue_max_size controls the maximum size of the queue.
· Enhancement: @wait/until allows specifying a particular time in seconds since the epoch.
· Enhancement: New function ucall() allows selective preservation and restoration of local registers in a u()-style call.
· Enhancement: New function baseconv() does numeric base conversions.
· Enhancement: New function esc() is a lighter-weight escape()-like function, intended just for dealing with string substitution.
· Enhancement: New function isalnum() checks if a string is alphanumeric.
· Bugfix: Specifying an overly long wait time no longer causes the command to execute immediately.
· Bugfix: When the wait queue is processed, all expired waits are executed (rather than only one such command done per second).
January 15th, 2009· Enhancement: A "reply" command allows you to reply to a page, including being able to reply to the whole group of people paged along with you.
· Enhancement: Property directories (propdirs) offer the ability to inherit attributes from multiple objects. If an object's parent chain does not contain an attribute, the object's @propdir list is searched for that attribute.
· A new special @hook, internalgoto, has been added. This offers the ability to execute a hook on any type of movement, regardless of the reason, with the before-hook executed before leaving a location, and the after-hook executed when entering a location.
· Enhancement: The new /private switch to @function makes the register environment of the called function private, ala uprivate() -- i.e., no registers are passed in, and any changes made to registers by the function are discarded.
· Enhancement: The new /private switch to @hook makes the register environment of the called hook private.
· Enhancement: PennMUSH-style #lamba anonymous functions are supported, allowing functions like map() to take a string to execute rather than requiring it to reside on an attribute.
· Enhancement: The iter() family has been extended -- iter2(), list2(), whentrue2(), whenfalse2(), itext2() -- to allow a second list to be simultaneously processed via the #+ string-token substitution.
· Enhancement: New function ifzero(), the reverse of nonzero().
· Enhancement: New function lregs() lists non-empty registers.
· Enhancement: If speak()'s first argument (the speaker) contains an '&', it's used to specify a speaker name.
· Enhancement: @adisconnect is now passed all the statistics of the session info, via the stack.
· Bugfix: In the ifelse() family, trailing space is no longer accidentally eaten.
· Maintenance: Updated copyright to 2009.