It seems that Ancient requires the values that are moved to be immutable full point. I understand that there is a problem if you have pointers from Ancient Heap to Ocaml Heap. But what about pointers that are internal to the Ancient Heap ? Am I talking nonsense? Sorry if I do.

J


On Tue, Nov 5, 2013 at 8:15 PM, Lukasz Stafiniak <lukstafi@gmail.com> wrote:
On Tue, Nov 5, 2013 at 8:06 PM, Lukasz Stafiniak <lukstafi@gmail.com> wrote:
On Tue, Nov 5, 2013 at 6:07 PM, Jean Krivine <jean.krivine@gmail.com> wrote:

As far as I understand there is a module Ancient which I can use to tell the GC to ignore my array but, if I understand well, it would only work if I use my array in a read only fashion.

You cannot have pointers from Ancient heap to OCaml heap unless you do weak pointer management (e.g. in the finalizer of a value). Otherwise I think you're fine with modifying Ancient.

Scratch that, totally thoughtless -- of course values are moved around so you cannot have pointers from Ancient heap to OCaml heap, period.