Re: GMC for dummies

2005-07-29 Thread Ed Mooring
On Mon, Jul 25, 2005 at 10:33:37PM -0400, Bob Rogers wrote: [snip] > > This is sounding more and more like the CMUCL gencgc algorithm, which > uses what I understand is a classic approach. Instead of an IGP list, > it write-protects all oldspace pages (hence my earlier question), > unprotecting t

Re: GMC for dummies

2005-07-26 Thread Nattfodd
Hi, I began putting the ideas of the documents in form. For now, only the data structures are there but I think they look quite nice. There are still some things lacking (mainly how the UINTVAL flags; field of Gc_gmc_hdr will be used : I think that one or two bits for marking plus some bits for re

Re: GMC for dummies

2005-07-25 Thread Bob Rogers
proven assertions about things that might not matter. Actually, I had some laptop problems which should hopefully be fixed soon. As time is beginning to run short (remember that the GC should be functional by Sept. 1st), I'll rewrite GMC for dummies very soon (tomorrow ?) and

Re: GMC for dummies

2005-07-25 Thread Bob Rogers
From: Nicholas Clark <[EMAIL PROTECTED]> Date: Mon, 25 Jul 2005 10:15:33 +0100 On Sun, Jul 24, 2005 at 10:32:32PM -0400, Bob Rogers wrote: >For the record, is it acceptable in Parrot to use page > write-protection to record whether oldspace objects have been modified > since

Re: GMC for dummies

2005-07-25 Thread Alexandre Buisse
which should hopefully be fixed soon. As time is beginning to run short (remember that the GC should be functional by Sept. 1st), I'll rewrite GMC for dummies very soon (tomorrow ?) and hope to begin coding just after that. Regards, Alexandre

Re: GMC for dummies

2005-07-25 Thread Nicholas Clark
On Sun, Jul 24, 2005 at 10:32:32PM -0400, Bob Rogers wrote: >For the record, is it acceptable in Parrot to use page > write-protection to record whether oldspace objects have been modified > since the last full GC? This is what CMUCL does on most ports, but it > occurs to me that this might b

Re: GMC for dummies

2005-07-24 Thread Bob Rogers
From: Nattfodd <[EMAIL PROTECTED]> Date: Thu, 21 Jul 2005 03:22:04 +0200 Leopold Toetsch wrote: >> ... Perhaps you should save your (metaphorical) breath, and I'll >> wait for a more detailed design. > > > I'm waiting too :-) Hi, I believe I found a good workaround

Re: GMC for dummies

2005-07-20 Thread Nattfodd
Leopold Toetsch wrote: >> ... Perhaps you should save your (metaphorical) breath, and I'll >> wait for a more detailed design. > > > I'm waiting too :-) Hi, I believe I found a good workaround for the cycle problems. It is a little bit slower and worst case (which never occurs, happily) is |IGP_s

Re: GMC for dummies

2005-07-20 Thread Leopold Toetsch
Bob Rogers wrote: So that means you do not use the IGP pointer to A when collecting any generation <= j, correct? Otherwise, I imagine you'd always decide that A is alive, and hence B and C. IGPs entries that span the range of to be collected generations are not considered (and very likely r

Re: GMC for dummies

2005-07-18 Thread Bob Rogers
From: Leopold Toetsch <[EMAIL PROTECTED]> Date: Mon, 18 Jul 2005 17:08:53 +0200 Circular or not isn't really the problem. With generational GC you'll always have the chance of tenured garbage . . . Now due to some other pointer store the object C becomes dead. But as long as w

Re: GMC for dummies

2005-07-18 Thread Bob Rogers
From: Nattfodd <[EMAIL PROTECTED]> Date: Tue, 19 Jul 2005 04:03:49 +0200 Leopold Toetsch wrote: > >gen n | gen j >[ A ] -> [ B ] -|-> [ C ] > ^ | > +--+ > > A circular data structure doe

Re: GMC for dummies

2005-07-18 Thread Nattfodd
Leopold Toetsch wrote: > >gen n | gen j >[ A ] -> [ B ] -|-> [ C ] > ^ | > +--+ > > A circular data structure doesn't really change the picture, except, > when again scanning up to generation j, and we find object C b

