On Fri, Mar 15, 2002 at 08:50:47PM +0000, Nicholas Clark wrote: > On Fri, Mar 15, 2002 at 03:42:50PM -0500, Dan Sugalski wrote: > > > >> On Fri, 15 Mar 2002, Tim Bunce wrote: > > >> > Might be good to also provide "higher level" controls that just > > >> > provide hints to the GC. Somewhat like the "use less qw(memory);" > > >> > pragma that never quite happened for perl5, but with more appropriate > > >> > attribute for GC in perl6. > > > What I'm talking about was more at the level of fine control. When > > we've run out of PMC headers in our arena, how many do we allocate in > > the new arena? When we need more memory from the system how big a > > chunk do we ask for? How many times do we allocate new arenas/memory > > pools before we trigger off an automatic GC or DOD run? Things like > > that. > > Ah. That's not really at the 'use less qw(memory)' level. > It's like going from 'use more qw(coffee)' to > use coffee origin=>'Brazil', fairtrade=>'yes', shots=>3, cup=>'ceramic mug'; > and will change when your dealer changes.
I think we need both interfaces. The 'use less qw(memory)' interface is high-level and fixed, and is implemented in terms of a lower-level GC interface which may change wildly (but has some sort of versioning). We make sure that the lower-level interface has lots of 'here be dragons' in the docs. Whenever the GC interface changes, we modify less.pm accordingly.