Win32 port - the GC...

Stephen Weeks MLton@sourcelight.com
Fri, 1 Feb 2002 09:05:41 -0800


> I'm working on completing the Win32-port of the 20010806
> release of MLton now. 

Cool.  I am actually just starting to look into turning our latest
internal version into a WinNT/2000 cross-compiler.  So it looks like I
will port some/all of your stuff to our internal version and it will
make it to the next release.

> 1) I commented out a lot of timing stuff - which doesn't exist
>    on Win32, but it seems mostly to be for debugging and feedback
>    so I hope it's not important 

I think that's right.

> 2) It seems the garbage collector doesn't do memory shrinking of
>    the stack anymore (the ML call-stack i presume?) as it did
>    in the old version I ported. This should actually give one
>    problem _less_ on Win32 - but maybe the code has just changed
>    and maybe you still do stack shrinking, only in a different way?

The stack is allocated in the heap now.  It can be shrunk during a gc,
which may then shrink the toSpace after the copying part of the gc is
done.

> 3) There are no signals in Win32 - I'm not sure if it's safe to
>    just uncomment all that stuff (after all the GC seems to
>    only be concerned about disabling those signals... :)
>    and if I've done it right.

The signals stuff in gc.c is all for helping the implementation of
MLton.Signal.  So if that isn't exported, you should be ok.

> 4) Win32 does not have the mprotect function - so I uncommented
>    that in ssmmap - but ssmmap is not even called anymore - after
>    the uncommenting of everything in the function initSignalStack 
>    because of the signals (which I'm not sure will be safe either?)
>    So maybe ssmmap is not important at all...

It looks that way.

> Anyways - look for the following in the code:
...

I'll have a look over the next week and we can figure stuff out.
)