On Feb 16, 2008 11:26 AM, Dominique Martinet <asmadeus77@gmail.com> wrote:
Hello,

If it's an OCaml interpreter, I don't think there's a way to evaluate
the time needed automatically, you can compute the complexity yourself
and have a rough evaluation of the compile time, but there's no way a
computer will do it for you without actually evaluating the
expression.

The stopping is easy though; if you use a GUI you probably already
have threads (i.e. when you click on run, it will call the "eval
prog1" function in a thread, so you can keep editing inside of the
GUI). You can save the thread id when you run it, and ask to kill it
when you click on the stop button, and I don't even think it will
raise an exception.

If you're not already using threads, I'm curious and would like to
know how you plan to handle the GUI.

Regards,
Martinet Dominique

PS : O'Reilly's book is a nice place to start if you don't know much
about threads http://caml.inria.fr/pub/docs/oreilly-book/html/book-ora175.html

Well, I followed the direction on this page, however, whenever I try to compile using ocamlc, I got "Unbound module Thread" for the line where I have:
"Thread.create compute ()"

Anyone knows what can be the problem here?

Here is my compiling flags:

world: $(LIBTARGETS) $(GTKSRCFILES:.ml=.cmo) src/main.ml
    ocamlc $(COMPFLAGS) -thread -custom threads.cma -cclib -lthreads -cclib -lunix -cclib -lpthread graphics.cma $(LIBTARGETS) $(GTKSRCFILES:.ml=.cmo) \
          $(TKSRCFILES:.ml=.cmo) -o acumen src/main.ml 
    @ echo " -- make world (Done)"

world.opt: $(LIBTARGETSOPT) $(GTKSRCFILES:.ml=.cmx)
    ocamlopt -thread threads.cmxa -cclib -lthreads -cclib -lunix -cclib -lpthread $(COMPFLAGS)  $(LIBTARGETSOPT) $(GTKSRCFILES:.ml=.cmx) \
          src/main.ml -ccopt -Wl,-E -o acumen.opt  
    @ echo " -- make world.opt (Done)"


Best,
Angela