Переменные для GHC взяты из набора инструментов "autotools", набора инструментов, который производит хорошо известные сценарии "настройки", которые почти всегда используются при компиляции чего-либо (./configure; make; make install
). configure
использует стандартную «строку идентификации компилятора», такую как x86_64-unknown-linux-gnu
для компиляторов C, и дополнительно вычисляет более подробный набор переменных, которые идентифицируют платформу хоста. Эти переменные используются в сгенерированном Makefile
GHC, и этот файл дополнительно создает файл ghcplatform.h
, который вы видите в файле Info.hs
.
Почти та же самая процедура используется HUGS для получения переменных платформы, за исключением того, что заголовочный файл назван по-другому (как вы можете видеть в исходном коде, который вы связали).
Поскольку GHC и HUGS98 в Windows скомпилированы с MinGW и autotools, переменные согласованы на этой платформе.