Subject: Release 1.7.6 of the LambdaMOO server

From: Pavel Curtis <[email-masked]>
Date: Mon, 11 Oct 1993 17:21:50 -0700

I have just made available release 1.7.6 of the LambdaMOO server.  This is a
`small features' release, containing some things that I found necessary for my
own work and some easy things that other folks have asked for, along with a
couple of bug fixes.

As usual, you can FTP the new server from

	parcftp.xerox.com:pub/MOO/LambdaMOO-1.7.6.tar.Z

I hope to get new versions of the LambdaMOO Programmer's Manual and the
LambdaCore database out within the next day or so, to match this server
release.

			      *****************
			      *** NOTE WELL ***
			      *****************

		This release of the LambdaMOO server includes
		an incompatible change, in which the server no
		longer makes any calls to :confunc or :disfunc
		verbs on players or rooms.  PLEASE read the
		ChangeLog entries below and follow the
		directions there before using this server on
		any existing database.

Here's the ChangeLog entry for this release:

Version 1.7.6, 11 October 1993
-- The built-in command parser now matches the (in)direct object string against
   the names of objects as well as their aliases.
-- The server no longer calls :confunc or :disfunc directly when users connect
   or disconnect; instead, it calls the following verbs on #0 in the
   appropriate circumstances:
	:user_created(USER)
		When #0:do_login_command() returns USER, a valid player object
		whose number is greater than the value max_object() returned
		before the server called #0:do_login_command().  That is, when
		a new user has been created.
	:user_connected(USER)
		When #0:do_login_command() returns USER, a previously-existing
		valid player object for which no active connection already
		existed.
	:user_reconnected(USER)
		When #0:do_login_command() returns USER, a previously-existing
		valid player object for which there was already an active
		connection.
	:user_disconnected(USER)
		After the end of a task that called either boot_player(USER) or
		set_player_flag(USER, 0).
	:user_client_disconnected(USER)
		When USER's client unilaterally closes its connection to the
		server.
   ******** Before upgrading an existing MOO to use this version of the server,
   * NOTE * you should install the following verbs on #0 in order to remain
   ******** compatible with existing code; NOTE WELL that they should be
   installed with the `d' permissions bit UNSET:
	#0:"user_created user_connected"
   		user = args[1];
		fork (0)
		  user:confunc();
		endfork
		user.location:confunc(user);
	#0:"user_disconnected user_client_disconnected"
   		user = args[1];
		fork (0)
		  user.location:disfunc(user);
		endfork
		user:disfunc();
-- Non-wizard users can now use the read() built-in function when they give a
   connected object they own as an argument.  Thus, it is possible, for
   example, for a non-wizard to prompt itself for input.
-- The match() and rmatch() built-in functions now cache some number of the
   most recently used patterns, somewhat speeding up the matching process.
-- The server now calls #0:checkpoint_started() whenever it starts to dump a
   checkpoint of the database and #0:checkpoint_finished(SUCCESS) whenever the
   dump finishes, where SUCCESS is true iff and only if the checkpoint was
   successful.
-- Fixed a bug (!) in the built-in command parser whereby in the command
	="This is in quotes" and this is not
   the variable `verb' would correctly be set to "=This is in quotes" but the
   variable `argstr' would be "is in quotes\" and this is not" instead of the
   correct "and this is not".  (Reported by Shirgall.)
-- Fixed some compilation problems with the SYSV/TCP configuration on Solaris
   machines.
-- The value of `argstr' when the server calls either #0:do_login_command() or
   #0:do_out_of_band_command() is now the raw command line as received from the
   connection, as opposed to the empty string.