Hi Claire,

Without much confidence, I would start by checking matchpats for uses of fmt.

On 16 April 2012 17:52, Claire Dross <claire.dross@lri.fr> wrote:
Hello,

I am new to caml-list, so sorry in advance if it is not the right place to make this post. In a quite important piece of ocaml code, I have a function:

let matching_term terms env uf id (pats, subst) (seen, forms) =
   match pats, subst with
     | _, [] | [], _ -> seen, forms
     | t :: pats, _ -> fprintf fmt "   %a@." T.print t;
       let acc = matchpats env terms uf (subst, seen, id+1) t in
       let acc, seen, _ = List.fold_left (matchpats env env.fils uf)
         acc pats in
       seen, List.rev_append acc forms

Removing the print in the second case of the match changes the result of the compiled file (compiler 3.12.1) on one of my tests. T.print does not have side effects, it recursively prints a hashconsed term structure.

Do you have any idea of what the problem is ?

Thanks a lot,

Claire Dross

--
Caml-list mailing list.  Subscription management and archives:
https://sympa-roc.inria.fr/wws/info/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs