In OCaml all module level expressions are evaluated in order of their appearance. If you have some function
that you designate as a "main" function*, then before this function is entered all modules on which module, 
containing "main" function, depends. So you need to find, whether you added some code, that evaluates before 
your main.

* there is no such function as main function in OCaml. All modules are evaluated in the order of their occurrence
on the compilation string. Usually, the order is defined by a build tool, like `ocamlbuild`, that will put the entry module 
in the last place, and topologically sort the preceding modules.

P.S. I hope that this is not related to BAP? ;) 

On Fri, Jul 17, 2015 at 2:35 PM, Shuai Wang <wangshuai901@gmail.com> wrote:
Dear list,


I am working on some tools written in OCaml (compiled by OCaml version 4.01.0). 

This morning I changed some code, compiled it and let it processing some large data (~ 4G), it never stops after over 2 hours. 

I feed the tool with a tiny input which took less than 1 second to process before, and  I figured out that now it takes around 2.5 minutes before entering into "main" function!

I tried to clean the whole codebase, and recompile it ( I use ocamlbuild 4.01.0), but the same wired situation still happens.. 

I did this:

    ltrace ./init.native input

and I got this output flushing out for a very long time (sorry mail list blocks my large image.. ):

http://i.stack.imgur.com/sEkKk.png



Is anyone aware this kind of issue before..? Am I messed up something..? 
I have been working on OCaml for a relatively long time and I didn't encounter this kind of stuff before...


Sincerely,
Shuai