Browse thread
[Caml-list] GC and code unloading
- skaller
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | skaller <skaller@u...> |
| Subject: | [Caml-list] GC and code unloading |
I'm seeking design ideas which enable safe unloading of dynamically loaded code. I have two applications: Felix runtime uses an exact collector and also dynamically loads executable native code objects, and Ocaml bytecode interpreter, where I'd like to support unloading of plugins to provide compile time extensibility. I believe Apache module plugins have a similar issue. The key problem is defering unloading of the plugin code until all references to it are unreachable, which clearly excludes execution of finalisers encoded in the library, as well as any pointers to static data. My current thought is to use a per plugin static reference count, incremented when a closure over some code pointer is created, and decremented by a finaliser for that closure. I'm not sure if this design actually works, or whether it is practically implementable. An alternative might be to somehow garbage collect the code object. This may be faster, but seems to raise some difficult issues about the representation of code pointers. -- John Skaller, mailto:skaller@users.sf.net voice: 061-2-9660-0850, snail: PO BOX 401 Glebe NSW 2037 Australia Checkout the Felix programming language http://felix.sf.net ------------------- 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