public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: David Allsopp <David.Allsopp@cl.cam.ac.uk>
To: "cygwin@cygwin.com" <cygwin@cygwin.com>
Subject: RE: [ANNOUNCEMENT] unison2.48-2.48.4-2 (Warning: possible breakage)
Date: Tue, 1 Sep 2020 10:29:44 +0000	[thread overview]
Message-ID: <6ab4bc7a6011486c9f8ba5ae42000bda@metastack.com> (raw)
In-Reply-To: <ed5rkft7ag48b1hfocqi3ts0sbtj2o6s9q@4ax.com>

Andrew Schulman wrote:
> > > There is unfortunately another layer of incompatibility in Unison:
> > > Two Unison executables are only compatible if they were built with
> > > the same version of OCaml.
> >
> > What a mess!
> 
> Glad you understand :)
> 
> > Would you consider embedding the OCaml version in the package name as
> > suggested by the Debian maintainer
> > (http://lists.seas.upenn.edu/pipermail/unison-hackers/2020-
> August/001975.html)?
> > Thus unison2.48-2.48.4-1 would be replaced by something like
> > unison2.48+4.04.1... and unison2.48-2.48.4-2 would be replace by
> > something like unison2.48+4.08.1....  That way people who are happy
> > with unison2.48-2.48.4-1 can keep using it without being pestered by
> setup to update.
> 
> Yes, I could do that. I was hoping to avoid it, but it may be the only
> realistic solution.
> 
> It may be mainly Unison 2.48 that's affected, and maybe also 2.51 and the
> forthcoming 2.52. I guess that very few people are still using the older
> versions, and if they are they don't want any changes now.
> 
> > FWIW, here's my situation, which is probably not typical.  When you
> > released
> > unison2.48-2.48.4-1 a few years ago, it was incompatible with the
> > Linux server that I sync with.  So I simply built OCaml and unison
> > myself on that server, using the same versions that you used, and
> > installed unison in my own ~/bin directory.
> >
> > I could do that again, now using OCaml 4.08.1.  But I'd much rather
> > just keep my current arrangement, without having setup try to update
> > unison2.48 every time I run it.

Just for reference, the format of OCaml marshalled values changed in OCaml 4.08 (https://github.com/ocaml/ocaml/pull/1683). It's changed again in OCaml 4.11 as well (https://github.com/ocaml/ocaml/pull/8791) but in that case the new things which OCaml 4.11 can marshal would have caused errors in earlier versions, so I don't think that will affect Unison.

Quoting https://caml.inria.fr/pub/docs/manual-ocaml/libref/Marshal.html (emphasis mine): "The format for the byte sequences is compatible across all machines **for a given version of OCaml**" so it's an interesting design choice of Unison's.

That said, we (OCaml devs) change the marshal format as infrequently as possible, and go to considerable lengths to ensure that the older format can be read by newer runtimes: IIRC that particular change was the first break since OCaml 4.01 (Sep 2013).


David

  reply	other threads:[~2020-09-01 10:29 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-31 20:47 Andrew Schulman via Cygwin-announce
2020-08-31 22:08 ` Ken Brown
2020-09-01  0:39   ` Andrew Schulman
2020-09-01 10:29     ` David Allsopp [this message]
2020-09-01 12:09     ` Ken Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6ab4bc7a6011486c9f8ba5ae42000bda@metastack.com \
    --to=david.allsopp@cl.cam.ac.uk \
    --cc=cygwin@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).