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.
)