= RunningOnCygwin

MLton runs on the http://www.cygwin.com/[Cygwin] emulation layer,
which provides a Posix-like environment while running on Windows.  To
run MLton with Cygwin, you must first install Cygwin on your Windows
machine.  To do this, visit the Cygwin site from your Windows machine
and run their `setup.exe` script.  Then, you can unpack the MLton
binary `tgz` in your Cygwin environment.

To run MLton cross-compiled executables on Windows, you must install
the Cygwin `dll` on the Windows machine.

== Known issues

* Time profiling is disabled.

* Cygwin's `mmap` emulation is less than perfect.  Sometimes it
interacts badly with `Posix.Process.fork`.

* The https://raw.github.com/MLton/mlton/master/regression/socket.sml[`socket.sml`] regression
test fails.  We suspect this is not a bug and is simply due to our
test relying on a certain behavior when connecting to a socket that
has not yet accepted, which is handled differently on Cygwin than
other platforms.  Any help in understanding and resolving this issue
is appreciated.

== Also see

* <<RunningOnMinGW#,RunningOnMinGW>>
