OVERVIEW: OCamlDuce is a merger between the Objective Caml and CDuce languages. It comes as a modified version of the OCaml tools (toplevel, native and bytecode compilers, ocamldoc, ocamldep). AUTHOR: OCamlDuce has been written by Alain Frisch starting from the OCaml and CDuce source trees. It has been maintained by Stéphane Glondu since version 3.11.0.0rc1 at: http://ocamlduce.forge.ocamlcore.org/ REQUIREMENTS: A working OCaml installation must be available to compile OCamlDuce. The version of OCaml must match the version of OCamlDuce. You must also have the sources of OCaml. A recent version of findlib must also be available for the installation. INSTALLATION (from the distribution tarball): * edit the Makefile with location of OCaml tarball if needed * execute: make prepare && cd ocaml-* ./configure <your-options> make -f Makefile.ocamlduce <target> where <target> is one of: - world: build only bytecode stuff - world.opt: build bytecode and native stuff - installbyte: install only bytecode stuff - installopt: install only native stuff - clean: as usual... You can get the last version with git from: http://git.ocamlcore.org/ocamlduce/ocamlduce.git From a git checkout, you don't need to run "make prepare" (nor the sources of OCaml, they are in the repository). COMPILATION: The OCamlDuce library is installed in a findlib package called "ocamlduce". You need to include this package if you link OCamlduce objects with the regular OCaml compiler. The OCamlDuce library are available without any further option to the OCamlDuce tools (toplevel and compilers). A script called "ocamlducefind" is a wrapper around ocamlfind which force ocamlfind to use the OCamlDuce's toolchain instead of OCaml's. To compile a unit X which requires the OCamlDuce extensions, you can thus simply do: ocamlducefind ocamlc -c x.ml To link a project, you can use the regular OCaml compiler, but then you need to pass the "-package ocamlduce" option. ocamlfind ocamlc -o x -package ocamlduce -linkpkg x.cmo Or you can simply use the OCamlDuce compiler: ocamlducefind ocamlc -o x x.cmo The OCamlDuce linker will omit the OCamlDuce library if the environment variable OCAMLDUCE_LIGHTLINK is set to y. This is needed if this library is explicitly linked otherwise (e.g. by ocamlfind). DOCUMENTATION: http://www.cduce.org/ocaml You can also build a documentation for the API of the Ocamlduce module: make htdoc