[MLton] commit r4134: fixed fix to getrusage bug

Matthew Fluet fluet@cs.cornell.edu
Thu, 3 Nov 2005 13:43:42 -0500 (EST)


>> Fair enough, but I'd still prefer to see it automatically enabled
>> when the Timer structure is used.  It's rather odd behavior to not
>> get the GC timing information unless the program is invoked with
>> particular @MLton flags or using the MLton.GC structure.  In
>> particular, you can't write portable SML code that uses the Basis
>> Library with predictible effects on multiple compilers.
>
> Good point.  Now that I understand the situation better, I'm happy
> with your original solution, i.e. turning on rusageIsEnabled if
> MLton.Rusage.rusage is used.  Then, if people use Timer or
> MLton.Rusage, they get the right behavior by default.  Furthermore, if
> they don't refer to them, they automatically get the speed benefit of
> not measureing GC rusage.  Finally, experts sill have
> MLton.GC.setRusage at their disposal, to disable stuff for performance
> if they want.  For example, the line in MLton's main.fun will be
> unchanged, and will do the right thing.
>
> Make sense?

Yes.  I prefer the coherence of rusage being enabled when you use rusage. 
;-)

> I wonder if "MLton.Rusage.measureGC" would be a better place/name than
> "MLton.GC.setRusage", since that would put it closer to
> MLton.Rusage.rusage, and so make it more likely that people would
> notice it at the right time.

I think that is a good idea.