Version française
Home     About     Download     Resources     Contact us    
Browse thread
Changes on equality between 3.06 and 3.08.3
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: michel@l...
Subject: Changes on equality between 3.06 and 3.08.3
Hi dear ocamlers,

I just noticed the following change in Ocaml between release 3.06 and 3.08.3, as far
as equality on records is concerned :


////////////////////////////////////////////////////////////////////////////////
//
//release 3.06
//

dellfp-3 7 > /ocaml
        Objective Caml version 3.06

# type toto = { b : int -> int; } ;;
type toto = { b : int -> int; }
# let a = { b = (fun x -> x) } ;;
val a : toto = {b = <fun>}
# a = a;;
- : bool = true


//
//release 3.08.3
//


dellfp-3 8 > ocaml
        Objective Caml version 3.08.3

# type toto = { b : int -> int; };;
type toto = { b : int -> int; }
# let a = { b = (fun x -> x) } ;;
val a : toto = {b = <fun>}
# a = a;;
Exception: Invalid_argument "equal: functional value".

////////////////////////////////////////////////////////////////////////////////

Is this supposed to be a bug, or a feature ? Will future releases of Ocaml follow
the new way of handling equality between records or the old one ?

Best regards,
Olivier.

--
Olivier MICHEL                       Email : michel@lami.univ-evry.fr
Universite d'Evry Val d'Essonne      http  : www.lami.univ-evry.fr/~michel
Equipe Specif / Projet MGS           http  : mgs.lami.univ-evry.fr
LaMI - UMR 8042 du CNRS              Phone : +33 (0)1.60.87.39.10
523, place des terrasses de l'agora  Fax   : +33 (0)1.60.87.37.89
91000 Evry - FRANCE