Thanks for downloading the Mace source package. Mace is a toolkit and language for building distributed systems. An old version of our documentation is in the docs directory. Our Wiki documentation is offline temporarily while we migrate to Bitbucket. The License is available in the LICENSE file, and is a BSD-style license.

Please email us to let us know if you're using Mace and how, we'd love to hear from you.

Quick Start:

First, you'll probably need to download the [ckillian/mace-extras] package. Place mace-extras inside the mace checkout, at mace/mace-extras.

Mace uses cmake to configure it's build system. Provided that you have everything installed already, first create a directory for building Mace. Then, from within that directory, run cmake [path-to-mace-checkout]. It will check your configuration, and create the build system. Then you can run make to build Mace. If you want to change the configuration parameters, running make edit_cache will open an editor for setting the build flags and other configuration options. make help will also show you a list of runnable make commands. See docs/mace_HOWTO.pdf for more details on using cmake.

If you wish to compile fewer services than those distributed, you can edit services/CMakeLists-services.txt. (You can also add new services here.) You can also select applications by editing at application/CMakeLists.txt, and you can add new applications anywhere using one of the sample CMakeLists.txt in the application directories, and either setting up a new cmake project which uses the Mace project, or which is included in mace/application/CMakeLists.txt.

Mace is not tested on g++ versions before 3.4, and in particular has been known to cause internal compiler segfaults with version 3.3. g++ versions 4.0.x have also been known, at least on Debian systems, to contain a (reported and confirmed) bug which causes them to emit warnings when Mace code is compiled with -O2 and -Wall. The Mace compiler and build system may also emit warnings, but unless the commands fail, these are non-fatal. If you find you need to disable -Werror or -Wall, you may do so in mace/CMakeLists.txt. We generally believe Mace compiles readily well with most g++ versions between 3.4 and 4.7, minus the mentioned 4.0 problems. It has also been tested with clang++, though clang++ at last check had a bug that caused it to emit incorrect warnings.