EtaMOO: A new implementation of the LambdaMOO server

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

LambdaMOO is a network-accessible, multi-user, programmable, interactive system well-suited to the construction of text-based adventure games, conferencing systems, and other collaborative software.

EtaMOO is an experimental multithreaded implementation of LambdaMOO in Haskell with anticipated ready support for 64-bit MOO integers and Unicode MOO strings. The implementation follows the specifications of the LambdaMOO Programmer's Manual, and should be compatible with most LambdaMOO databases as of about version 1.8.3 of the LambdaMOO server code.

N.B. This is (currently) incomplete software. It is not yet usable, although with further development it is hoped that it soon will be.


[Skip to Readme]

Properties

Versions 0.1.0.0, 0.1.0.0, 0.2.0.0, 0.3.0.0
Change log None available
Dependencies array, base (>=4 && <5), bytestring, containers (>=0.4), haskeline, mtl, network, old-locale, parsec, pureMD5, random, stm, text, time, transformers, unix, unordered-containers, vector [details]
License BSD-3-Clause
Copyright © 2014 Rob Leslie
Author Rob Leslie <rob@mars.org>
Maintainer Rob Leslie <rob@mars.org>
Category Network
Home page https://github.com/verement/etamoo
Bug tracker https://github.com/verement/etamoo/issues
Source repo head: git clone https://github.com/verement/etamoo.git
Uploaded by RobLeslie at 2014-01-08T07:34:50Z

Flags

Automatic Flags
NameDescriptionDefault
llvm

Use GHC's LLVM backend to compile the code

Disabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for EtaMOO-0.1.0.0

[back to package description]

Important!

This is experimental and (currently) incomplete software. It is not yet usable, although with further development it is hoped that it soon will be.

At present, all the code will do is (optionally) load a database file and present a REPL interface for running commands and evaluating MOO code from the console as if you had connected as a wizard. While most MOO code will run correctly, there are still some built-in functions that are not yet implemented. Also, notably, there is almost no network functionality, and no way to save any changes made to the database. Finally, there has been no effort to optimize any performance bottlenecks, of which loading a database is at least one.

Once the code is in at least a minimally useful state, this message will be updated or removed.

EtaMOO

EtaMOO is a new implementation of the LambdaMOO server written in Haskell.

LambdaMOO is a network-accessible, multi-user, programmable, interactive system well-suited to the construction of text-based adventure games, conferencing systems, and other collaborative software.

EtaMOO differs from LambdaMOO in a few significant ways:

The implementation of EtaMOO closely follows the specifications of the LambdaMOO Programmer's Manual, and should therefore be compatible with most LambdaMOO databases as of about version 1.8.3 of the LambdaMOO server code.

Installing

EtaMOO is built with Cabal, the Haskell package manager. In the simplest case, simply running:

cabal install EtaMOO

should automatically download, build, and install the etamoo executable after doing the same for all of its Haskell dependencies.

Cabal itself is part of the Haskell Platform which is available for many distributions and platforms.

EtaMOO has non-Haskell dependencies on two external libraries: libpcre (with UTF-8 support enabled) for regular expression matching, and, possibly, libcrypt (often part of the standard libraries) for the MOO crypt() built-in function. You may need to ensure you have these available before installing EtaMOO.