MOO-cows Mailing List Archive
ALPHA-TEST release of LambdaMOO version 1.8.0alpha3
I have made another *alpha-test* release of version 1.8.0 of the LambdaMOO
server in the usual place:
This is still an ALPHA TEST release of the server and, although a number of
nasty bugs from the previous release have been fixed, there are almost
certainly some more server-crashing, database-losing bugs remaining, so please
DO NOT USE THIS RELEASE IN A PRODUCTION SETTING!
Please continue to send your bug reports to the main MOO-Cows mailing list so
that everyone can stay informed and we can perhaps thereby cut down on useless
duplication of bug reporting.
I still expect to make more test releases before the final, production-approved
one. For particularly nasty reported bugs, I will either make another test
release containing the fix or else send out a patch; announcements of new test
releases will be made to MOO-Cows-Announce, but all test-release patches will
just be posted to the main MOO-Cows list, to reduce the amount of noise on the
NOTE that there is an important compatibility `NOTE' in the ChangeLog.txt entry
for this release; PLEASE read it BEFORE trying out this version of the server.
Here's the ChangeLog.txt entry for this release:
Version 1.8.0alpha3, 27 December 1995
-- Added new built-in function `call_function(FNAME, @ARGS)' where FNAME is a
string naming a built-in function to call and ARGS are the arguments to pass
to it. This allows you to compute the name of the function to call and, in
particular, allows you to write a call to a built-in function that may or
may not exist in the particular version of the server you're using.
-- Changed MOO-code parser to just issue a warning during DB loading if a call
to an unknown built-in function is encountered; in such a case, the call is
replaced by an equivalent one to `call_function()'.
-- Changed parser error and warning messages during DB loading to include
information about where the program in question is located.
-- Fixed registration of `suspend()' to allow for it being called with no
arguments. (Thanks to Jin-su Ahn for discovering the bug.)
-- Fixed a nasty memory leak in the new match() implementation. (Thanks to
Bill Garrett and Judy Anderson for tracking down a test case.)
-- Fixed a bug in the line-number-finding code in the new decompiler. (Thanks
to Jin-su Ahn for noticing the problem.)
-- Fixed a new bug preventing the loading of suspended tasks from the DB file.
(Thanks once again to Jin-su Ahn for pointing this out.)
-- Fixed a new memory leak in the handling of errors raised from built-in
functions called from !d verbs.
-- Fixed a new memory leak in command parsing.
-- Fixed a new memory leak in built-in property reference.
-- Fixed a serious memory leak in the new decompiler, triggered every time the
server needed to determine a line number in a verb program.
-- Fixed a minor memory leak in the loading of forked tasks from the DB file.
-- Fixed bug that would cause prepositions not to be properly matched in the
very first user command processed after booting. Beware C functions that
return pointers to static private data... :-/
-- Added new built-in function `db_disk_size()', which returns the total size,
in bytes, of the most recent full representation of the database as one or
more disk files. It raises E_QUOTA if, for some reason, no such on-disk
representation is currently available.
-- Changed network input handler to accept any of CR, LF, or CRLF as an end-of-
line indicator. This should improve robustness in the face of broken telnet
clients that assume local EOL conventions will work across the net.
-- Added progress messages to the dumping/checkpointing process just like those
printed during the loading process.
-- Added some extra configuration help for NeXT machines.
-- Fixed server-crashing bug in case where a raised error is not handled by the
innermost handler. (Thanks to Nate Massey for finding the problem.)
-- Added support for unambiguous reference to specific verbs in the built-in
functions `delete_verb()', `verb_info()', `set_verb_info()', `verb_args()',
`set_verb_args()', `verb_code()', `set_verb_code()', and `disassemble(). In
all cases, if the second argument (the verb name) is a positive number
instead of a string, it is treated as a 1-based index into the list of all
verbs defined on the given object.
********** The old behavior, in which numeric strings in these argument
** NOTE ** positions (and in the built-in `.program' command) were sometimes
********** treated as 0-based indices into the list of defined verbs, has
now been disabled by default. To re-enable it, define the property
`$server_options.support_numeric_verbname_strings' and give it a true value.
Most existing databases will require this re-enabling, at least for a period
of transition; a certain amount of important old code critically depends on
this old behavior.
I chose to do things this way in order to emphasize the strong incentive
for sites to update the affected old code to the new, more reliable
mechanism; with the old mechanism enabled, it is possible to create
situations where some verbs (with numeric names) simply cannot be referred
to by name.
-- Fixed bug where errors raised by built-in functions called from !d verbs are
not properly squelched if the built-in has itself previously called a MOO
verb. (Thanks to Brian Buchanan for noticing this bug.)
Subject Index |