(moving to the vm list) On Tue, Apr 27, 2010 at 10:20 PM, Ang BeePeng <[hidden email]> wrote:
I'm not sure its easy, but I don't think it's particularly hard. I think its certainly doable. And it is something I very much want to do soon as it will make the threaded FFI Cog VM I've done much more scalable. No, I've not even started on it yet. But it will be part of the new object representation (much simpler class access) GC I also want to do.
Sorry I don't yet have anything to show. best Eliot
|
Well to do pining you really need a separate oops space for fixed memory. You could ala 1984 macintosh HANDLES and slosh objects around the fixed ones, but that will lead to sand baring which was always a killer for them. On 2010-04-28, at 10:24 AM, Eliot Miranda wrote: (moving to the vm list) -- =========================================================================== John M. McIntosh <[hidden email]> Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com =========================================================================== smime.p7s (3K) Download Attachment |
On Wed, Apr 28, 2010 at 10:47 AM, John M McIntosh <[hidden email]> wrote:
No, you don't. Fixed space is an approach but is inflexible. Instead a pinning garbage collector does just that, pins objects as needed. When it moves objects to collect objects and/or compact memory, any pinned objects are not moved, but other objects can be moved over them. So the compactor maintains a list of holes in to which to compact objects and moves objects into the holes as they fit. Between the holes are pinned objects. The idea is that objects are pinned only as long as they are accessible from FFI callouts or an explicit pin set (for objects handed out to external code for longer than the dynamic extent of a call).
|
Free forum by Nabble | Edit this page |