Re: GMC for dummies

2005-07-18 Thread Leopold Toetsch
Bob Rogers wrote: From: Leopold Toetsch <[EMAIL PROTECTED]> Date: Sun, 17 Jul 2005 12:08:34 +0200 > What happens when a store creates a cycle? And how would this be > detected? To keep the invariant we can't move the container nor the contained object, *if* both are aggregat

Re: GMC for dummies

2005-07-18 Thread Leopold Toetsch
Nattfodd wrote: Leopold Toetsch wrote: I believe that if we want variable-sized body, we need at least one next (or pmc_size) pointer in the header. Not necessarily. We can have: - some type bits in the gmc_header for fixed-sized and commonly used objects, so that GMC knows the size - alt

Re: GMC for dummies

2005-07-17 Thread Bob Rogers
From: Leopold Toetsch <[EMAIL PROTECTED]> Date: Sun, 17 Jul 2005 12:08:34 +0200 > What happens when a store creates a cycle? And how would this be > detected? To keep the invariant we can't move the container nor the contained object, *if* both are aggregates. Therefore the po

Re: GMC for dummies

2005-07-17 Thread Nattfodd
Leopold Toetsch wrote: > Nattfodd wrote: > >> Leopold Toetsch wrote: > > >>> 1) pmc_bodies have to be variable sized >> >> >> Oh, I believed that we would use variable-sized pmc only if the gc >> proved to work really well. > > > Well, with fixed sized bodies, we don't need the extra indirection.

Re: GMC for dummies

2005-07-17 Thread Leopold Toetsch
Bob Rogers wrote: From: Leopold Toetsch <[EMAIL PROTECTED]> Date: Sat, 16 Jul 2005 11:38:41 +0200 . . . We keep the invariant by several means: . . . c) a write barrier checks pointer stores into aggregates (by just comparing 2 memory addresses - basically) we can d

Re: GMC for dummies

2005-07-16 Thread Bob Rogers
From: Leopold Toetsch <[EMAIL PROTECTED]> Date: Sat, 16 Jul 2005 11:38:41 +0200 . . . We keep the invariant by several means: . . . c) a write barrier checks pointer stores into aggregates (by just comparing 2 memory addresses - basically) we can do either: - mak

Re: GMC for dummies

2005-07-16 Thread Leopold Toetsch
Nattfodd wrote: Leopold Toetsch wrote: 1) pmc_bodies have to be variable sized Oh, I believed that we would use variable-sized pmc only if the gc proved to work really well. Well, with fixed sized bodies, we don't need the extra indirection. But I really like to have a more flexible objec

Re: GMC for dummies

2005-07-16 Thread Nattfodd
Leopold Toetsch wrote: > > On Jul 16, 2005, at 2:24, Nattfodd wrote: > >> >> Hi, >> I've produced a new document on GMC (Generational Mark & Compact), the >> GC I'm trying to implement as a Summer of Code project. It's called gmc >> for du

Re: GMC for dummies

2005-07-16 Thread Leopold Toetsch
On Jul 16, 2005, at 2:24, Nattfodd wrote: Hi, I've produced a new document on GMC (Generational Mark & Compact), the GC I'm trying to implement as a Summer of Code project. It's called gmc for dummies and I hope it's plainly understandable (if not, tell me so and I&

Re: GMC for dummies

2005-07-15 Thread Nattfodd
Nattfodd wrote: >It's here : >http://perso.ens-lyon.fr/alexandre.buisse/divers/gmc_for_dummies.pod >A more complete document is http://perso.ens-lyon.fr/divers/gmc_design.pod > > Sorry, the second URL is actually http://perso.ens-lyon.fr/alexandre.buisse/divers/gmc_design.pod

GMC for dummies

2005-07-15 Thread Nattfodd
Hi, I've produced a new document on GMC (Generational Mark & Compact), the GC I'm trying to implement as a Summer of Code project. It's called gmc for dummies and I hope it's plainly understandable (if not, tell me so and I'll try to make it better). It should expl