## MLton 20241230

# RunningOnMinGW

MLton runs on MinGW, a library for porting Unix applications to Windows. Some library functionality is missing or changed.

## Notes

- To compile MLton on MinGW:

  - The GMP library is required.

  - The Bash shell is required. If you are using a prebuilt MSYS, you probably want to symlink `bash` to `sh`.

## Known issues

- Many functions are unimplemented and will `raise SysErr`.

  - `MLton.Itimer.set`

  - `MLton.ProcEnv.setgroups`

  - `MLton.Process.kill`

  - `MLton.Process.reap`

  - `MLton.World.load`

  - `OS.FileSys.readLink`

  - `OS.IO.poll`

  - `OS.Process.terminate`

  - `Posix.FileSys.chown`

  - `Posix.FileSys.fchown`

  - `Posix.FileSys.fpathconf`

  - `Posix.FileSys.link`

  - `Posix.FileSys.mkfifo`

  - `Posix.FileSys.pathconf`

  - `Posix.FileSys.readlink`

  - `Posix.FileSys.symlink`

  - `Posix.IO.dupfd`

  - `Posix.IO.getfd`

  - `Posix.IO.getfl`

  - `Posix.IO.getlk`

  - `Posix.IO.setfd`

  - `Posix.IO.setfl`

  - `Posix.IO.setlkw`

  - `Posix.IO.setlk`

  - `Posix.ProcEnv.ctermid`

  - `Posix.ProcEnv.getegid`

  - `Posix.ProcEnv.geteuid`

  - `Posix.ProcEnv.getgid`

  - `Posix.ProcEnv.getgroups`

  - `Posix.ProcEnv.getlogin`

  - `Posix.ProcEnv.getpgrp`

  - `Posix.ProcEnv.getpid`

  - `Posix.ProcEnv.getppid`

  - `Posix.ProcEnv.getuid`

  - `Posix.ProcEnv.setgid`

  - `Posix.ProcEnv.setpgid`

  - `Posix.ProcEnv.setsid`

  - `Posix.ProcEnv.setuid`

  - `Posix.ProcEnv.sysconf`

  - `Posix.ProcEnv.times`

  - `Posix.ProcEnv.ttyname`

  - `Posix.Process.exece`

  - `Posix.Process.execp`

  - `Posix.Process.exit`

  - `Posix.Process.fork`

  - `Posix.Process.kill`

  - `Posix.Process.pause`

  - `Posix.Process.waitpid_nh`

  - `Posix.Process.waitpid`

  - `Posix.SysDB.getgrgid`

  - `Posix.SysDB.getgrnam`

  - `Posix.SysDB.getpwuid`

  - `Posix.TTY.TC.drain`

  - `Posix.TTY.TC.flow`

  - `Posix.TTY.TC.flush`

  - `Posix.TTY.TC.getattr`

  - `Posix.TTY.TC.getpgrp`

  - `Posix.TTY.TC.sendbreak`

  - `Posix.TTY.TC.setattr`

  - `Posix.TTY.TC.setpgrp`

  - `Unix.kill`

  - `Unix.reap`

  - `UnixSock.fromAddr`

  - `UnixSock.toAddr`