Installing MetaPRL

Warning: MetaPRL is currently Beta and could still have some nasty bugs.

Downloading MetaPRL

In order to compile and run MetaPRL you are going to need the following packages:

  1. GNU make. Make 3.77 has a bug and may not work, but make 3.76.1, 3.78.1, or later should work fine.
  2. Objective Caml: our version contains a small patch to CamlP4 to compile the CamlP4 distribution in native code.
  3. Ensemble: you need Ensemble only if you want to use the distributed prover.
  4. MetaPRL sources.
  5. HTMLDOC: you will only need Htmldoc if you want to be able to convert MetaPRL documentation into Postscript or PDF format yourself. (Note: http://files.metaprl.org/doc/ should already contain the latest version of documentation in Postscript and PDF format, so you are unlikely to need Htmldoc).

OCaml and Htmldoc are available as source, and RedHat 6.x, 7.x, 8.x and 9 RPM files for Linux x86. You can get the rpm2html listing of available RPMs and download them from http://rpm.nogin.org/ocaml.html and http://rpm.nogin.org/htmldoc.html respectively or a plain listing directly from http://rpmbin.nogin.org/MetaPRL/. If you are going to build OCaml yourself, you can get our patches at http://cvs.metaprl.org:12000/cvsweb/metaprl/patches/

You can download Ensemble from ftp://ftp.cs.cornell.edu/pub/ensemble/.

You should be able to download MetaPRL sources tarball from http://files.metaprl.org/, but if you plan to participate in MetaPRL development, you should consider using the CVS access to MetaPRL sources.

There is also a Win32 distribution that we have not placed online yet (if you want it, contact Jason Hickey). You will need the Cygnus Systems GNU-Win32 distribution.

CVS Access to MetaPRL Sources

You can browse the MetaPRL CVS repository.

If you plan any development in MetaPRL or if you want to download the latest version of MetaPRL, you may consider using the public CVS repository. This will allow you to have access to the latest changes in the distribution. The normal service is read-only, but if you would like to become a contributor with write access, read the read-write CVS instructions.

The CVS server is on the machine cvs.metaprl.org. First log into the server by running

% cvs -d :pserver:anoncvs@cvs.metaprl.org:/cvsroot login
The password is anoncvs. It will be stored on your computer, so you only have to run the login command once.

Now you can checkout the distribution by running:

% cvs -d :pserver:anoncvs@cvs.metaprl.org:/cvsroot checkout MetaPRL

You can find more information on CVS from the CVS Documentation Pages and from The CVS Book.

Installation and configuration

OCaml

If your are not using the provided RPMs, then in order to install OCaml and CamlP4 download and unpack the distributions, than apply the patches. After that, proceed as described in the INSTALL files in the distributions. If your OS supports pthreads, run OCaml configure script with -with-pthread option in order to get pthreads support in OCaml. After you have compiled and installed OCaml and Camlp4, go to the OCaml source tree and copy the following files:

into the OCaml library directory.

Ensemble

To install Ensemble, unpack the distribution, and edit the <ensemble>/mk/config.mk file. You will want to use the Ensemble socket library (not the Unix socket implementation), then change directories to <ensemble>/def, and run make. You can also build the native-code libraries by running make in the <ensemble>/opt directory. More information on Ensemble is available at the Ensemble Home Page.

MetaPRL

To install MetaPRL, unpack the distribution into some directory <metaprl> and build the distribution with these steps:

% cd <metaprl>
% make opt   (builds native code, you need pthreads to be supported by your OS and compiled into OCaml)
or
% make all   (builds bytecode)

After you run make for the first time, it will create the mk/config file (as well as an empty mk/config.local file) that you will need to customize, before the rest of the make process can go through. The mk/config file is self-documenting.

If you are using Ensemble, set ENSROOT=<root of the ensemble source tree> in the mk/config file.

You may need to set variables CAMLLIB and CAMLP4LIB to point to the directories where you have installed OCaml and Camlp4 files. You can either set them in the mk/config.local file, for example:
CAMLLIB=/usr/lib/ocaml
CAMLP4LIB=/usr/lib/ocaml/camlp4

or in the environment. If a variable is set in both, mk/config.local takes precedence over the environment. The defaults are /usr/lib/ocaml and /usr/lib/ocaml/camlp4 respectively.

To run the native code version of MetaPRL in an xterm with the correct fonts, use <metaprl>/editor/ml/mpxterm (normal fonts) or <metaprl>/editor/ml/mpxterm-large (larger font).

If starting MetaPRL by hands (or from Emacs), the programs to use are <metaprl>/editor/ml/mpopt (native code) and <metaprl>/editor/ml/mptop (bytecode). You will need to use a Unicode (iso10646-1) font to be able to interact with some sense. We currently recommend using the -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1 font (wihich is what mpxterm script uses), but in some cases another font may work better.

That's it. To navigate the MetaPRL logics and programs, you will need to read the <metaprl>/editor/ml/QUICKSTART file or the User Guide. To start developing new code, read the Developer Guide.

Htmldoc

If you want to use Htmldoc, download it from http://www.easysw.com/htmldoc/