Skip to content
Todd Schiller edited this page Apr 20, 2015 · 1 revision

Mono Support

Celeriac appears to work on programs under Mono. However, features that involve debugging information are not supported, because Microsoft's CCI library does not support reading/writing MDB files:

  • Debug Information Rewriting: you may not be able to debug assemblies rewritten with Celeriac
  • Comparability Analysis: you cannot use the --comparability flag to have Daikon filter out invariants over unrelated variables

Build Instructions

Building Celeriac on Mono is similar to building Celeriac on Windows, however you must also build the CCI assemblies instead of using the assemblies in the Celeriac repository.

Building the CCI Libraries

  1. Download the CCI AST library source from https://cciast.codeplex.com/
  2. Download the CCI Metadata library source from https://ccimetadata.codeplex.com/
  3. Place the CCI Metadata files in a folder called Metadata in the root CCI AST directory
  4. From the root CCI AST directory, build the library by running
xbuild Ast.sln

Building Celeriac

  1. Download the Celeriac source
  2. Set the CELERIAC_HOME environment variable to an existing directory where you want to keep the Celeriac assemblies. For example, add the following to your ~/.bashrc:
export CELERIAC_HOME=/Users/tschiller/projects/celeriac
  1. Check that the environment variable is set:
echo $CELERIAC_HOME
  1. From the Celeriac directory, build Celeriac by running
xbuild Celeriac.sln

Running Celeriac

  1. Copy the CCI AST assemblies to the Celeriac directory. The CCI assemblies that Celeriac requires all happen to be in the CodeModelRoundtripTests project; from the root CCI library folder run:
cp ./Tests/CodeModelRoundtripTests/bin/Debug/*.dll $CELERIAC_HOME
  1. Run Celeriac using the mono command, for example:
mono CeleriacLauncher.exe HelloWorld.exe
  1. Refer to the GettingStarted guide for more information