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
touch
and propagate this information through thesettings
file - 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.