Lukasz Stafiniak wrote:
It is a large application. They debate whether to use Boehm or smart pointers. They already have embedded Scheme (Guile) and are about to embed Python. (Guile is said to be Boehm-compatible, in some sense, from the next version.) It is possible that Boehm is a no-way for them, I asked here to investigate this.
My advice is always to avoid mixing several garbage collection techniques or implementations inside the same program.
I am not sure "they" are right in embedding both Guile & Python inside the same program. I would really avoid doing that, especially if the application is long-running or has to be reliable.
Did you consider having a separate Ocaml program (& perhaps also a separate Python program) which communicates with that application using some communication channel (be it a pipe, a socket, IPC or Posix shared memory, ...) which at least provides a separation between various GCs and address spaces...
From what you are suggesting, "your" application seems to be a big spaghetti system, very brittle and hard to maintain. I do know that these are very common, but I won't like to be at your place... because you describe a realistic, but quite nasty, situation (probably more a management issue than a technical one).
But beware of one stuff: GC bugs are hard to find! A single bug could mean weeks of efforts!
Regards. -- Basile STARYNKEVITCH http://starynkevitch.net/Basile/ email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359 8, rue de la Faiencerie, 92340 Bourg La Reine, France *** opinions {are only mines, sont seulement les miennes} *** _______________________________________________ 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