Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
* Different GCs for OCaml
@ 2000-07-19 16:50 Jack Point
  2000-07-21  7:59 ` Ken Wakita
  0 siblings, 1 reply; 4+ messages in thread
From: Jack Point @ 2000-07-19 16:50 UTC (permalink / raw)
  To: caml-list

How easy would it be to try different GC strategies with OCaml?



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Different GCs for OCaml
  2000-07-19 16:50 Different GCs for OCaml Jack Point
@ 2000-07-21  7:59 ` Ken Wakita
  2000-08-01 13:46   ` Dmitri Lomov
  0 siblings, 1 reply; 4+ messages in thread
From: Ken Wakita @ 2000-07-21  7:59 UTC (permalink / raw)
  To: point, caml-list


We are developing a common testbed to compare various statistics of
different GC strateies on top of a modified O'Caml.  Using a prototype
system we have generational copying, mark & sweep, reference counting,
and their variants.  We are not sure if our approach conflicts with
systhread support, though.

The answer depends on what kind of GC and the quality of GC
performance you require.  If you are not concerned about the execution
performance, it is not so difficult, say two-four weeks.  If you need
optimized performance, you need to modify the compiler because many GC
strategies that can be accelerated by reducing the number of
read/write barrier execution.  If you are interested in modern GC
strategies such as tag-free GC then you probably modify almost all
part of O'Caml implementation.

Ken Wakita

In message (<4.3.2.7.0.20000719094927.00aaee20@chasm.org>)
from Jack Point <point@chasm.org>,
talking about "Different GCs for OCaml",
on Wed, 19 Jul 2000 09:50:27 -0700

point> How easy would it be to try different GC strategies with OCaml?



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Different GCs for OCaml
  2000-07-21  7:59 ` Ken Wakita
@ 2000-08-01 13:46   ` Dmitri Lomov
  2000-08-04 10:08     ` Xavier Leroy
  0 siblings, 1 reply; 4+ messages in thread
From: Dmitri Lomov @ 2000-08-01 13:46 UTC (permalink / raw)
  To: Caml mailing list

By the way, did anybody succesfully applied a different
GC to OCaml?

I've tried to add parallelism -- more specifically, to collect
major heap in a separate thread -- but failed to do so:
as usually with parallel programs, I've got lots of bugs that
were just nightmare to track down.

So, after two weeks of trying, I just abandoned this, with hope
to return to this some day. 

Regards,
Dmitri



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Different GCs for OCaml
  2000-08-01 13:46   ` Dmitri Lomov
@ 2000-08-04 10:08     ` Xavier Leroy
  0 siblings, 0 replies; 4+ messages in thread
From: Xavier Leroy @ 2000-08-04 10:08 UTC (permalink / raw)
  To: dsl, Caml mailing list

> By the way, did anybody succesfully applied a different
> GC to OCaml?

I haven't heard of it, and that would be a major undertaking.  It's
like hand surgery: in principle, it is possible to reconnect a hand to
a wrist; in practice, there are so many tendons, nerves and vessels to
reconnect...

> I've tried to add parallelism -- more specifically, to collect
> major heap in a separate thread -- but failed to do so:
> as usually with parallel programs, I've got lots of bugs that
> were just nightmare to track down.

GC bugs are also quite a nightmare...

> So, after two weeks of trying, I just abandoned this, with hope
> to return to this some day. 

Damien Doligez's PhD thesis was precisely on a concurrent collector in
the style of OCaml's collector.  (Actually, this is backwards: the
concurrent collector was designed first, and the current OCaml
incremental GC was derived from it.)  The two POPL papers and the
dissertation available from http://pauillac.inria.fr/~doligez/caml-guts/
give a good idea of how difficult efficient concurrent collection is.

- Xavier Leroy



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2000-08-04 17:59 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-07-19 16:50 Different GCs for OCaml Jack Point
2000-07-21  7:59 ` Ken Wakita
2000-08-01 13:46   ` Dmitri Lomov
2000-08-04 10:08     ` Xavier Leroy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox