Note that, since OCaml 4.01, OCaml marshalling flags include a Compat_32
flag. If set, any marshalling operation involving an integer that cannot be
represented on 32-bit OCaml versions will fail at runtime. If you would
like to have consistent marshalling behaviour between architectures,
enabling it in Coq is probably a good step forward.

(Un-marshalling a 64 bit integer that cannot be represented on 32 from a 32
bit machine always fails. What Compat_32 brings is a failure at marshalling
time, from the 64 bit machine.)

On Thu, Oct 22, 2015 at 1:58 PM, Pierre-Marie Pédrot <
pierre-marie.ped...@inria.fr> wrote:

> On 22/10/2015 13:49, Stéphane Glondu wrote:
> > Arch-dependent? Really? What is arch-dependent it them?
>
> The representation of integers. Some integers can overflow in 32-bits,
> and have a different value in 32-bits and 64-bits. There was a funny bug
> in the OCaml marshaler based on that idea:
>
> http://caml.inria.fr/mantis/view.php?id=5793
>
> Most notably hashes differ. Note that we should tend to enforce that all
> of our data structures fit on 32-bit integers, but this is a difficult
> task, both tedious and error-prone for little profit.
>
> PMP
>
>

Reply via email to