= How to compile and run HeuristicLab with Mono = == Prerequisites == - A Linux operating system (I'm using OpenSuse 12.1). - A recent build (after September 2012) of the Mono Git Master including Mono Tools. I'm using the script from [https://github.com/firegrass/mono-installer-script] for compiling Mono. - System.Windows.Forms.DataVisualization.dll. HeuristicLab uses this assembly from the .NET 4 framework for it's charts . This library is only incompletely implemented in Mono so you need access to the GAC from a Windows operating system and copy this assembly. == Compiling HeuristicLab == - Check out the HeuristicLab sources (see DevelopersManual for more information on how to check out our sources). - In the sources directory, open the {{{ prepareProjectsForMono.sh }}} file and adapt the path to the DataVisualization assembly. - Run {{{chmod +x prepareProjectsForMono.sh }}} and {{{./prepareProjectsForMono.sh }}}. This file changes some of the project files so that they work with Mono. - Run {{{xbuild HeuristicLab.ExtLibs.sln }}} and afterwards {{{xbuild "HeuristicLab 3.3.sln" }}}. We only support building HeuristicLab with xbuild at the moment because MonoDevelop doesn't handle Pre- and Postbuild events in Visual Studio project files correctly. - You can now switch to the {{{ sources/bin }}} directory and run {{{ mono "HeuristicLab 3.3.exe" }}}. == What's missing and what does not work == - External evaluation problem: We use Google Protocol Buffers for communication with external applications. Because Mono is not able to compile protobuf-2.4.1, external evaluation is currently not supported on Linux. - Docking UI: The UI library that we use for docking windows in HeuristicLab does not work properly on Linux. Therefore the UI on Linux is the Multiple Documents UI. - Persistence: It is currently only possible to open files saved with HeuristicLab on Windows and on Linux and not vice versa. Of course files saved on Linux can be opened on Linux, but not on Windows. - Extensive testing. As of this date (October 2012) the main efforts so far were to get HeuristicLab to compile with Mono and to get it to a state where algorithms can be executed. There has been no extensive testing and we know that there are still some bugs in Mono's WinForms implementation that sometimes leads to strange behavior or crashes. We have already fixed some of these bugs in Mono and will continue in doing so. - MacOS X support: We have only tried to run HeuristicLab on Linux. Though there should be no problem with MacOS X, this is still something which has to be tested in the future. == Feedback == If you have tried out HeuristicLab with Mono and have any feedback, comments or questions please let us know and write a mail to our [wiki:UsersSupport Google Group].