changes-3.2.6

driver
01-Apr-1999 (Lars Duening) -- Release 3.2.6
    - Changed efuns:
        + allocate_mapping() renamed to m_allocate(). The old name
            is still available as alias.
        + clone_object() accepts objects as templates.
        + efun308() renamed to set_environment(). The old name is
            still available as alias.
        + file_name() renamed to object_name(). The old name is still
            available as alias.
        + filter_mapping() renamed to filter_indices(). The old name
            is still available as alias.
        + mapping_contains() renamed to m_contains(). The old name is
            still available as alias.
        + map_mapping() renamed to map_indices(). The old name
            is still available as alias.
        + mapping_contains() renamed to m_contains(). The old name is
        + m_values() can return any column of a mapping.
        + notify_fail() returns 0.
        + set_this_player() accepts 0 as argument.
        + to_int(), to_object() and to_float() accept their result
            type as argument.

    - Corrected efuns:
        + call_out(): if the command_giver destructs before the callout
            is activated, this_player() is made sure to be 0.
        + map_array() stumbled when objects in the array in question
            were destructed during the operation.
        + sizeof(mapping) no longer counts destructed objects in
            the mapping to the size.
        + sprintf() of float values < 1.0 no longer causes a SING error.
        + terminal_colour() correctly wraps strings with a length one less
            than the wrap limit.
        + this_interactive(): during login it points to the login object.

    - New efuns:
        + abs(): return the absolute value of the argument.
        + all_environment(): return all environments of an object.
        + caller_stack(): return the call stack.
        + clonep(): test if an object is a clone.
        + copy(): produce a shallow copy of the argument.
        + deep_copy(): produce a shallow copy of the argument.
        + filter(): filter an array or fill-width mapping.
        + load_name(): returns the filename of an objects blueprint.
        + load_object(): loads an object.
        + make_shared_string(): enters a string into the shared string table.
        + map(): map an array or full-width mapping.
        + m_reallocate(): changes the width of a mapping.
        + object_info(): returns internal information about an object.
        + program_name(): returns the name of an objects program.
        + set_next_reset(): set the time of the next reset.
        + unmkmapping(): deconstruct a mapping to arrays.
        + upper_case(): make a string all upper case.
        + widthof(): return the width of a mapping.

    - Master Object:
        + All functions can be static.
        + Functions like privilege_violation() or heart_beat_error(), but
            also valid_read() and valid_write() no longer receive destructed
            objects as arguments.
        + Apply 'object_name()' renamed to 'printf_obj_name()'.

    - Compiler:
        + New predefined macro __MAX_EVAL_COST__ expands to the evaluation
            cost limit.
        + Bugfix: __DOMAIN_NAME__ on some machines returned the NIS, not the
            DNS domain.
        + Bugfix: __MASTER_OBJECT__ could be set to a non-canonic name.
        + Bugfix: __FILE__ and __MASTER_OBJECT__ returned names with leading
            '/' in compat mode.
        + Bugfix: (virtual) inheritance of variable-only objects with
            variable initialisation doesn't crash the driver anymore.
        + Bugfix: #'++/#'-- in closures work.

    - Fixed Crashers:
        + Errors in a callout to an efun closure.
        + Adding arrays up to and over the upper limit.
        + Destruction of non-interactive snoopers.
        + funcall()/apply() on a swapped variable.

    - Other Changes:
        + The old behaviour of explode() and previous_object() is no longer
            available. Floats, transcendent functions, mappings and extended
            varargs are now permanent features of the driver.
        + Re-implemented the handling of heartbeats, resets, cleanups and
            swapping in order to avoid caused lags. This also makes
            the config parameter RESET_GRANULARITY unnecessary.
        + If used, the __INIT() function is protected instead of global, and
            can't be called from outside the objects anymore (it shouldn't be
            callable at all anyway).
        + When subtracting mappings from each other, the subtrahend may
            be of any width, but only its keys count.
        + The 'status tables' command has an additional entry 'Object status'.
        + Bugfix: fixed an eval cost leak in catch().
        + Bugfix: fixed memory leak in terminal_colour().
        + Bugfix: if a command disconnects, but not quits a player, the prompt
            is no longer printed (before it ended up on stdout, cluttering
            the logfiles).