MOO Server Resources

About server versions and release plans

[August 10, 2023]  There have been no official server releases since version 1.8.1 (January 11, 2000).

Since then, a number of development snapshots were packaged by various people as "1.8.2" and there exist tags in the CVS and git repositories for both 1.8.2 and 1.8.3, the latter of which was at one point intended to be a release but this never actually happened.

The code currently running at LambdaMOO, which has been identifying itself as a 1.8.3+47 (i.e., 47 commits beyond what we were going to call 1.8.3), which has been running for over 10 years without a hitch (and therefore might not unreasonably deemed suitably beta-tested), and which also (modulo log comments) matches the master branch that's been available at sourceforge, I am, as of today, retroactively declaring it to be the 1.8.4 release that also never actually happened.

In parallel to this, there was also a (successful) effort to develop a 64-bit Unicode MOO server (dead link that may possibly come back to life someday?). This server currently runs at Waterpoint and possibly other places. LambdaMOO itself does not yet use this branch due to legacy MOO code that will get confused by the transition to 64-bit integers (and this will probably also be true of other LambdaCore-derived MOOs), and so that all needs to be sorted out first.

Unicode LambdaMOO is a fork from LambdaMOO LambdaMOO in the sense that that both branches (unintentionally) have bugfixes not incorporated into the other, and there is potential confusion in that the Unicode LambdaMOO server also has been identifying itself as 1.8.3, though it is currently fairly easy to test which one happens to be running (;2147483647+1).

Also, Unicode LambdaMOO also writes out databases that identify themselves as the same file format (version 4) but these can either fail to load (due to illegal non-ASCII characters in strings) or silently corrupt themselves (if there are any integers larger than 232) if ever they're read by a non-64-bit/Unicode server — meaning if you're running LambdaMOO's LambdaMOO server, just don't do that. Other issues are detailed in discussion on *Server-Hackers (starting at 1185) on LambdaMOO.

There is ongoing effort to merge these branches. The next actual version, whenever it happens, will be (at least) 1.9.0.

LambdaMOO's LambdaMOO server source

The code currently running at LambdaMOO is hosted on Github. Just install git and pull the master branch. Please be aware that this version only compiles on 32-bit hardware; see above.

[July 5, 2023]  (This next bit never got adopted into any other branches, so I've taken the opportunity to simplify it. The latest development on both the master and unicode branches now have this functionality moved into config.status, where it should have been all along, and the perl code is completely gone (replaced by corresponding autoconf/M4sh), meaning, for future releases the full server_version information will just get taken care of automatically and you won't have to think about it, though there will be ./configure options to mess with it if you really want to.

Meaning don't put too much effort into learning how version_hook and GNUmakefile worked because that will be disappearing in 1.9.0; be warned.)

To make server_version() work the way it currently does on LambdaMOO:

  1. Make sure you have a somewhat recent version of Perl installed (I have 5.10.1 at the moment).
  2. Download the file version_hook_git.pl, removing any .txt extension(s) your browser might add to the filename.
  3. Copy or symlink it to version_hook in the top-level server directory.
  4. Add the following lines to .git/info/exclude:
    • version.sha
    • version_hook
    • version_hook_git.pl
    These files need to be kept separate from version control, for (what I hope are) obvious reasons.

You may also want to read version_src.txt to get an idea what's going on, especially if you're thinking about packaging this for Debian, Red Hat or whatever.

LambdaMOO server source

[July 5, 2023]  For at least the past 15 years, whatever development has been taking place has been in git, whether the aforementioned repository or one of its various forks. Thus, while there has been some effort to keep the original official CVS repository at sourceforge updated — it essentially does have the current LambdaMOO LambdaMOO (1.8.4) source; it's a fair bet that nobody really sees the point to maintaining it anymore, and by the time 1.9.0 comes out, it will be quite far behind. Thus, the following is really only of historical interest:

Server sources can be checked out through anonymous (pserver) CVS as follows (when prompted for a password for anonymous, simply press the Enter key):

cvs     -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/lambdamoo login
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/lambdamoo co server

Test Scripts

[August 19, 2021]  There is now a single package containing all of the tests. This is not by any means a complete test suite, but maybe someday...

1.  srcip-test
tests the various network command line options introduced in w_srcip (-a for setting source IP address, -O for enabling/disabling open_network_connection(), -p for specifying the listen port).
Note that this test depends on your network configuration so you'll likely need to edit its config file before it will work. Also, netstat needs to be installed (on Debian do apt install net-tools) if you don't have this already.
2.  hierarchy-test
tests the fast hierarchy checker introduced in w_startup
3.  oob-test
input task queue stress test for w_oob
4.  icmd-test
stress test for "intrinsic-commands" connection option
5.  soptions-test
stress test for protected properties and server options