Don't depend upon `touch` executable
Currently GHC depends upon the POSIX touch command for modifying the mtime of files. This incurs a performance tax on some platforms (e.g. Windows) and, more importantly, a significant amount of complexity since we must:
- configure the path to
touchand propagate this information through thesettingsfile - provide an implementation of
touch(namedtouchy) on Windows
All of this complexity adds a few hundred lines to GHC which can easily be replaced by a five line Haskell implementation. I suggest that we do so.