[MLton] mingwows

Stephen Weeks MLton@mlton.org
Fri, 11 Nov 2005 11:53:53 -0800

Thanks for all the input everybody.  John's list of advantages and
Andrew's picture of an imaginary user helped me a lot.  And the batch
file helped too -- I put it on my Windows/MinGW machine, started up
the Windows command prompt (having never used it before), and was able
to compile and run a simple SML program with it.

It seems to me that there are two kinds of Windows users we should

  * Those who come from the Unix tradition and are looking for a way
    to run MLton in a Unix-like shell.  For them, the MinGW/MSYS tgz I
    built is fine.  Those people should have no trouble installing
    MinGW and MSYS.

  * Those who come from the Windows tradition and know nothing about
    Unix.  For them, a Windows self-installing EXE (an MSI package?) is
    the right thing.  This package should include everything needed to
    run MLton from the Windows command prompt, including mlton.bat,
    gcc, the needed MinGW libs, etc.  It should behave in the way
    Windows users expect (Windows-style documentation, live in its own
    directory, no compressed files, be uninstallable, ...).

The second package I have described is the ideal.  However, in the
interest of making progress, it's useful to split things into what can
be done in the short term and what is a longer term project.  I'd
break things down as follows.

Short term
  * Building a self-installing EXE.  A number of tools have been
    mentioned: Advanced Installer, Inno Setup, NSIS.
  * Bat file
  * Inform the user that MinGW must be installed, and give a pointer
    to it.
  * No compressed files

Longer term
  * Windows-style documentation.
  * Including MinGW gcc and supporting libraries.  Sorting out legal
    issues, if any.

Andrew volunteered to build an installer, and that would be a great
first step.  Hopefully all of the short-term items I mentioned are
easy.  Andrew, I think the easiest thing would be to take the 20051109
MinGW tgz from the Experimental page and massage it into the right
format.  Then, I can add the MSI package to the Experimental page for
people to try.  We'll fix any immediate problems, and repeat the
process as soon as possible after the upcoming release.  After that we
can look into automating the MinGW/Windows packaging and transitioning
it to my machine, if possible.  Then, as everyone's time and interest
permits we can look into building a more self-contained Windows
package for future MLton releases.