OVERVIEW: CSML is a system to help developing applications that freely mix OCaml and C# code or wrapping existing libraries of one language to make them available to the other one. The system is made of a compiler and a runtime support library. DOCUMENTATION: The documentation for CSML is available on its main website. CONTENTS: - A binary version of the compiler. - Sources files (OCaml, C#, C) that are part of the runtime library. - Some examples applications that combine OCaml and C#. - Makefiles to bootstrap the system and compile the examples. LICENSE: The compiler can be freely used but it cannot be redistributed without the express permission of LexiFi SAS. All the other files in the distribution can be freely redistributed. They are subject to the terms of the GNU Library General Public License version 2. See the file LICENSE for details. Some parts of the runtime library are automatically generated by the build system using the CSML compiler. Even if they are not part of the original package, these files are also subject to terms of the GNU Library General Public License version 2. They can thus be redistributed. Of course, LexiFi claims no right on files produced by the CSML compiler, except the ones that are part of the CSML runtime library. It it thus entirely possible to use CSML in the context of an open-source project. LexiFi SAS is willing to cooperate with other people interested in improving the CSML system. Feel free to apply for a source distribution of the compiler. REQUIREMENTS: The Windows version of CSML has been tested with the following configuration: - OCaml 3.11 (current version of the OCaml official CVS as of 2008-09-04), with the following two ports: * MSVC Win32 port (using Visual C++ 2005 Express Edition) * MinGW port (using the "gcc -mno-cygwin" compiler from Cygwin) - Visual C# 2005 Compiler for .Net 2.0 - a Cywin development environment (with make, grep, ...) (All these developments tools are available free of charge.) The Linux version has been tested with the following configuration: - OCaml 3.11 as above - Mono 1.2.4 LIMITATIONS: - CSML does not work on Win64 INSTALLATION: The root Makefile in the distribution has a default target "all" that builds the CSML runtime support. The target "install" will install all the files needed to use CSML into the directory INSTALLDIR (by default: install/). EXAMPLES: The target "runtest" of the root Makefile compiles and runs all the examples. The following examples are included: - getting_started: show the basics of CSML. - opaque_binding: abstract binding between C# and OCaml types (values are not copied). - structured_mapping: concrete mapping of structured values. - winforms: import C# components as OCaml objects