Dear list, We are building a cache in ocaml and we're wondering if it would make sense to store ocaml values outside the reach of the gc. (gc on a 20GB cache hangs the process for a second or so). To run some experiments, we wrote a small library ( https://github.com/besport/ocaml-everlasting) that exposes two functions, get and set. When inserting a value, we copy recursively the blocs outside of the reach of the gc (and put the resulting value in some C array). When getting the value, we simply pass the pointer to the copied value to the ocaml code (the structure is still coherent and the value is directly usable). We also wrote an "update" function that compare a new value with the existing value in cache, to avoid unnecessary memory allocation/deallocation. It does not seems very stable though, but I don't know if it is a bug in the update function or simply because this approach is not reasonable. Do you have any thoughts? Is there any clever way to build a large cache in an ocaml app ? Thanks in advance for any tips! Best William -- William Le Ferrand Mobile : (+1) (415) 683-1484 Web : http://williamleferrand.github.com/