gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Calling a function when a something is garbage collected.


From: Camm Maguire
Subject: Re: Calling a function when a something is garbage collected.
Date: Fri, 02 Feb 2024 08:32:14 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)

Greetings!

Grégory Vanuxem <g.vanuxem@gmail.com> writes:

> Hello,
>
>
> My question is in object, when the garbage collector releases memory
> from a variable for example does GCL allow to add a "hook" function to
> do some other things. Namely I also need to release memory in another
> place not known to the garbage collector. Here is a piece of code for
> other CL implementations:
>
> ; TODO: add Clozure CL 'terminate'
> (defun make_jlref (val type)
>      (let* ((ret (make-instance 'jlref :val val :type type))
>             (hash (write-to-string (sxhash ret) :base 16)))
>         #+:lispworks (flag-special-free-action hash)
>         #+:cmu (ext:finalize ret (lambda () (free_jlref hash)))
>         #+:sbcl (sb-ext:finalize ret (lambda () (free_jlref hash)))
>         #+:allegro (excl:schedule-finalization ret (lambda ()
> (free_jlref hash)))
>         (setf (jlrefId ret) hash)
>         ret))
>

I do not believe we have such a feature yet, though there are stubs in
the code and we could add one.  I am confused though, what do you mean
'not known to the garbage collector'?  Is this malloc/free memory
allocated in some inlined C code?  Such memory *is* known to our garbage
collector (as is the output of write-to-string), though I suppose some
hook could automate the call to free.  Why not just add a slot :hash to
'jlref and let the GC do its thing?


> And another question, where can I find documentation for calling C
> from GCL Common Lisp?

The original defentry, clines, and defcfun are documented in the gcl-si
info page, but in 2.7 we have a much more capable defdlfun which enable
runtime and persistent access to new external shared library functions.
I will write this up, but I believe it might have been discussed in the
mailing list before.

Take care,


>
> Regards,
> - Greg
>
>
>
>

-- 
Camm Maguire                                        camm@maguirefamily.org
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah



reply via email to

[Prev in Thread] Current Thread [Next in Thread]