[gclist] Precise GC's performance

Nick Barnes nickb@harlequin.co.uk
Thu, 07 Mar 1996 09:45:18 +0000


> >- SML/NJ uses CPS and does not keep a stack (so it allocates out the
> >  wazoo). 
> 
> I think it might be a good idea to introduce a terminological distinction
> here.

Yes, I was sloppy; I felt the meaning was obvious from the rest of the
sentence.

SML/NJ uses CPS as an intermediate representation, which may or may
not have effects on allocation rate and allocation patterns. This is
not what I meant.

SML/NJ also does not have a stack at runtime, using heap-allocated
continuation records which are passed around. This has a pronounced
effect on allocation rate and allocation patterns, and was what I was
referring to. It is, IMO, legitimate to refer to this as
"continuation-passing style", since that's exactly what it is. It
should possibly be qualified as, for instance, "runtime CPS".

> >- until recently SML/NJ had a GC which was only generational in a
> >  primitive sense.
> 
> I thought it was primitive, but quite generational.  (Only two generations,
> and no guarantee of advancement age, and a really simple write barrier,
> but those have never been criteria for whether something is generational.)

This is exactly what I meant by "only generational in a primitive
sense". Only 1.5 generations is, IMO, not _very_ generational. I did
not say that SML/NJ was _not_ generational.

Nick Barnes