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.


REQUIREMENTS:

A working OCaml installation must be available to compile OCamlDuce.
The version of OCaml must match the version of OCamlDuce.

A recent version of findlib must also be available.


INSTALLATION:

make all
make opt
make install

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


DOCUMENTATION:

http://www.cduce.org/ocaml


CHANGE LOG:

3.08.4
- first version with binary compatibility with OCaml

3.08.4pl1
- a new build/installation scheme which rely on an working OCaml installation

3.08.4pl2
- fix a bug in the parser (now it accepts  <a>(...) as a type)
- fix a bug in Makefile (did not install ocamlduce.{cmi,mli})

3.08.4pl3
- more precise localization of errors in patterns
- fix a bug in the type checker (translation of ML types to x-types in
  an invalid environment)

3.08.4.pl5
- bug in record concatenation

3.09
- synchronize with OCaml 3.09.1 (CVS version)
- drop the stand-alone installation mode


3.09.1
- synchronize with OCaml 3.09.1 (released version)
- better error messages

3.09.1pl1
- internal simplifications, minimize diff with OCaml

3.09.2
- synchronize with OCaml 3.09.2 (released version)
- add OCamlDuce library as defaults in ocamlduce's tools
- install the ocamlducefind script

3.09.2pl1 
- allow [ 'abc' ] notation in types
- predefined namespaces when parsing with Ocamlduce.Load
- operations on records Ocamlduce.Record
- don't install ocamlducec and ocamlducec.opt but only the second one
  (if available), renamed as ocamlducec; same for the other tools