Abdulaziz Ghuloum <[email protected]> writes:

> On Oct 1, 2009, at 8:31 PM, Andreas Rottmann wrote:
>
>> Given the above, you have two options to make the reclamation happen
>> automatically: Either place a call to `collect-blas-vectors' into
>> `make-blas-vectors', or register `collect-blas-vectors' with the GC,
>> which is a recently-added feature[0]. You can read more about
>> guardians in the paper "Guardians in a Generation-Based Garbage
>> Collector", by Dybvig et al. [1].
>
> The only little problem that I see is that making many BLAS vectors
> quickly could potentially run out of memory before the GC triggers.
> (because a BLAS vector of N bytes will only use fixed few bytes of
> Scheme data, and it will take lots of these to cause a GC)  I don't
> have a clean solution to this problem.  Any ideas?
>
Guile approaches this problem by having API that allows informing the GC
about potentially collectable memory, see
scm_gc_register_collectable_memory() and
scm_gc_unregister_collectable_memory() in the manual[0].

[0] 
http://www.gnu.org/software/guile/docs/docs-1.8/guile-ref/Memory-Blocks.html#Memory-Blocks

Regards, Rotty
-- 
Andreas Rottmann -- <http://rotty.yi.org/>

Reply via email to