From: Nuutti Kotivuori <naked+caml@naked.iki.fi>
To: Damien Doligez <damien.doligez@inria.fr>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] Modifying heap from custom finalizers?
Date: Mon, 05 Jan 2004 19:37:31 +0200 [thread overview]
Message-ID: <87znd2mh44.fsf@naked.iki.fi> (raw)
In-Reply-To: <69286889-3DF3-11D8-BEFF-00039310CAE8@inria.fr> (Damien Doligez's message of "Sat, 3 Jan 2004 14:47:45 +0100")
Damien Doligez wrote:
[...]
>> And if zeroing the value at sweep phase makes the values pointed by
>> it garbage collected only at the next collection, is there any I
>> can speed up the process?
>
> What makes you think there is no other pointer to these values ?
> And to the things pointed by these values ?
These values are values in the global data array - which is allocated
separately. The only things (well, debugger and toplevel do some
hacks) accessing these are SETGLOBAL and GETGLOBAL instructions in the
actual code blocks. The only thing that can create new GETGLOBAL
instructions for the slots in future code is the ident table in
Symtable. So if no existing code block, nor the ident table,
references the global, it can be zeroed out - since nothing can read
it's value.
The globals for modules contain a pointer to an array which holds the
closures for the functions defined by the module. This array can then
be reclaimed by the garbage collector - and if all the closures for a
certain module stop existing, the code block in turn is garbage
collected.
This should all be briefly described in the mail I sent earlier about
the second phase of the approach.
>> I could find no documentation what you can and what you can't do in
>> the finalizers for custom blocks.
>
> You should enter this in the bug tracking system as a feature wish.
Indeed. I shall do that.
I managed to catch a rather nasty flu just before christmas, and some
personal issues came up recently - so I shall make no promises on the
time schedule with which I'm implementing all this.
-- Naked
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
prev parent reply other threads:[~2004-01-05 17:37 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-12-29 8:25 Nuutti Kotivuori
2004-01-03 13:47 ` Damien Doligez
2004-01-05 17:37 ` Nuutti Kotivuori [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87znd2mh44.fsf@naked.iki.fi \
--to=naked+caml@naked.iki.fi \
--cc=caml-list@inria.fr \
--cc=damien.doligez@inria.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox