MOO-cows Mailing List Archive


Announce: LPMOO 1.2b6

Version 1.2b6 of LPMOO is now available from in the directory

This is a beta release of 1.2 with the following changes from 1.1.8:

  - New version of DGD ( incorporates several performance
    enhancements, using less memory and slightly smaller swap files.

  - Several bug fixes, including one for the continuous-suspend problem.
    Code which relies on :suspend_if_needed semantics (such as @grep) now
    works reasonably.

  - Optional argument to callers() returns information for a specific task.

  - New datatype: buffers, for manipulating raw binary data. notify() and
    read() have both been modified to (optionally) utilize buffers.

  - Further optimizations to code generation and the general simulation.

The purpose of this release is to discover any last problems that can be fixed
for the eventual 1.2 release. If you use this version, I'd appreciate hearing
feedback, both positive and negative (particularly *gasp* bug reports), from
your experience.

Complete documentation is available in the distribution. For those unfamiliar
with LPMOO, a general description follows:

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

LPMOO has been a personal project of mine for more than 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 considering 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

You can get LPMOO from the following archive (everything you need is included
in the distribution, except a MOO db):*

MirrorMOO, the home of LPMOO, lives at: 8889  (also 9990 for telnet-impaired clients)

Robert Leslie

Home | Subject Index | Thread Index