Getting the Edinburgh Concurrency Workbench

First, download the source code, heap image or executable you want

If you've found a heap image or executable you're happy with, go straight to the installation instructions. Otherwise:

Build your own CWB

You can create one or more build files and use them to build customised executables.
  1. Choose your process algebra (just one for each build: (note for people used to having more than one PA in the same CWB executable) (T)CCS SCCS

  2. Select any optional modules that you want to include. (The dependencies are such that you may actually get more than you ask for.)
    Module Comment Commands provided
    Basic Core stuff which is always there agent clear cwb diverges echo help input output prefixform print quit relabel save set toggle transitions
    Agent Extra Miscellaneous other agent commands ((T)CCS only at present: volunteers to port the SCCS code welcome.) closure deadlocks deadlocksobs derivatives findinit findinitobs freevars init normalform obs random sort stable states statesexp statesobs vs
    Graph Infrastructure: you'll usually get this even if you don't select it, as things depend on it graph size
    Equivalences Bisimulation-style equivalences and related commands branchingeq cong diveq eq min pb strongeq
    Testing Hennessy's testing relations. (NB includes some CSP standards by other names.) mayeq maypre musteq mustpre testeq testpre
    Contraction A preorder by Milner. contraction
    Divergence Relations from Walker's "Bisimulations and Divergence" (?) pre precong strongpre twothirdseq twothirdspre
    Logic The modal mu calculus commands (plus dftrace!) checkprop checkpropold dfstrong dftrace dfweak prop
    Simulation Explore an agent, set breakpoints etc. sim (with its subcommands)

  3. Save the file as custom.ml (or what you will) in the top level CWB source code directory.

  4. Build your customised Edinbugh Concurrency Workbench by compiling the custom build file.
    • EITHER Make sure you have version 110.0.7 of the Standard ML of New Jersey compiler. This is free and you can get it from its official home page. Note that this is the most recent "released version" of the SML/NJ compiler, even though it is several years old. More recent "working versions" will generally not compile the CWB (because of library changes, and in the last couple I tried, because of known-but-not-fixed compiler bugs).

      OR try this patched version kindly provided by Alexander Knapp, to make the sources compile with New Jersey SML 110.78. Note, though, that I provide these without having tested them, and Alexander writes that he has done only limited experiments.

    • Compile the custom build file: on Unix, this will do nicely: your-compiler-name < custom.ml
    Note that this builds you a heap-image, not an executable file. Unfortunately making an executable with the SMLNJ110 is far from simple! If you're feeling brave, here are some instructions for using a third party utility to make an executable from a heap image.

  5. Once you have an executable or heap image that you're happy with, see the installation instructions.
  6. Back to CWB home page


    Perdita.Stevens@ed.ac.uk