Re: [Caml-list] binary compatibility of 3.08.3
From: Sven Luther <firstname.lastname@example.org>
> Well, if binary compatibility could be maintained at least on the bug fix
> branch, it would be good already.
> But if what Jacques says is true, and the binary compatibility is only broken
> by the way the diggests are calculated, maybe there may be a
> solution there ?
> Or is the binary-compatibility breakage really needed ?
Actually, what I gave is only one possible reason for breakage.
Another that comes to mind is that .cmx's contain code to be inlined.
If any file was modified in the standard library (to fix a bug there),
then there is a good chance that this code changed, and as a result
the digest will make it binary incompatible.
Binary compatibility as you get it in C is just a hack: you drop some
consistency checks, and hope that the user is clever enough to not use
incompatible libraries. Ocaml chooses the safe way. This could be made
a bit more resilient, particularly for bytecode, but you would still
have breakages in the bug fix branch.
> Anyway, it would be nice if the breakage would at least be announced in the
> release documentation. Especially if it doesn't touch all the modules and
> libraries, as was the case for 3.08.2.
You can safely assume that every new release breaks binary compatibility.
(I.e. that some digests in the libraries have changed.)