On Sat, Apr 18, 2009 at 1:05 AM, fo...@x9c.fr <fo...@x9c.fr> wrote:
I was indeed mostly worried with the runtime itself. I wanted to
have a fully reentrant runtime for the OCaml-Java
project (to be able to execute several programs in the very same
JVM) and remember that it implied primitives
from "compare.c", "hash.c", "intern.c" and "extern.c" among
others to be written differently for this purpose.
Indeed. We have made them reentrant but we haven't made much stress
testing on that.
Reentrance on those are not free (they have a cost), and the way we
chose is the "simplest or quickest way".
Out of curiosity: you state that your GC is of "stop-the-world"
nature, what about finalizers ?
Are they executed by the GC thread when the world is stopped or
concurrently with
application threads ?
Not sure this question really matters, just curious (I mean, it
is doubtful that one would write finalizers with
a long execution time).
Finalizers are supposed to be called by the thread that does the
garbage collection, so there is no concurrency with finalizers as the
rest of the world is meant to be stopped when garbage collecting.
(Our garbage collector does not try to be as smart as the original one
on many many things)
By the way, we are late on writing the documentation for our future
release...
but we have just implemented a (simple) experimental growing heap.
Here is a quote from wikipedia (http://en.wikipedia.org/wiki/Speedup):
<<
Sometimes a speedup of more than N when using N processors is observed
in parallel computing, which is called super linear speedup. Super
linear speedup rarely happens and often confuses beginners, who
believe the theoretical maximum speedup should be N when N processors
are used.
>>
Well, we *have* observed that on a matrix multiplication :-)
--
Philippe Wang
philippe.w...@lip6.fr
http://www-apr.lip6.fr/~pwang/
_______________________________________________
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