Binary Compatibility
====================

  Author: Fabrice LE FESSANT (INRIA/OCamlPro)
  Date: 2010-11-18

The goal of this branch is to provide backward binary compatibility between
the current version of OCaml and the binary files generated by former versions
of the compiler.

The compiler can read binary files generated by 3.11.2 and 3.12.0. It is
thus possible to test the trunk version of the compiler from within an
older installation, by installing only the executables (not the libraries !).

Possible problems:
==================
- Did the format of input_value/output_value changed ? Is there a magic ?

- It is hard to mix binary files from two versions in the same executable,
   because they are not based on the same standard library. A solution ?

- Should we also add an option to generate binary files in the same version
   as those read everywhere ? A solution is: if all the files that we
   read use the same version, we should output for that version. If they are
   mixed, we should use the lattest seen version. If we cannot dump in that
   format, we should use the compiler version. We should also have a tool
   (maybe the checkstyle tool) that should tell people in which version 
   a source is readable. And a pretty-printer that would convert from
   recent versions to older versions.

Some more remarks:
==================

 * I used to purposely put an error in a signature to force the compiler to
print the signature, and then use that signature in the interface file. It
does not work anymore, probably because error messages are better located.
But I lost something useful ! How to put it back ?

 * I would want the editor to generate automatically a map function from a
type definition, especially for big recursive ones. Maybe a tool could do
that ?

 * Why is "raise X (arg1, ...)" not accepted ?


 
