[Unison-hackers] OCaml version mismatch breaks Unison 2.48.4

Stéphane Glondu steph at glondu.net
Mon Aug 31 09:27:58 EDT 2020


Andrew,

Le 31/08/2020 à 15:08, Andrew Schulman a écrit :
>>> It seems that I need either:
>>>
>>> * A patch to allow Unison 2.48.4 to build with OCaml 4.10, or
>>
>> The current master should compile with OCaml 4.10. Can you try in your
>> Cygwin setup and report back here? (But wait for the next release before
>> uploading that to Cygwin repos since there will be a version bump.)
> 
> The problem is that I need to package Unison 2.48. Because of the version
> incompatibilities in Unison, we have separate unison2.48 and unison2.51
> packages, as well as several older ones, to allow people to sync to hosts
> running different versions of Unison.
> 
> But I see that there's a unison-2.48 branch. I can try that. I expect it
> includes the compatibility patch for OCaml 4.08.1 that I found in the Ubuntu
> Unison source.

It will work with OCaml 4.08.1, but not with OCaml 4.10.x.

> In the past I've dealt with Unison versions by creating a separate package for
> each version, such as unison2.48 and unison2.51. That's always worked fine.
> Users can install them side-by-side, use whichever version they need with each
> server, and use alternatives to choose a default version.

This was done also in Debian/Ubuntu, until we realized Unison was
dependent of the OCaml version too.

Now, what I will do (I am the Unison maintainer in Debian) is embed the
OCaml version in the package name (e.g. unison-2.52+4.08.1) so that one
can have many combinations co-installed... but there will always be a
single OCaml version in the official Debian archive for a given suite.

> By the way, it amazes me that Unison is incompatible across different versions
> of OCaml. I don't know anything about OCaml - I'm just the packager. But it
> seems like a bad feature.

It is because Unison uses OCaml's built-in marshalling, which used to be
compatible across OCaml versions, but is not any more (and OCaml itself
doesn't want to guarantee it). I am working on using different
marshalling, which should make Unison independent of the version of
OCaml used to compile it... but for now I'm focusing on making a new
release that compiles out-of-the box with modern versions of OCaml.


Cheers,

-- 
Stéphane


More information about the Unison-hackers mailing list