Message-Id: <199501270617.BAA03777@tanelorn.ccs.neu.edu> To: moo-cows@parc.xerox.com Subject: Announcement: LPMOO 1.1.4 Date: Thu, 26 Jan 1995 22:17:10 -0800 From: Robert Leslie <rob@ccs.neu.edu> This is a formal announcement for the release of LPMOO version 1.1.4. LPMOO is a reimplementation of MOO built on top of a server called DGD. It is completely compatible with version 1.7.8 of the LambdaMOO server (although differences do exist -- see below as well as the documentation in the distribution). DGD is a highly portable, small, efficient network server. Distinguishing features of LPMOO include: - Disk-based operation. Unused MOO objects and verbs are transparently swapped out of memory. The swapping rate is configurable. - Table and floating point support. (Tables are lists which can be indexed by any MOO value, also sometimes called associative arrays, mappings, or dictionaries in other languages.) - Access to a lower-level language (LPC) that can be used to implement new features as needed. For example, LPMOO comes with a filesystem module that can be used to implement file access from MOO. - Binary checkpoint files. Checkpoints are made quickly and without forking. (Support for reading and writing LambdaMOO-format db files is also included.) New in version 1.1.4: - Complete network support, including both outbound and custom inbound connections. LPMOO supports an extended version of open_network_connection() as well as listen() and unlisten() for multiple- port listening (MPL). These allow the MOO to directly provide custom network services such as http, gopher, finger, et al. - Support for sending partial lines of output (prompts), special characters (if introduced from LPC), and toggling the telnet ECHO option (for reading passwords from clients that understand telnet). - Support for invisible connections from "daemon" processes that talk directly to LPC objects. (This is used to implement DNS hostname lookups.) - Extra math functions for manipulating floating point values. - An improved MOO->LPC code generator. Execution of MOO verbs is now much more efficient. - A greatly simplified installation procedure, and an improved bootstrap database loader. LPMOO has been a personal project of mine for close to a year. It was intended to demonstrate a new model for MUD implementations, where a sophisticated layer of abstraction is placed between the server (which should be as general as possible) and the interface seen by the users and programmers of the MUD. In this case, MOO is the abstraction layer placed on top of DGD. LPC has proven to be an efficient implementation language for most purposes, especially combined with its ability to be compiled into C. The flexibility of writing custom LPC modules and calling them from MOO programs opens many opportunities for extending the system and/or writing optimized versions of critical MOO routines. I'd very much welcome feedback; you're invited to visit MirrorMOO or send me email. You can get LPMOO from the following archive (everything you need is included in the distribution, except a MOO db): ftp.ccs.neu.edu:/pub/mud/servers/lpmoo/* MirrorMOO, the home of LPMOO, lives at: mirror.ccs.neu.edu 8889 (also 9990 for telnet-impaired clients) -- Robert Leslie rob@ccs.neu.edu