[MLton] powerpc, getrusage problem again?

Stephen Weeks MLton@mlton.org
Thu, 18 Aug 2005 08:51:35 -0700


> I reported earlier that MLton was calling getrusage alot.
> This had something to do with HAS_WEAK?

Yes.  With HAS_WEAK = FALSE, every gc will call getrusage.

> Well, the problem still appears on powerpc, but not i386.

The difference is that linux.h has

  #define HAS_WEAK TRUE

while darwin.h has

  #define HAS_WEAK FALSE

> So, I am guessing that for some reason powerpc has no weak pointers?

To be clear, we're talking about gcc's "__attribute__ ((weak));",
which has nothing to do with MLton.Weak.

I suspect that gcc on Darwin does support the weak attribute, just
that we haven't tried compiling the runtime with HAS_WEAK TRUE, or
when we did there was some error that hasn't been investigated.

In any case, it is on my todo list to eliminate all the HAS_WEAK stuff
completely, and make it controllable via an SML bool ref whether or
not the runtime measures GC time.  That is completely portable and
quite fast.