## MLton 20241230

# RunningOnCygwin

MLton runs on the 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 `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