Hi,

Han-Wen Nienhuys <[EMAIL PROTECTED]> writes:

> Ludovic Courtès escreveu:

> Can you be more specific about this?

Off the top of my head: incorrect indentation, missing spaces around
brackets, and more importantly comments (see (standards.info)Comments).

> See below - note that the old .scm file was pretty much broken, as it 
> was using gc-live-object-stats which is only accurate just after the
> mark phase.

Hmm, `gc-live-object-stats' may return information from the previous
cycle, but it shouldn't be *that* accurate, should it?

Interestingly, head-before-your-changes and 1.8 end up with
`cells-allocated' greater than `total-cell-heap', which I guess isn't
intended (`cells-allocated' and `scm_cells_allocated' are really the
total number of cells allocated since the last GC, right?).  In the case
of 1.8, it's only slightly greater; in the case of
head-before-your-changes, it's more than 80 times greater.  That does
seem to indicate brokenness...

> The problem is that the previous state of the GC was very much confused
> with contradicting definitions within the code of what was being kept as 
> statistics.  This is problematic since the allocation strategy (should 
> I allocate more memory?) was based on these confused statistics.

Which statistics were confused exactly?  Can you pinpoint the part of
your patch that fixes statistics computation?  Otherwise, I find it hard
to say whether it's actually "fixed".

> It's still somewhat kludgy - especially the way that gc-stats is 
> constructed is asking for trouble.  We should really have a scm_t_gc_stats
> struct and use nice OO patterns for dealing with that.

What would you think of using the Boehm et al. GC?

I'm willing to import the BGC-based Guile branch into Git when time
permits, so that we can compare them.

Thanks,
Ludovic.



Reply via email to