Zmienne dla GHC są pobierane z zestawu narzędzi "autotools", pakietu narzędzi, który tworzy dobrze znane skrypty "configure", które są prawie zawsze używane podczas kompilowania czegoś (./configure; make; make install
). configure
używa standardowego "ciągu identyfikacyjnego kompilatora", takiego jak x86_64-unknown-linux-gnu
dla kompilatorów języka C, i dodatkowo oblicza bardziej szczegółowy zestaw zmiennych identyfikujących platformę hosta. Zmienne te są używane w wygenerowanym Makefile
GHC, a ten plik dodatkowo tworzy plik ghcplatform.h
, który widzisz w pliku Info.hs
.
Niemal dokładnie ta sama procedura jest używana przez HUGS do uzyskania zmiennych platformy, z tym wyjątkiem, że plik nagłówka ma inną nazwę (jak można zobaczyć w kodzie źródłowym, który został połączony).
Ponieważ zarówno GHC, jak i HUGS98 w systemie Windows są kompilowane za pomocą narzędzi MinGW i autotools, zmienne są spójne na tej platformie.
http://codepad.org/x13GGGta (hugs) http://ideone.com/9C4ER (ghc) – applicative