Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
Memory statistics tool
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2008-07-23 (13:16)
From: Alain Frisch <alain@f...>
Subject: Re: [Caml-list] Memory statistics tool
> Many thanks! I just had a glance at it, but it seems to be just how one
> would have to approach such a problem. (The issue with hash-based
> approaches to find previously visited substructures is that during
> traversal, a GC may occur. Now I just assume that this may involve
> relocation and heap compaction in OCaml. The problem then is that
> OCaml does not properly support what would be known as eq hash tables
> in Lisp.)

As long as the data structure supports the polymorphic hash function, it 
should work to simply use a regular hash table with the polymorphic hash 
function and physical equality, as in:

module S = Hashtbl.Make(struct
   type t = Obj.t
   let hash = Hashtbl.hash
   let equal = (==)

(Of course, this might be quite slow.)

-- Alain