Differences between LPMOO and LambdaMOO
LPMOO differs from the LambdaMOO server in these ways:
- DGD is a disk-based server, and so LPMOO automatically benefits
from the ability of DGD to swap infrequently used objects to disk.
In the current implementation, MOO verbs are also objects.
- LPMOO utilizes DGD's binary state dumps to maintain database
persistence. The binary files end up being much larger than the
equivalent LambdaMOO db file, but the time required to checkpoint
and read the database is significantly reduced. DGD does not fork
while writing the state dump.
- LPMOO is written entirely in an interpreted language, LPC. This means
it will probably never be able to compete with the LambdaMOO server
in terms of speed. However, there are a few ways LPMOO attempts to
make up for this: The core elements of the simulation are intended
to be compiled into C and linked directly with DGD using the LPC->C
precompiler that comes with DGD. Also, LPMOO itself compiles MOO verb
code into LPC. This means that there is still essentially only one
interpreter (DGD) running the simulation, not two.
- Two additional datatypes planned for a future version of MOO have
already been added: floats and tables. Some
extra built-in functions have been added
to support the new datatypes.
- Support for
open_network_connection() is currently only
A separate DGD package is available to add networking support, which
otherwise is not native to DGD. However, until a stable version of
the package is released, its use is not recommended.