Hello,

have you tried using the functorial version with a suitable compare function (ie not Pervasives.compare) ?
I don't know about the type of the keys, so it is just a guess...

Hope that helps,
Matthieu

----- Message d'origine ----
De : "jhsu1@email.sjsu.edu" <jhsu1@email.sjsu.edu>
À : caml-list@yquem.inria.fr
Envoyé le : Lundi, 11 Décembre 2006, 19h18mn 15s
Objet : [Caml-list] Hashtbl.find_all Stack overflow


I get a stack overflow with the following

<PRE>
let var_lookup = Hashtbl.create 997;;

(* ... *)

let keys h = Hashtbl.fold (fun key data accu -> if not (List.mem key accu) then
key :: accu else accu) h [] in
    let files = keys var_lookup in
        let helper file = (let vars = Hashtbl.find_all var_lookup file in
        let run_tpl var = print_string var in
        List.iter run_tpl vars) in
        List.iter helper files;
</PRE>

Only when Hashtbl.find_all is executed enough times.

_______________________________________________
Caml-list mailing list. Subscription management:
http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
Archives: http://caml.inria.fr
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs



Découvrez une nouvelle façon d'obtenir des réponses à toutes vos questions ! Profitez des connaissances, des opinions et des expériences des internautes sur Yahoo! Questions/Réponses.