[ANN] GammaMOO 1.8.3+gamma0
"Luke-Jr" <[email protected]> Wed, 7 Mar 2012 21:31:32 -0500
| Newsgroups | gmane.comp.lang.moo.general |
|---|---|
| Message-ID | <[email protected]> |
GammaMOO 1.8.3+gamma0 has been released. It can be downloaded from:
http://luke.dashjr.org/programs/gammamoo/
NOTE: This is a rewrite of the GammaMOO patchset, not based on earlier
GammaMOO code/releases. It is in many ways NOT backward compatible, and
extra precaution should be taken if one wishes to upgrade from the older
GammaMOO codebase.
ChangeLog since LambdaMOO 1.8.3:
Version 1.8.3+gamma0, in progress
-- Fix FOR statement infinite loop when $maxint is the upper limit.
-- Fix random($maxint) to return in correct range.
-- Fix memory leak in flush_input.
-- Fix memory leak in run_interpreter/save_handler_info
in the case where FINALLY returns/breaks/suspends.
-- Fix random(m) to be uniformly distributed for m!=2^k
to allow for m > RAND_MAX
-- Refactored bf_listinsert/bf_listappend to reduce refcounts
-- The disassemble() built-in function will now properly disassemble all
possible literal values. Formerly, FLOAT literals were not properly
disassembled.
-- Trapped various error conditions formerly ignored.
-- Fixed null pointer dereference when trying to dump an uninitialized command
history.
-- Whenever the player flag is cleared on an object, or an object with the
player flag set is recycled, the server will now output a traceback to the
log.
-- Enabled keepalive on TCP connections.
**** Changes relevant to programmers / wizards:
-- server_version() now takes an argument so that information
about the server build can be available in-db.
-- $server_options.protect_<prop> now prevents non-wizard *writes*
and must be followed by load_server_options() to take effect
-- New $server_options .max_list_concat and .max_string_concat
to limit the size of user-constructed lists and strings
-- New $server_option .max_concat_catchable to govern whether
violating new size limits causes out-of-seconds or E_QUOTA error
-- Setting binary mode immediately flushes the connection's buffer, if any
-- $match_object() is called to lookup dobj and iobj (one at a time). If it
returns an OBJ type, the return value is used. Otherwise, the old internal
matching is used.
********** Before upgrading an existing LambdaCore-based MOO to use this
** NOTE ** version of the server, you should probably add at least a dummy
********** $match_object verb (no code needed to get the old behaviour).
-- Call $do_null_command() when there is a null input from a player
-- $handle_uncaught_error() and $handle_task_timeout() are now called with an
additional argument, containing the full command entered that triggered the
exception.
********** Before upgrading an existing LambdaCore-based MOO to use this
** NOTE ** version of the server, you might need to edit your core verbs
********** to at least ignore the new argument. Scattered assignments
without a dummy "extra arguments" catchall at the end will throw E_ARGS!
-- random() now accepts either one or two arguments. If two, the first is
treated as the minimum random number and the second as the maximum.
-- Wizards can create "network" connections entirely within the MOO using new
builtin functions: create_connection(OBJ destination-object[, INT print-
messages]) and
create_connection_from(OBJ source-object, OBJ destination-object[, INT
print-messages])
-- Added new support for in-db definitions of "builtin" functions.
Unrecognized functions are checked for an implementation as $bf__FUNCNAME
They behave the same as C builtins, except:
-- there is an additional protect_core_function/bf_core_function
check pair
-- it's possible to bypass the usual $bf_FUNCNAME by calling them
directly
-- load_server_options() is not required before their protect_FUNCNAME
property takes effect
-- Added support for scattering in `for' statements.
-- Added support for bitshift and bitwise operators:
X << Y Bitshift left operation
X >> Y Bitshift right operation
X &. Y Bitwise AND operation
X |. Y Bitwise OR operation
X ^. Y Bitwise XOR operation
~X Bitwise NOT operation
-- The File I/O extension has been merged (disabled by default). See
FileioDocs.txt for details, and options.h to enable it.
-- Added support for the File I/O Logger, a special limited mode for
append-once logging.
-- If the server is built with libgcrypt support, the builtin hashing
functions
(binary_hash, string_hash, and value_hash) accept an optional second
argument, a string specifying which hash algorithm to use. For
compatibility, the default algorithm is MD5 (please note that MD5 is not
cryptographically secure).
**** Changes significant to people compiling and running the server:
-- Source/build information that is compiled into the server now
comes from version_src.h. Purpose and format of this file is
now described in version_src.txt.
-- New GNUmakefile invokes optional ./version_hook which can be linked
to any script that will generate a version_src.h file from source
control information as appropriate. (You can also have a static
version_src.h file that #defines the VERSION_* macros.)
-- IGNORE_PROP_PROTECTED deprecated since no longer necessary
-- New options DEFAULT_MAX_LIST_CONCAT, DEFAULT_MAX_STRING_CONCAT,
MIN_LIST_CONCAT_LIMIT, MIN_STRING_CONCAT_LIMIT to set defaults
and lower bounds for .max_list_concat and .max_string_concat
-- Specific property names can be reserved, preventing them from being used by
new or renamed properties. By default, the "class" property is blocked to
ensure future WAIF compatibility.
-- The `restart' and `restart.sh' scripts have been modified to use gzip
instead of the old `compress' program.
-- The server can be (and is by default, if available) linked against
libgcrypt
for more hashing algorithms. Pass --without-libgcrypt to configure if you
want the old MD5-only hash functions.
**** Changes relevant to server hackers:
-- Added HACKING as an index to the various server-hacking
documentation files scattered about the source directory.
(do we need a doc directory?)
-- If you add or remove #defines from options.h, you should update
version_opt_gen.pl accordingly and rerun it to generate a new
version_options.h, which then populates the group returned
by server_version("options").
-- Some prep work for 64-bit MOO currently isolated in numbers.c
(will need autoconf update to work properly)
-- server_flag_option() now takes an explicit default argument
-- Rename load_server_protect_flags() to
load_server_protect_function_flags()
-- make_abort_pack(ABORT_KILL) replaces make_kill_pack()
builtin functions can now cause other kinds of aborts
-- Added caching regime for server options other than
.protect_<function>
-- List/string API changes (prep for raising stream exceptions)
raw_bytes_to_binary -> stream_add_raw_bytes_to_binary
strsub -> stream_add_strsub
value_to_literal -> unparse_value
list2str -> stream_add_tostr
-- New stream exception API to catch malloc failures
-- Makefile now uses gperf (3.0.1+) to generate keywords.c
-- configure script is now generated with autoconf 2.13 or 2.5x+
------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/