On 4 Nov 2010, at 15:08, Richard Bonichon wrote:

>> I did the lang/ocaml update in my tree and started checking the
>> dependent ports, but gave up due to not having enough time for a
>> daunting task like this...
> I hear you, David. But in my ocaml experience, only a handful of
> programs will be painful to update (I'm thinking ocamlduce here for
> example)
> as ocaml releases are most compatible. Some very old programs are
> still compilable with the newest version.

Indeed; for the last few years, updating OCaml has been quite easy. Most new 
language features are extensions, and don't break back-compat too much.  
Mldonkey always had that stupid configure check for compiler version which was 
the main culprit.

The main pain points with OCaml updates are:

- There is no guaranteed ABI between compiler versions, and so all dependent 
ports must be compiled with precisely the same version (not greater, not 
smaller) than the core OCaml port itself. This includes bindings (for example, 
the ones in the LLVM distribution).

- Some experimental languages (e.g. ocamlduce) depend on the internals of the 
core OCaml port, and so are hard to update right after a new release comes out. 
We might want to just yank them from the ports tree unless someone wants to 
specifically maintain them.  Personally, I don't use ocamlduce any more.

- The dependent ports need to be compile-tested on a non-native-code arch such 
as sparc64 to ensure packing weirdnesses don't happen.

-anil

Reply via email to