Welcome /

Thanks for downloading the ContextLattice source package. ContextLattice is an elastic-oriented programming toolkit based on Mace, which is a toolkit and language for building distributed systems. Mace documentation can be found in the docs/ directory, and there is a short README about the modelchecker in the application/modelchecker directory. 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 ContextLattice and how, we'd love to hear from you.

Quick Start:

ContextLattice uses cmake to configure it's build system. Provided that you have everything installed already, first create a directory for building ContextLattice.

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 ContextLattice. 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 ContextLattice project, or which is included in mace/application/CMakeLists.txt.

ContextLattice is compatible and tested on g++ 4.1.x to 4.7.x. But it 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 ContextLattice code is compiled with -O2 and -Wall. You can either turn off -Werror, or compile with 3.4 or 4.1, 4.2, or higher.