[MLton] Shared libraries for MLton

Matthew Fluet fluet@cs.cornell.edu
Mon, 25 Jul 2005 11:13:11 -0400 (EDT)

>   - mlton/main/main.fun
>      o Added new compiler option -shared-library
>   - mlton/control/control-flags.sig/sml
>      o added Control.sharedLibrary, which defaults to false

Fair enough, though I don't see that they are used at all within the 
compiler proper.

>   - basis-library/mlton/mlton.sml
>      o If the Control.sharedLibrary is true, then
>        the program ends with a call to returnToC otherwise
>        the program exits
>      o NOTE:
>          I couldn't figure how to import Control,
>          so right now it says true in stead of !Control.sharedLibrary

You want to use a _build_const primitive.  You ought to be able to pattern 
match the treatment of "MLton_Profile_isOn".

>   - include/c-main.h
>      o Added init_function, which is called when a shared library is
>        opened. It takes care of initializing the GC collector and
>        global variables.
>      o NOTE: main() isn't called, when the executable is opened
>              as shared library

Makes sense.

>      o NOTE: The first garbage collection provokes a crash, the
>              error is probably to be found here.

That is unfortunate.