3 ms·
That can happen because unison uses OCaml's built in serialization, which isn't guaranteed to be stable across OCaml versions. It doesn't often change, but the
by mjn 7y ago
That can happen because unison uses OCaml's built in serialization, which isn't guaranteed to be stable across OCaml versions. It doesn't often change, but the representation of arrays was changed in OCaml 4.02, which meant unison compiled with 4.01 couldn't sync with unison compiled with 4.02. Debian bug discussing the issue: https://bugs.debian.org/802919 https://bugs.debian.org/802919
- rstuart4133 7y ago> which isn't guaranteed to be stable across OCaml versions Oh, so OCaml is a toy language from academics. I've read so many good things about it over the years, but no one mentioned that aspect of it. There should be a law about putting a warning in Big Red Letters on the box so someone doesn't make the mistake of using it in a large, long lived project.
- ernst_klim 7y ago> Oh, so OCaml is a toy language from academics. What? Why did you conclude so? > but no one mentioned that aspect of it. Really? Did you open the documentation? It's stated explicitly. https://caml.inria.fr/pub/docs/manual-ocaml/libref/Marshal.html https://caml.inria.fr/pub/docs/manual-ocaml/libref/Marshal.h... > There should be a law about putting a warning in Big Red Letters on the box so someone doesn't make the mistake of using it in a large, long lived project. It's documented, and it's not intended to be used for serialization, you use it in very particular cases, for example for faster object sharing with IPC for multicore. We use Json or S-expressions or other stuff for that purposes. I really don't know why unison people don't switch to a proper serialization.