[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/